Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make simgrid.jar with cmake.
[simgrid.git] / buildtools / Cmake / src / CMakeMakeExeLib.txt
index 42111c1..accba92 100644 (file)
@@ -6,9 +6,13 @@ else(enable_supernovae)
        add_library(simgrid SHARED ${simgrid_sources})
        add_library(simgrid_static STATIC ${simgrid_sources})
        add_library(gras SHARED ${gras_sources})
-       add_library(smpi STATIC ${SMPI_SRC})
+       add_library(smpi SHARED ${SMPI_SRC})
 endif(enable_supernovae)
 
+set_target_properties(simgrid PROPERTIES VERSION ${libsimgrid_version})
+set_target_properties(gras PROPERTIES VERSION ${libgras_version})
+set_target_properties(smpi PROPERTIES VERSION ${libsmpi_version})
+
 set(GRAS_DEP "-lm -lpthread")
 set(SIMGRID_DEP "-lm")
 set(SMPI_DEP "")
@@ -129,46 +133,69 @@ add_subdirectory(${PROJECT_DIRECTORY}/examples/smpi)
 
 if(HAVE_JAVA)
        foreach(file ${JMSG_JAVA_SRC})
-               set(java_src_to_compile "${java_src_to_compile} ${file}")       
+               set(java_src_to_compile "${java_src_to_compile}${file} ")       
        endforeach(file ${JMSG_JAVA_SRC})
+       
+       string(REPLACE ".java" ".class" java_output "${JMSG_JAVA_SRC}")
+       
+#      message("\n\njava_src:\n${JMSG_JAVA_SRC}")
+#      message("\n\njava_src_to_compile:\n${java_src_to_compile}")
+#      message("\n\njava_output:\n${java_output}")     
+
+file(REMOVE_RECURSE ${PROJECT_DIRECTORY}/src/.classes)
+file(REMOVE ${PROJECT_DIRECTORY}/src/simgrid.jar)
+file(MAKE_DIRECTORY ${PROJECT_DIRECTORY}/src/.classes)
+file(MAKE_DIRECTORY ${PROJECT_DIRECTORY}/src/.classes/surf)
+configure_file(${PROJECT_DIRECTORY}/src/surf/simgrid.dtd ${PROJECT_DIRECTORY}/src/.classes/surf/simgrid.dtd COPYONLY)  
+
+# build .jar file from .class files
+ADD_CUSTOM_TARGET(simgrid.jar ALL
+COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/src/.classes -cp ${PROJECT_DIRECTORY}/src/.classes ${PROJECT_DIRECTORY}/src/java/simgrid/msg/*.java
+)
 
-       add_custom_command(TARGET simgrid
-       COMMAND /bin/sh ${PROJECT_DIRECTORY}/make_simgrid_java.sh
-       WORKING_DIRECTORY "${PROJECT_DIRECTORY}"
-       )
-
-file(WRITE     ${PROJECT_DIRECTORY}/make_simgrid_java.sh 
-"\#! /bin/sh\n\n")
-
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "rm -rf ${PROJECT_DIRECTORY}/src/.classes\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "rm -f ${PROJECT_DIRECTORY}/src/simgrid.jar\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "mkdir ${PROJECT_DIRECTORY}/src/.classes\n")
-
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh  "\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/src/.classes -cp ${PROJECT_DIRECTORY}/src/.classes ${java_src_to_compile}\n")
-
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh  "\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "mkdir ${PROJECT_DIRECTORY}/src/.classes/surf\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "cp ${PROJECT_DIRECTORY}/src/surf/simgrid.dtd ${PROJECT_DIRECTORY}/src/.classes/surf/simgrid.dtd\n")
-
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh  "\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "${JAVA_ARCHIVE} cvf ./src/simgrid.jar -C ${PROJECT_DIRECTORY}/src/.classes . &>/dev/null\n")
+ADD_CUSTOM_COMMAND(
+TARGET simgrid.jar
+POST_BUILD 
+COMMAND ${CMAKE_COMMAND}
+ARGS -E chdir ${PROJECT_DIRECTORY}
+${JAVA_ARCHIVE} -cvf ${PROJECT_DIRECTORY}/src/simgrid.jar -C ${PROJECT_DIRECTORY}/src/.classes .
+)
 
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh  "\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "rm -f ${PROJECT_DIRECTORY}/examples/java/basic/*.class\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/basic -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java\n")
+ADD_CUSTOM_COMMAND(
+TARGET simgrid.jar
+POST_BUILD 
+COMMAND rm -f ${PROJECT_DIRECTORY}/examples/java/basic/*.class
+COMMAND ${JAVA_COMPILE}
+ARGS -d ${PROJECT_DIRECTORY}/examples/java/basic -cp ${PROJECT_DIRECTORY}/src/simgrid.jar
+${PROJECT_DIRECTORY}/examples/java/basic/*.java
+)
 
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh  "\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "rm -f ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.class\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/ping_pong -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java\n")
+ADD_CUSTOM_COMMAND(
+TARGET simgrid.jar
+POST_BUILD
+COMMAND rm -f ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.class
+COMMAND ${JAVA_COMPILE}
+ARGS -d ${PROJECT_DIRECTORY}/examples/java/ping_pong -cp ${PROJECT_DIRECTORY}/src/simgrid.jar
+${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java
+)
 
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh  "\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh  "rm -f ${PROJECT_DIRECTORY}/examples/java/comm_time/*.class\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/comm_time -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java\n")
+ADD_CUSTOM_COMMAND(
+TARGET simgrid.jar
+POST_BUILD 
+COMMAND rm -f ${PROJECT_DIRECTORY}/examples/java/comm_time/*.class
+COMMAND ${JAVA_COMPILE}
+ARGS -d ${PROJECT_DIRECTORY}/examples/java/comm_time -cp ${PROJECT_DIRECTORY}/src/simgrid.jar
+${PROJECT_DIRECTORY}/examples/java/comm_time/*.java
+)
 
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "rm -f ${PROJECT_DIRECTORY}/examples/java/suspend/*.class\n")
-file(APPEND    ${PROJECT_DIRECTORY}/make_simgrid_java.sh "${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/suspend -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java\n")
+ADD_CUSTOM_COMMAND(
+TARGET simgrid.jar
+POST_BUILD 
+COMMAND rm -f ${PROJECT_DIRECTORY}/examples/java/suspend/*.class
+COMMAND ${JAVA_COMPILE}
+ARGS -d ${PROJECT_DIRECTORY}/examples/java/suspend -cp ${PROJECT_DIRECTORY}/src/simgrid.jar
+${PROJECT_DIRECTORY}/examples/java/suspend/*.java
+)
 
 endif(HAVE_JAVA)