From ddd108a547a9f2a9de66afabdfed69a4b26635eb Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Sat, 29 Nov 2014 14:20:33 +0000 Subject: [PATCH] Migrate pipe library project to new gradle project with wrapper --- cpp/{pipe => jlibpipe}/.cproject | 0 cpp/jlibpipe/build.gradle | 152 ++++++++++++++++ .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 51017 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + cpp/jlibpipe/gradlew | 164 ++++++++++++++++++ cpp/jlibpipe/gradlew.bat | 90 ++++++++++ cpp/{pipe => jlibpipe}/include/strsafe.h | 0 cpp/{pipe => jlibpipe}/src/pipe.c | 0 cpp/{pipe => jlibpipe}/src/pipe.h | 0 cpp/pipe/.project | 27 --- cpp/pipe/Debug/copy.bat | 1 - cpp/pipe/Release/copy.bat | 1 - cpp/pipe/Release/pipe.dll | Bin 87941 -> 0 bytes 13 files changed, 412 insertions(+), 29 deletions(-) rename cpp/{pipe => jlibpipe}/.cproject (100%) create mode 100644 cpp/jlibpipe/build.gradle create mode 100644 cpp/jlibpipe/gradle/wrapper/gradle-wrapper.jar create mode 100644 cpp/jlibpipe/gradle/wrapper/gradle-wrapper.properties create mode 100644 cpp/jlibpipe/gradlew create mode 100644 cpp/jlibpipe/gradlew.bat rename cpp/{pipe => jlibpipe}/include/strsafe.h (100%) rename cpp/{pipe => jlibpipe}/src/pipe.c (100%) rename cpp/{pipe => jlibpipe}/src/pipe.h (100%) delete mode 100644 cpp/pipe/.project delete mode 100644 cpp/pipe/Debug/copy.bat delete mode 100644 cpp/pipe/Release/copy.bat delete mode 100644 cpp/pipe/Release/pipe.dll diff --git a/cpp/pipe/.cproject b/cpp/jlibpipe/.cproject similarity index 100% rename from cpp/pipe/.cproject rename to cpp/jlibpipe/.cproject diff --git a/cpp/jlibpipe/build.gradle b/cpp/jlibpipe/build.gradle new file mode 100644 index 0000000..fefb49b --- /dev/null +++ b/cpp/jlibpipe/build.gradle @@ -0,0 +1,152 @@ +apply plugin: 'java' +apply plugin: 'cpp' +apply plugin: 'maven' +apply plugin: 'eclipse' + +repositories { + maven { + url 'https://github.com/Boukefalos/jlibloader/raw/mvn-repo/' + } +} + +dependencies { + compile 'com.github.boukefalos:jlibloader:0.2' +} + +group = 'com.github.boukefalos' +project.archivesBaseName = 'jlibpipe' +version = '0.1' + +task wrapper(type: Wrapper) { + gradleVersion = '1.12' +} + + + +model { + platforms { + windows_i386 { + architecture 'i386' + operatingSystem 'windows' + } + windows_amd64 { + architecture 'amd64' + operatingSystem 'windows' + } + } + toolChains { + gcc(Gcc) { + addPlatformConfiguration(new TargetPlatformConfiguration() { + boolean supportsPlatform(Platform platform) { + platform.operatingSystem.current && platform.operatingSystem.name == 'windows' && + platform.architecture.name == 'amd64' + } + List getCppCompilerArgs() { ['-m64', '-fpermissive'] } + List getCCompilerArgs() { ['-m64'] } + List getObjectiveCCompilerArgs() { ['-m64'] } + List getObjectiveCppCompilerArgs() { ['-m64'] } + List getAssemblerArgs() { ['--64'] } + List getLinkerArgs() { ['-m64'] } + List getStaticLibraryArchiverArgs() { [] } + }) + } + } +} + +def jniHeadersDir = file("$buildDir/headers") + +task jniHeaders(dependsOn: compileJava) { + def outputFile = file("$jniHeadersDir/mimis.h") + inputs.files sourceSets.main.output + outputs.file outputFile + exec { + executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') + args '-o', outputFile + args '-classpath', sourceSets.main.output.classesDir + args '-classpath', file("$buildDir/../bin") + args 'mimis.util.Native' + } +} + +libraries { + main { + baseName project.archivesBaseName + } + all { + binaries.all { + cppCompiler.args '-I' + jniHeadersDir + cppCompiler.args "-I${org.gradle.internal.jvm.Jvm.current().javaHome}/include" + cppCompiler.args "-I${org.gradle.internal.jvm.Jvm.current().javaHome}/include/win32" + linker.args '-Wl,--kill-at', '-static-libgcc', '-static-libstdc++' + tasks.withType(CppCompile) { task -> + task.dependsOn jniHeaders + } + } + } +} + +tasks.withType(Upload) { + repositories { + mavenDeployer { + repository(url: uri('../../.maven')) + } + } +} + +configurations { + jni +} + +def deployer = uploadJni.repositories.mavenDeployer + +binaries.withType(SharedLibraryBinary) { binary -> + if (!buildable) { + return + } + def variantName = "${targetPlatform.operatingSystem.name}-${targetPlatform.architecture.name}" + def taskName = "jar-${variantName}" + def nativeJar = project.tasks.findByName(taskName) + if (nativeJar == null) { + nativeJar = project.task(taskName, type: Jar) { + baseName = "${project.archivesBaseName}-$variantName" + } + artifacts { + jni nativeJar + } + def jniPom = deployer.addFilter(variantName) { artifact, file -> + return file == nativeJar.archivePath + } + jniPom.groupId = project.group + jniPom.artifactId = nativeJar.baseName + jniPom.version = project.version + jniPom.scopeMappings.mappings.clear() + } + def builderTask = binary.tasks.builder + def libraryDirectory = project.group.replace('.', '/') + "/${project.archivesBaseName}/${variantName}" + nativeJar.into(libraryDirectory) { from builderTask.outputFile } + nativeJar.dependsOn builderTask +} + +def mainPom = uploadArchives.repositories.mavenDeployer.pom +mainPom.groupId = project.group +mainPom.artifactId = jar.baseName +mainPom.version = project.version +mainPom.scopeMappings.mappings.clear() +mainPom.withXml { provider -> + def node = provider.asNode() + def deps = node.appendNode('dependencies') + ['windows-amd64', 'windows-i386'].each { platform -> + def dep = deps.appendNode('dependency') + dep.appendNode('groupId', project.group) + dep.appendNode('artifactId', "${project.archivesBaseName}-${platform}") + dep.appendNode('version', project.version) + } + def dep = deps.appendNode('dependency') + dep.appendNode('groupId', 'com.github.boukefalos') + dep.appendNode('artifactId', 'jlibloader') + dep.appendNode('version', '0.2') +} + +jar { + from sourceSets.main.allSource +} \ No newline at end of file diff --git a/cpp/jlibpipe/gradle/wrapper/gradle-wrapper.jar b/cpp/jlibpipe/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..3d0dee6e8edfecc92e04653ec780de06f7b34f8b GIT binary patch literal 51017 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 H-~Rf4?cF@p literal 0 HcmV?d00001 diff --git a/cpp/jlibpipe/gradle/wrapper/gradle-wrapper.properties b/cpp/jlibpipe/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ab96734 --- /dev/null +++ b/cpp/jlibpipe/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Sun Nov 09 12:02:22 GMT 2014 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-bin.zip diff --git a/cpp/jlibpipe/gradlew b/cpp/jlibpipe/gradlew new file mode 100644 index 0000000..91a7e26 --- /dev/null +++ b/cpp/jlibpipe/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/cpp/jlibpipe/gradlew.bat b/cpp/jlibpipe/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/cpp/jlibpipe/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/cpp/pipe/include/strsafe.h b/cpp/jlibpipe/include/strsafe.h similarity index 100% rename from cpp/pipe/include/strsafe.h rename to cpp/jlibpipe/include/strsafe.h diff --git a/cpp/pipe/src/pipe.c b/cpp/jlibpipe/src/pipe.c similarity index 100% rename from cpp/pipe/src/pipe.c rename to cpp/jlibpipe/src/pipe.c diff --git a/cpp/pipe/src/pipe.h b/cpp/jlibpipe/src/pipe.h similarity index 100% rename from cpp/pipe/src/pipe.h rename to cpp/jlibpipe/src/pipe.h diff --git a/cpp/pipe/.project b/cpp/pipe/.project deleted file mode 100644 index a14c5b2..0000000 --- a/cpp/pipe/.project +++ /dev/null @@ -1,27 +0,0 @@ - - - cpp.pipe - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.core.ccnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/cpp/pipe/Debug/copy.bat b/cpp/pipe/Debug/copy.bat deleted file mode 100644 index 2f38e77..0000000 --- a/cpp/pipe/Debug/copy.bat +++ /dev/null @@ -1 +0,0 @@ -copy pipe.dll ..\..\..\java\sound\pipe.dll \ No newline at end of file diff --git a/cpp/pipe/Release/copy.bat b/cpp/pipe/Release/copy.bat deleted file mode 100644 index 2f38e77..0000000 --- a/cpp/pipe/Release/copy.bat +++ /dev/null @@ -1 +0,0 @@ -copy pipe.dll ..\..\..\java\sound\pipe.dll \ No newline at end of file diff --git a/cpp/pipe/Release/pipe.dll b/cpp/pipe/Release/pipe.dll deleted file mode 100644 index c698219ee750ecb45f3b490ec5dd257b63bf8cc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87941 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�Myg6xa{? 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