From e4f23eed1d113a378a9e6c0c8847ce195d5a69c0 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Sun, 31 Jan 2016 23:03:11 +0100 Subject: [PATCH] There is no way to disable libwinpthread-1.dll on mingw-64 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 | 2 ++ src/bindings/java/org/simgrid/NativeLib.java | 5 ++++- tools/cmake/Java.cmake | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 5fd78d39f9..c1c921f9a9 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -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 :( diff --git a/src/bindings/java/org/simgrid/NativeLib.java b/src/bindings/java/org/simgrid/NativeLib.java index e7a94e5fe8..c89c57f4ed 100644 --- a/src/bindings/java/org/simgrid/NativeLib.java +++ b/src/bindings/java/org/simgrid/NativeLib.java @@ -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; diff --git a/tools/cmake/Java.cmake b/tools/cmake/Java.cmake index 669c4288ad..f5eec7ee23 100644 --- a/tools/cmake/Java.cmake +++ b/tools/cmake/Java.cmake @@ -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) -- 2.30.2