Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
There is no way to disable libwinpthread-1.dll on mingw-64
authorMartin Quinson <martin.quinson@loria.fr>
Sun, 31 Jan 2016 22:03:11 +0000 (23:03 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Sun, 31 Jan 2016 22:04:39 +0000 (23:04 +0100)
so let's try this workaround to load it and still build in parallel.
And just to be sure, declare that lib as an artefact on appveyor so
that we can download it.

appveyor.yml
src/bindings/java/org/simgrid/NativeLib.java
tools/cmake/Java.cmake

index 5fd78d3..c1c921f 100644 (file)
@@ -84,6 +84,8 @@ build_script:
 artifacts:
 - path: simgrid.jar
   name: jarfile
+- path: C:/mingw64/bin/libwinpthread-1.dll
+  name: libwinpthread-1.dll
 
 # notifications:
 # - irc: "irc.debian.org#simgrid" # Not implemented by AppVeyor yet :(
index e7a94e5..c89c57f 100644 (file)
@@ -19,7 +19,10 @@ public final class NativeLib {
        public static void nativeInit() {
                if (isNativeInited)
                        return;
-               
+
+               if (System.getProperty("os.name").toLowerCase().startsWith("win"))
+                       NativeLib.nativeInit("winpthread-1");
+
                NativeLib.nativeInit("simgrid");
                NativeLib.nativeInit("simgrid-java");      
                isNativeInited = true;
index 669c428..f5eec7e 100644 (file)
@@ -145,14 +145,16 @@ if(enable_lib_in_jar)
     #COMMAND ${STRIP_COMMAND} ${JAVA_NATIVE_PATH}/${LIBSIMGRID_JAVA_SO} || true
 
     COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}      ${JAVA_NATIVE_PATH}
-    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_JAVA_SO} ${JAVA_NATIVE_PATH} 
+    COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_JAVA_SO} ${JAVA_NATIVE_PATH}
+    # There is no way to disable the dependency of mingw-64 on that lib, unfortunately
+    COMMAND if test -e C:/mingw64/bin/libwinpthread-1.dll ; then cp C:/mingw64/bin/libwinpthread-1.dll ${JAVA_NATIVE_PATH} ; fi
     
     COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_JAR}  ${JAVA_NATIVE_PATH}
     COMMAND ${CMAKE_COMMAND} -E remove_directory ${JAVA_NATIVE_PATH}
     
     COMMAND ${CMAKE_COMMAND} -E echo "-- Cmake put the native code in ${JAVA_NATIVE_PATH}"
     COMMAND "${Java_JAVA_EXECUTABLE}" -classpath "${SIMGRID_JAR}" org.simgrid.NativeLib
-    )
+  )
     
 endif(enable_lib_in_jar)