From 81c3c0394f8a6fa6ef9fbad74529ce5a82081c2a Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Fri, 1 Feb 2013 02:18:36 +0100 Subject: [PATCH] Fix dependencies for Java and its examples. Try to avoid to rebuild targets when not needed. --- buildtools/Cmake/AddTests.cmake | 2 +- buildtools/Cmake/MakeLib.cmake | 21 +++++++++++-------- examples/java/async/CMakeLists.txt | 15 ++++++++----- examples/java/bittorrent/CMakeLists.txt | 15 ++++++++----- examples/java/chord/CMakeLists.txt | 15 ++++++++----- examples/java/cloud/CMakeLists.txt | 15 ++++++++----- examples/java/commTime/CMakeLists.txt | 15 ++++++++----- examples/java/io/CMakeLists.txt | 15 ++++++++----- examples/java/kademlia/CMakeLists.txt | 15 ++++++++----- .../java/master_slave_bypass/CMakeLists.txt | 15 ++++++++----- .../java/master_slave_kill/CMakeLists.txt | 15 ++++++++----- examples/java/masterslave/CMakeLists.txt | 15 ++++++++----- examples/java/migration/CMakeLists.txt | 15 ++++++++----- examples/java/mutualExclusion/CMakeLists.txt | 15 ++++++++----- examples/java/pingPong/CMakeLists.txt | 15 ++++++++----- examples/java/priority/CMakeLists.txt | 15 ++++++++----- examples/java/startKillTime/CMakeLists.txt | 15 ++++++++----- examples/java/suspend/CMakeLists.txt | 15 ++++++++----- examples/java/tracing/CMakeLists.txt | 17 +++++++++------ 19 files changed, 184 insertions(+), 96 deletions(-) diff --git a/buildtools/Cmake/AddTests.cmake b/buildtools/Cmake/AddTests.cmake index adcac332c7..728ea6a0f6 100644 --- a/buildtools/Cmake/AddTests.cmake +++ b/buildtools/Cmake/AddTests.cmake @@ -317,7 +317,7 @@ if(NOT enable_memcheck) ENDIF() # Java examples - set(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/:${CMAKE_BINARY_DIR}/simgrid.jar") + set(TESH_CLASSPATH "${CMAKE_BINARY_DIR}/examples/java/:${SIMGRID_JAR}") if(enable_java) ADD_TEST(java-async ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_HOME_DIRECTORY}/examples/java async/async.tesh) ADD_TEST(java-bittorrent ${CMAKE_BINARY_DIR}/bin/tesh ${TESH_OPTION} --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_HOME_DIRECTORY}/examples/java bittorrent/bittorrent.tesh) diff --git a/buildtools/Cmake/MakeLib.cmake b/buildtools/Cmake/MakeLib.cmake index f2960f0b75..1707c38cf6 100644 --- a/buildtools/Cmake/MakeLib.cmake +++ b/buildtools/Cmake/MakeLib.cmake @@ -49,12 +49,8 @@ if(enable_java) set(CMAKE_JAVA_TARGET_OUTPUT_NAME simgrid) add_jar(SG_java_jar ${JMSG_JAVA_SRC}) + set(SIMGRID_JAR "${CMAKE_BINARY_DIR}/simgrid.jar") set(MANIFEST_FILE "${CMAKE_HOME_DIRECTORY}/src/bindings/java/MANIFEST.MF") - add_custom_command(TARGET simgrid.jar POST_BUILD - COMMENT "Update file MANIFEST.MF in simgrid.jar..." - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" - COMMAND ${JAVA_ARCHIVE} -uvmf ${MANIFEST_FILE} simgrid.jar - ) if(CMAKE_SYSTEM_PROCESSOR MATCHES ".86") if(${ARCH_32_BITS}) @@ -67,9 +63,13 @@ if(enable_java) endif() message("Native libraries bundeled into: ${JSG_BUNDLE}") - add_custom_command(TARGET simgrid.jar POST_BUILD - COMMENT "Combine native libraries in simgrid.jar..." - DEPENDS simgrid SG_java + add_custom_command( + COMMENT "Finalize simgrid.jar..." + OUTPUT ${SIMGRID_JAR}_finalized + DEPENDS simgrid SG_java ${SIMGRID_JAR} ${MANIFEST_FILE} + ${CMAKE_HOME_DIRECTORY}/COPYING + ${CMAKE_HOME_DIRECTORY}/ChangeLog + ${CMAKE_HOME_DIRECTORY}/ChangeLog.SimGrid-java WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" COMMAND ${CMAKE_COMMAND} -E remove_directory "NATIVE" COMMAND ${CMAKE_COMMAND} -E make_directory "${JSG_BUNDLE}" @@ -80,8 +80,11 @@ if(enable_java) COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/COPYING" "${JSG_BUNDLE}" COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/ChangeLog" "${JSG_BUNDLE}" COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_HOME_DIRECTORY}/ChangeLog.SimGrid-java" "${JSG_BUNDLE}" - COMMAND ${JAVA_ARCHIVE} -uvf simgrid.jar "NATIVE" + COMMAND ${JAVA_ARCHIVE} -uvmf ${MANIFEST_FILE} ${SIMGRID_JAR} "NATIVE" + COMMAND ${CMAKE_COMMAND} -E touch ${SIMGRID_JAR}_finalized ) + add_custom_target(SG_java_jar_finalize DEPENDS ${SIMGRID_JAR}_finalized) + add_dependencies(SG_java_jar SG_java_jar_finalize) endif() add_dependencies(simgrid maintainer_files) diff --git a/examples/java/async/CMakeLists.txt b/examples/java/async/CMakeLists.txt index 98044f6b81..41082fe491 100644 --- a/examples/java/async/CMakeLists.txt +++ b/examples/java/async/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_async) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/AsyncTest.java ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java @@ -9,11 +10,15 @@ set(sources ) if(enable_java) - add_custom_target(java_async ALL - COMMENT "Building java_async..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_async SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/bittorrent/CMakeLists.txt b/examples/java/bittorrent/CMakeLists.txt index c2f2803e07..a8a46f2627 100644 --- a/examples/java/bittorrent/CMakeLists.txt +++ b/examples/java/bittorrent/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_bittorrent) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Bittorrent.java ${CMAKE_CURRENT_SOURCE_DIR}/Common.java @@ -11,11 +12,15 @@ set(sources ) if(enable_java) - add_custom_target(java_bittorrent ALL - COMMENT "Building java_bittorrent..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_bittorrent SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/chord/CMakeLists.txt b/examples/java/chord/CMakeLists.txt index 82359675be..50c534f1d7 100644 --- a/examples/java/chord/CMakeLists.txt +++ b/examples/java/chord/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_chord) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Chord.java ${CMAKE_CURRENT_SOURCE_DIR}/ChordTask.java @@ -13,11 +14,15 @@ set(sources ) if(enable_java) - add_custom_target(java_chord ALL - COMMENT "Building java_chord..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_chord SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/cloud/CMakeLists.txt b/examples/java/cloud/CMakeLists.txt index b06f6f940a..d3ef5f64b5 100644 --- a/examples/java/cloud/CMakeLists.txt +++ b/examples/java/cloud/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_cloud) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Cloud.java ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java @@ -8,11 +9,15 @@ set(sources ) if(enable_java) - add_custom_target(java_cloud ALL - COMMENT "Building java_cloud..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_cloud SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/commTime/CMakeLists.txt b/examples/java/commTime/CMakeLists.txt index 0545440e13..2404c0f02f 100644 --- a/examples/java/commTime/CMakeLists.txt +++ b/examples/java/commTime/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_commTime) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/CommTimeTest.java ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java @@ -8,11 +9,15 @@ set(sources ) if(enable_java) - add_custom_target(java_commTime ALL - COMMENT "Building java_commTime..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_commTime SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/io/CMakeLists.txt b/examples/java/io/CMakeLists.txt index 016538112a..1d1e5ab1de 100644 --- a/examples/java/io/CMakeLists.txt +++ b/examples/java/io/CMakeLists.txt @@ -1,16 +1,21 @@ cmake_minimum_required(VERSION 2.6) +set(example java_io) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/IO.java ${CMAKE_CURRENT_SOURCE_DIR}/Node.java ) if(enable_java) - add_custom_target(java_io ALL - COMMENT "Building java_io..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_io SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/kademlia/CMakeLists.txt b/examples/java/kademlia/CMakeLists.txt index 18f6222f98..b6cdc1ac13 100644 --- a/examples/java/kademlia/CMakeLists.txt +++ b/examples/java/kademlia/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_kademlia) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Answer.java ${CMAKE_CURRENT_SOURCE_DIR}/Bucket.java @@ -16,11 +17,15 @@ set(sources ) if(enable_java) - add_custom_target(java_kademlia ALL - COMMENT "Building java_kademlia..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_kademlia SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/master_slave_bypass/CMakeLists.txt b/examples/java/master_slave_bypass/CMakeLists.txt index 8b5003f7df..ae5fea702f 100644 --- a/examples/java/master_slave_bypass/CMakeLists.txt +++ b/examples/java/master_slave_bypass/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_master_slave_bypass) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java ${CMAKE_CURRENT_SOURCE_DIR}/Master.java @@ -8,11 +9,15 @@ set(sources ) if(enable_java) - add_custom_target(java_master_slave_bypass ALL - COMMENT "Building java_master_slave_bypass..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_master_slave_bypass SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/master_slave_kill/CMakeLists.txt b/examples/java/master_slave_kill/CMakeLists.txt index fd8d8e6abe..c4ff8beaf6 100644 --- a/examples/java/master_slave_kill/CMakeLists.txt +++ b/examples/java/master_slave_kill/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_master_slave_kill) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java ${CMAKE_CURRENT_SOURCE_DIR}/Master.java @@ -8,11 +9,15 @@ set(sources ) if(enable_java) - add_custom_target(java_master_slave_kill ALL - COMMENT "Building java_master_slave_kill..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_master_slave_kill SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/masterslave/CMakeLists.txt b/examples/java/masterslave/CMakeLists.txt index 30ecd76132..e0173a3326 100644 --- a/examples/java/masterslave/CMakeLists.txt +++ b/examples/java/masterslave/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_masterslave) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/FinalizeTask.java ${CMAKE_CURRENT_SOURCE_DIR}/Forwarder.java @@ -9,11 +10,15 @@ set(sources ) if(enable_java) - add_custom_target(java_masterslave ALL - COMMENT "Building java_masterslave..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_masterslave SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/migration/CMakeLists.txt b/examples/java/migration/CMakeLists.txt index 180279547b..383a02d2a1 100644 --- a/examples/java/migration/CMakeLists.txt +++ b/examples/java/migration/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_migration) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Emigrant.java ${CMAKE_CURRENT_SOURCE_DIR}/Migration.java @@ -7,11 +8,15 @@ set(sources ) if(enable_java) - add_custom_target(java_migration ALL - COMMENT "Building java_migration..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_migration SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/mutualExclusion/CMakeLists.txt b/examples/java/mutualExclusion/CMakeLists.txt index 24a17fbea1..9e5b45ad0e 100644 --- a/examples/java/mutualExclusion/CMakeLists.txt +++ b/examples/java/mutualExclusion/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_mutualExclusion) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Coordinator.java ${CMAKE_CURRENT_SOURCE_DIR}/GrantTask.java @@ -10,11 +11,15 @@ set(sources ) if(enable_java) - add_custom_target(java_mutualExclusion ALL - COMMENT "Building java_mutualExclusion..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_mutualExclusion SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/pingPong/CMakeLists.txt b/examples/java/pingPong/CMakeLists.txt index 9de1cd69a1..95b1361115 100644 --- a/examples/java/pingPong/CMakeLists.txt +++ b/examples/java/pingPong/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_pingPong) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTask.java ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTest.java @@ -8,11 +9,15 @@ set(sources ) if(enable_java) - add_custom_target(java_pingPong ALL - COMMENT "Building java_pingPong..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_pingPong SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/priority/CMakeLists.txt b/examples/java/priority/CMakeLists.txt index d961e0f84a..6d838dd92e 100644 --- a/examples/java/priority/CMakeLists.txt +++ b/examples/java/priority/CMakeLists.txt @@ -1,16 +1,21 @@ cmake_minimum_required(VERSION 2.6) +set(example java_priority) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Priority.java ${CMAKE_CURRENT_SOURCE_DIR}/Test.java ) if(enable_java) - add_custom_target(java_priority ALL - COMMENT "Building java_priority..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_priority SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/startKillTime/CMakeLists.txt b/examples/java/startKillTime/CMakeLists.txt index fecb6c9748..46ea1145d0 100644 --- a/examples/java/startKillTime/CMakeLists.txt +++ b/examples/java/startKillTime/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_startKillTime) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/Master.java ${CMAKE_CURRENT_SOURCE_DIR}/Slave.java @@ -7,11 +8,15 @@ set(sources ) if(enable_java) - add_custom_target(java_startKillTime ALL - COMMENT "Building java_startKillTime..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_startKillTime SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/suspend/CMakeLists.txt b/examples/java/suspend/CMakeLists.txt index 38bf5576a8..8c0e73c330 100644 --- a/examples/java/suspend/CMakeLists.txt +++ b/examples/java/suspend/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_suspend) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/DreamMaster.java ${CMAKE_CURRENT_SOURCE_DIR}/LazyGuy.java @@ -7,11 +8,15 @@ set(sources ) if(enable_java) - add_custom_target(java_suspend ALL - COMMENT "Building java_suspend..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_suspend SG_java_jar) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files diff --git a/examples/java/tracing/CMakeLists.txt b/examples/java/tracing/CMakeLists.txt index bc34cece7e..1ae946b17e 100644 --- a/examples/java/tracing/CMakeLists.txt +++ b/examples/java/tracing/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 2.6) +set(example java_tracing) set(sources ${CMAKE_CURRENT_SOURCE_DIR}/PingPongTask.java ${CMAKE_CURRENT_SOURCE_DIR}/Receiver.java @@ -7,12 +8,16 @@ set(sources ${CMAKE_CURRENT_SOURCE_DIR}/TracingTest.java ) -if(enable_java AND HAVE_TRACING) - add_custom_target(java_tracing ALL - COMMENT "Building java_tracing..." - COMMAND ${JAVA_COMPILE} -cp ${CMAKE_BINARY_DIR}/simgrid.jar - -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources}) - add_dependencies(java_tracing SG_java_jar) +if(enable_java) + add_custom_command( + COMMENT "Building ${example}..." + OUTPUT ${example}_compiled + DEPENDS ${sources} ${SIMGRID_JAR} + COMMAND ${JAVA_COMPILE} -cp ${SIMGRID_JAR} + -d ${CMAKE_CURRENT_BINARY_DIR}/.. ${sources} + COMMAND ${CMAKE_COMMAND} -E touch ${example}_compiled + ) + add_custom_target(${example} ALL DEPENDS ${example}_compiled) endif() set(tesh_files -- 2.20.1