X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/517c8af545eefa8baf9a5439f242a4bd021f9085..1414663fca75b06c2e268eb7cc93e731170cc911:/tools/cmake/Java.cmake diff --git a/tools/cmake/Java.cmake b/tools/cmake/Java.cmake index 8b00711c9e..f480b95050 100644 --- a/tools/cmake/Java.cmake +++ b/tools/cmake/Java.cmake @@ -35,15 +35,11 @@ target_link_libraries(simgrid-java simgrid) if(WIN32) - exec_program("java -d32 -version" - OUTPUT_VARIABLE IS_32_BITS_JVM) + 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") endif() # Rules to build simgrid.jar @@ -99,17 +95,22 @@ if(enable_lib_in_jar) if(NOT STRIP_COMMAND) set(STRIP_COMMAND "cmake -E echo (strip not found)") endif() - if(WIN32) - set(STRIP_COMMAND "cmake -E echo (dont strip on windows)") + set(SG_SYSTEM_NAME ${CMAKE_SYSTEM_NAME}) + + if(${SG_SYSTEM_NAME} MATCHES "kFreeBSD") + set(SG_SYSTEM_NAME GNU/kFreeBSD) endif() - set(JAVA_NATIVE_PATH NATIVE/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}) + set(JAVA_NATIVE_PATH NATIVE/${SG_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}) if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^i[3-6]86$") - set(JAVA_NATIVE_PATH NATIVE/${CMAKE_SYSTEM_NAME}/x86) + set(JAVA_NATIVE_PATH NATIVE/${SG_SYSTEM_NAME}/x86) endif() if( (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64") ) - set(JAVA_NATIVE_PATH NATIVE/${CMAKE_SYSTEM_NAME}/amd64) + set(JAVA_NATIVE_PATH NATIVE/${SG_SYSTEM_NAME}/amd64) + endif() + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l") + set(JAVA_NATIVE_PATH NATIVE/${SG_SYSTEM_NAME}/arm) # Default arm (soft-float ABI) endif() add_custom_command( @@ -138,24 +139,24 @@ if(enable_lib_in_jar) COMMAND ${CMAKE_COMMAND} -E echo "-- Cmake put the native code in ${JAVA_NATIVE_PATH}" COMMAND "${Java_JAVA_EXECUTABLE}" -classpath "${SIMGRID_JAR}" org.simgrid.NativeLib ) - #if(MINGW) - # find_library(WINPTHREAD_DLL - # NAME winpthread winpthread-1 - # PATHS C:\\MinGW C:\\MinGW64 C:\\MinGW\\bin C:\\MinGW64\\bin - # ) - # add_custom_command( - # TARGET simgrid-java_jar POST_BUILD - # COMMENT "Add the MinGW libs into simgrid.jar..." - # DEPENDS ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO} - # - # COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE - # COMMAND ${CMAKE_COMMAND} -E make_directory ${JAVA_NATIVE_PATH} - # COMMAND ${CMAKE_COMMAND} -E copy ${WINPTHREAD_DLL} ${JAVA_NATIVE_PATH} - # - # COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_JAR} NATIVE - # COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE - # ) - #endif(MINGW) + if(MINGW) + find_library(WINPTHREAD_DLL + NAME winpthread winpthread-1 + PATHS C:\\MinGW C:\\MinGW64 C:\\MinGW\\bin C:\\MinGW64\\bin + ) + add_custom_command( + TARGET simgrid-java_jar POST_BUILD + COMMENT "Add the MinGW libs into simgrid.jar..." + DEPENDS ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO} + + COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE + COMMAND ${CMAKE_COMMAND} -E make_directory ${JAVA_NATIVE_PATH} + COMMAND ${CMAKE_COMMAND} -E copy ${WINPTHREAD_DLL} ${JAVA_NATIVE_PATH} + + COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_JAR} NATIVE + COMMAND ${CMAKE_COMMAND} -E remove_directory NATIVE + ) + endif(MINGW) endif(enable_lib_in_jar) include_directories(${JNI_INCLUDE_DIRS} ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) @@ -179,7 +180,3 @@ set_target_properties(simgrid-java PROPERTIES SKIP_BUILD_RPATH ON) 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()