Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Try to fix number of '\' escapes in cmake regexps.
[simgrid.git] / tools / cmake / Java.cmake
index 5419109..72813dc 100644 (file)
@@ -3,9 +3,9 @@
 ##   This file is loaded only if the Java option is activated
 ##
 
-find_package(Java 1.7 COMPONENTS Runtime Development)
+find_package(Java 1.8 COMPONENTS Runtime Development)
 if (NOT ${Java_FOUND})
-  message(FATAL_ERROR "Java not found (need at least Java7). Please install the JDK or disable that option")
+  message(FATAL_ERROR "Java not found (need at least Java8). Please install the JDK or disable that option")
 endif()
 set(Java_FOUND 1)
 include(UseJava)
@@ -32,6 +32,7 @@ set_property(TARGET simgrid-java
              APPEND PROPERTY INCLUDE_DIRECTORIES "${INTERNAL_INCLUDES}")
 
 target_link_libraries(simgrid-java simgrid)
+add_dependencies(tests simgrid-java)
 
 get_target_property(COMMON_INCLUDES simgrid-java INCLUDE_DIRECTORIES)
 if (COMMON_INCLUDES)
@@ -57,12 +58,7 @@ set(LIBSIMGRID_JAVA_SO  ${CMAKE_SHARED_LIBRARY_PREFIX}simgrid-java${CMAKE_SHARED
 
 ## Here is how to build simgrid.jar
 ##
-if(CMAKE_VERSION VERSION_LESS "2.8.12")
-  set(CMAKE_JAVA_TARGET_OUTPUT_NAME simgrid)
-  add_jar(simgrid-java_jar ${JMSG_JAVA_SRC})
-else()
-  add_jar(simgrid-java_jar ${JMSG_JAVA_SRC} OUTPUT_NAME simgrid)
-endif()
+add_jar(simgrid-java_jar ${JMSG_JAVA_SRC} OUTPUT_NAME simgrid)
 
 if(enable_lib_in_jar)
   add_dependencies(simgrid-java_jar simgrid-java)
@@ -102,12 +98,14 @@ if(enable_lib_in_jar)
   endif()
 
   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/${SG_SYSTEM_NAME}/x86)
-  endif()
-  if(  (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") OR
-       (${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64")     )
-    set(JAVA_NATIVE_PATH NATIVE/${SG_SYSTEM_NAME}/amd64)
+  if( (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^i[3-6]86$") OR
+      (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64") OR
+      (${CMAKE_SYSTEM_PROCESSOR} MATCHES "AMD64") )
+    if(CMAKE_SIZEOF_VOID_P EQUAL 4) # 32 bits
+      set(JAVA_NATIVE_PATH NATIVE/${SG_SYSTEM_NAME}/x86)
+    else()
+      set(JAVA_NATIVE_PATH NATIVE/${SG_SYSTEM_NAME}/amd64)
+    endif()
   endif()
   if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l")
     set(JAVA_NATIVE_PATH NATIVE/${SG_SYSTEM_NAME}/arm) # Default arm (soft-float ABI)
@@ -117,7 +115,7 @@ if(enable_lib_in_jar)
     TARGET simgrid-java_jar POST_BUILD
     COMMENT "Add the native libs into simgrid.jar..."
     DEPENDS simgrid simgrid-java ${JAVALIBS}
-       
+
     COMMAND ${CMAKE_COMMAND} -E make_directory   ${JAVA_NATIVE_PATH}
 
     COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}      ${JAVA_NATIVE_PATH}/${LIBSIMGRID_SO}
@@ -131,10 +129,11 @@ if(WIN32)
     DEPENDS simgrid simgrid-java ${JAVALIBS}
 
     # There is no way to disable the dependency of mingw-64 on that lib, unfortunately nor to script cmake -E properly
-    # So let's be brutal and copy it in any case (even on non-windows builds) from the location where chocolatey installs it.
+    # So let's be brutal and copy it in any case (even on non-windows builds) from the location where appveyor provides it.
     # The copy is only expected to work on the appveyor builder, but that's all we need right now
     # since our users are directed to download that file as nightly build.
-    COMMAND ${CMAKE_COMMAND} -E copy_if_different C:/tools/mingw64/bin/libwinpthread-1.dll  ${JAVA_NATIVE_PATH}/libwinpthread-1.dll || true
+    COMMAND ${CMAKE_COMMAND} -E copy_if_different C:/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/libwinpthread-1.dll ${JAVA_NATIVE_PATH}/libwinpthread-1.dll || true
+    COMMAND ${CMAKE_COMMAND} -E copy_if_different C:/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin/libwinpthread-1.dll  ${JAVA_NATIVE_PATH}/libwinpthread-1.dll || true
   )
 endif()
 
@@ -161,7 +160,7 @@ endif(APPLE)
 
   add_custom_command(
     TARGET simgrid-java_jar POST_BUILD
-    COMMENT "Packing back the simgrid.jar with the native libs..."
+    COMMENT "Packing back the simgrid.jar with the native libs (turn lib_in_jar off when coding in java)..."
     DEPENDS simgrid simgrid-java ${JAVALIBS}
 
     COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_JAR}  ${JAVA_NATIVE_PATH}
@@ -169,7 +168,6 @@ endif(APPLE)
     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)
 
 include_directories(${JNI_INCLUDE_DIRS} ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})