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 5fd78d39f9a32107b4667e2e9a7aa833f21e14cb..c1c921f9a9790d481539d6d05ddbfd886d1162f1 100644 (file)
@@ -84,6 +84,8 @@ build_script:
 artifacts:
 - path: simgrid.jar
   name: jarfile
 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 :(
 
 # notifications:
 # - irc: "irc.debian.org#simgrid" # Not implemented by AppVeyor yet :(
index e7a94e5fe824735092e2644a72bbc6f54430a569..c89c57f4edde70f43ba63810144c630990377c11 100644 (file)
@@ -19,7 +19,10 @@ public final class NativeLib {
        public static void nativeInit() {
                if (isNativeInited)
                        return;
        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;
                NativeLib.nativeInit("simgrid");
                NativeLib.nativeInit("simgrid-java");      
                isNativeInited = true;
index 669c4288ad213d6a8e72b34777f15742bf17c087..f5eec7ee239a3ab3886da0b2f536d220a8ea2d5a 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 ${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
     
     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)
 
     
 endif(enable_lib_in_jar)