Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Try to unify the native lib location between cmake and java
authorMartin Quinson <martin.quinson@loria.fr>
Fri, 25 Sep 2015 05:28:29 +0000 (07:28 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Fri, 25 Sep 2015 05:28:29 +0000 (07:28 +0200)
src/bindings/java/org/simgrid/NativeLib.java
tools/cmake/MakeJava.cmake

index f3102c0..54dad77 100644 (file)
@@ -20,13 +20,12 @@ public final class NativeLib {
 
                if (arch.matches("^i[3-6]86$"))
                        arch = "x86";
-               else if (arch.equalsIgnoreCase("amd64"))
-                       arch = "x86_64";
+               else if (arch.equalsIgnoreCase("x86_64"))
+                       arch = "amd64";
 
                if (os.toLowerCase().startsWith("win")){
                        os = "Windows";
-                       arch = "x86";
-               }else if (os.contains("OS X"))
+               } else if (os.contains("OS X"))
                        os = "Darwin";
 
                os = os.replace(' ', '_');
index c7b67b0..4d93dbc 100644 (file)
@@ -72,6 +72,14 @@ else()
   add_jar(simgrid-java_pre_jar ${JMSG_JAVA_SRC} OUTPUT_NAME simgrid)
 endif()
 
+set(JAVA_NATIVE_PATH NATIVE/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR})
+if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^i[3-6]86$")
+  set(JAVA_NATIVE_PATH NATIVE/${CMAKE_SYSTEM_NAME}/x86)
+endif()
+if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
+  set(JAVA_NATIVE_PATH NATIVE/${CMAKE_SYSTEM_NAME}/amd64)
+endif()
+
 add_custom_command(
   COMMENT "Finalize simgrid.jar..."
   OUTPUT ${SIMGRID_JAR}_finalized
@@ -94,16 +102,16 @@ add_custom_command(
   COMMAND ${JAVA_ARCHIVE} -uvmf ${MANIFEST_FILE} ${SIMGRID_JAR}
 
   COMMAND ${CMAKE_COMMAND} -E copy ${SIMGRID_JAR} ${SIMGRID_FULL_JAR}
-  COMMAND ${CMAKE_COMMAND} -E make_directory                                     NATIVE/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}
-  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_SO}      NATIVE/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}
-  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/${LIBSIMGRID_JAVA_SO} NATIVE/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}
-  COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/lib/${LIBSURF_JAVA_SO}    NATIVE/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}
+  COMMAND ${CMAKE_COMMAND} -E make_directory                                     ${JAVA_NATIVE_PATH}
+  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/${LIBSURF_JAVA_SO}    ${JAVA_NATIVE_PATH}
 
   COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_FULL_JAR}  NATIVE
   COMMAND ${Java_JAVADOC_EXECUTABLE} -quiet -d doc/javadoc -sourcepath ${CMAKE_HOME_DIRECTORY}/src/bindings/java/ org.simgrid.msg org.simgrid.surf org.simgrid.trace
   COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_FULL_JAR} doc/javadoc
   
-  COMMAND ${CMAKE_COMMAND} -E echo "-- Cmake put the native code in NATIVE/${CMAKE_SYSTEM_NAME}/${CMAKE_SYSTEM_PROCESSOR}"
+  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 ${CMAKE_COMMAND} -E remove ${SIMGRID_JAR}_finalized