X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fd3ed993c66a191cea33f345f97686602e79f5db..cc3fbc08e8b448f5b820a2e5719f2029dcb23f89:/buildtools/Cmake/src/CMakeJarAndClass.txt diff --git a/buildtools/Cmake/src/CMakeJarAndClass.txt b/buildtools/Cmake/src/CMakeJarAndClass.txt index 2a2294b17f..f49e6d0283 100644 --- a/buildtools/Cmake/src/CMakeJarAndClass.txt +++ b/buildtools/Cmake/src/CMakeJarAndClass.txt @@ -1,53 +1,58 @@ - set(JMSG_JAVA_SRC_CLASS ${JMSG_JAVA_SRC}) - string(REPLACE "${PROJECT_DIRECTORY}/src/java/simgrid/msg" "${PROJECT_DIRECTORY}/src/.classes/simgrid/msg" JMSG_JAVA_SRC_CLASS ${JMSG_JAVA_SRC_CLASS}) - string(REPLACE ".java" ".class;" JMSG_JAVA_SRC_CLASS ${JMSG_JAVA_SRC_CLASS}) - set(java_src_to_compile "") - - 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" COPY_ONLY) - - set(CMAKE_JAVA_COMPILER "${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/src/.classes -cp ${PROJECT_DIRECTORY}/src/.classes") - SET(CMAKE_JAVA_LINK_EXECUTABLE "${JAVA_ARCHIVE} -cvf ${PROJECT_DIRECTORY}/src/simgrid.jar -C ${PROJECT_DIRECTORY}/src/.classes .") - - foreach(file ${JMSG_JAVA_SRC_CLASS}) - if(NOT EXISTS ${file}) - string(REPLACE "${PROJECT_DIRECTORY}/src/.classes/simgrid/msg" "${PROJECT_DIRECTORY}/src/java/simgrid/msg" file ${file}) - string(REPLACE ".class" ".java" file ${file}) - set(java_src_to_compile "${java_src_to_compile}${file}\t") - endif(NOT EXISTS ${file}) - endforeach(file ${JMSG_JAVA_SRC_CLASS}) - - add_executable(simgrid.jar ${JMSG_JAVA_SRC}) - set_target_properties(simgrid.jar PROPERTIES LANGUAGE JAVA) - set_target_properties(simgrid.jar PROPERTIES LINKER_LANGUAGE JAVA) +set(JAVA_FILES ${JMSG_JAVA_SRC}) +set(JAVA_CLASSES ${JAVA_FILES}) - if(java_src_to_compile) - ADD_CUSTOM_COMMAND(TARGET simgrid.jar - PRE_BUILD - COMMAND ${JAVA_COMPILE} - ARGS -d ${PROJECT_DIRECTORY}/src/.classes -cp ${PROJECT_DIRECTORY}/src/.classes ${java_src_to_compile} - ) - endif(java_src_to_compile) - +string(REPLACE "src/java/" "${PROJECT_DIRECTORY}/src/java/" + JAVA_FILES "${JAVA_FILES}") - ADD_CUSTOM_TARGET(java_basic ALL - COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/basic -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java - ) - - ADD_CUSTOM_TARGET(java_ping_pong ALL - COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/ping_pong -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java - ) - - ADD_CUSTOM_TARGET(java_comm_time ALL - COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/comm_time -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java - ) - - ADD_CUSTOM_TARGET(java_suspend ALL - COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/suspend -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java - ) - - add_dependencies(java_basic simgrid.jar) - add_dependencies(java_ping_pong simgrid.jar) - add_dependencies(java_comm_time simgrid.jar) - add_dependencies(java_suspend simgrid.jar) \ No newline at end of file +string(REPLACE "src/java/simgrid/msg" "${CMAKE_CURRENT_BINARY_DIR}/classes/simgrid/msg" + JAVA_CLASSES "${JAVA_CLASSES}") +string(REPLACE ".java" ".class;" + JAVA_CLASSES "${JAVA_CLASSES}") + + +add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/classes/ + COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/classes/") + +ADD_CUSTOM_COMMAND( + TARGET clean + COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/classes/) + +# compile all .java files with javac to .class +ADD_CUSTOM_COMMAND( + OUTPUT ${JAVA_CLASSES} + DEPENDS ${JAVA_FILES} ${CMAKE_CURRENT_BINARY_DIR}/classes/ + COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/classes/ + -cp ${CMAKE_CURRENT_BINARY_DIR}/classes/ + ${JAVA_FILES} + COMMENT "Compiling java sources of core library..." +) + + +ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar + DEPENDS ${JAVA_CLASSES} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes + COMMAND ${JAVA_ARCHIVE} -cvf ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar . + COMMENT "Building simgrid.jar..." +) + +ADD_CUSTOM_TARGET(java_basic ALL + COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/basic -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java +) + +ADD_CUSTOM_TARGET(java_ping_pong ALL + COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/ping_pong -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java +) + +ADD_CUSTOM_TARGET(java_comm_time ALL + COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/comm_time -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java +) + +ADD_CUSTOM_TARGET(java_suspend ALL + COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/suspend -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java + DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java +)