From 5da1390089e3ff60e3ce678c0d960dbfa507c7b1 Mon Sep 17 00:00:00 2001
From: Philipp Spohr <spohr.philipp@web.de>
Date: Fri, 28 Jul 2017 20:29:16 +0200
Subject: [PATCH] One-Click fetch and compile of yoshiko code with gradle
 implemented (as of now, assumes the user has gcc/git installed)

---
 .gitignore   |  6 ++++++
 build.gradle | 29 ++++++++++++++++++++++++-----
 2 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/.gitignore b/.gitignore
index c74338a..803272b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -13,3 +13,9 @@ gradle/wrapper/gradle-wrapper.properties
 /.settings/org.eclipse.buildship.core.prefs
 /.settings/org.eclipse.jdt.core.prefs
 /bin/de
+/CMakeCache.txt
+/Makefile
+/cmake_install.cmake
+
+# CMAKE
+/CMakeFiles
diff --git a/build.gradle b/build.gradle
index cfc1d03..63b951a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,11 +1,14 @@
 plugins {
   id 'org.ajoberstar.grgit' version '1.7.2'
-  //id 'fr.echoes.gradle.cpp' version '1.2.9'
+  id 'fr.echoes.gradle.cpp' version '1.2.9'
+  id 'maven'
 }
 
+//Hacky woraround for conflicting task names with maven and cpp plugin
+tasks.remove(install)
+
 apply plugin: 'java'
-apply plugin: 'maven'
-//apply plugin: 'org.ajoberstar.grgit'
+
 
 group = 'de.hhu.bcs'
 version = '0.0.1-SNAPSHOT'
@@ -32,17 +35,33 @@ task cloneYoshikoCode {
 	}
 }
 
+task launchCMake(type: Exec, group: "init") {
+    logger.info("Executing CMAKE in directory:"+workingDir)
+    executable = "cmake"
+    args  yoshikoDir
+}
+
+compileCpp.dependsOn launchCMake
+
+cpp {
+  applicationType = "clibrary"
+  exec.with {
+    execPath = "echo"
+    compileCppExecPath = "make"
+    compileCppBaseArgs = ".."
+    compileCppExecWorkingDir = "build"
+  }
+}
+
 compileJava.dependsOn(cloneYoshikoCode)
 
 repositories {
      maven { url "http://code.cytoscape.org/nexus/content/repositories/snapshots/" }
      maven { url "http://code.cytoscape.org/nexus/content/repositories/releases/" }
      maven { url "http://repo.maven.apache.org/maven2" }
-     maven { url "https://plugins.gradle.org/m2/" }
 }
 
 
-
 dependencies {
     compile group: 'org.osgi', name: 'org.osgi.core', version:'4.2.0'
     compile group: 'org.cytoscape', name: 'service-api', version:'3.5.0-RC2'
-- 
GitLab