set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} $ENV{LDFLAGS}")
endif()
-# We don't want to ship libgcc_s_seh-1.dll nor libstdc++-6.dll
-# This will probably be troublesome if someone wants to use the lib in
-# its own project, but we only want to have java working on Windows.
if(MINGW)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc")
+ # http://stackoverflow.com/questions/10452262/create-64-bit-jni-under-windows
+ # We don't want to ship libgcc_s_seh-1.dll nor libstdc++-6.dll
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static-libgcc")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libgcc -static-libstdc++")
- set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_C_FLAGS} -static-libgcc -s")
- set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS} -static-libgcc -static-libstdc++ -s")
+
+ # JNI searches for stdcalls
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wl,--add-stdcall-alias")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wl,--add-stdcall-alias")
endif()
exec_program("java -d32 -version"
OUTPUT_VARIABLE IS_32_BITS_JVM)
STRING( FIND ${IS_32_BITS_JVM} "Error" POSITION )
- if(${POSITION} GREATER -1)
- message("POTENTIAL ERROR: Java JVM needs to be 32 bits to be able to run with Simgrid on Windows for now")
+ if(NOT ${POSITION} GREATER -1)
+ message(fatal_error "SimGrid can only use Java 64 bits")
endif()
- set_target_properties(simgrid-java PROPERTIES
- LINK_FLAGS "-Wl,--subsystem,windows,--kill-at")
+# Already passed to all targets in GCCFlags.cmake
+# set_target_properties(simgrid-java PROPERTIES
+# LINK_FLAGS "-Wl,--subsystem,windows,--kill-at")
+# set_target_properties(surf-java PROPERTIES
+# LINK_FLAGS "-Wl,--subsystem,windows,--kill-at")
endif()
# Rules to build simgrid.jar
add_dependencies(simgrid-java surf-java)
add_dependencies(simgrid-java_jar surf-java)
-if(WIN32)
- set_target_properties(surf-java PROPERTIES
- LINK_FLAGS "-Wl,--subsystem,windows,--kill-at")
-endif()