include(CheckLibraryExists)
CHECK_LIBRARY_EXISTS(${SIMGRID_LIB} TRACE_start "" HAVE_TRACING)
if(NOT HAVE_TRACING)
- message(STATUS "SimGrid-java must be compile with library Simgrid included Tracing option.")
- message(FATAL_ERROR "See http://simgrid.gforge.inria.fr/simgrid/3.8/doc/tracing.html to see how compile SimGrid library with good options.")
+ message(STATUS "Warning: SimGrid-java must be linked with library Simgrid included trace option to enable tracing.")
+ message(STATUS "Warning: See http://simgrid.gforge.inria.fr/simgrid/3.8/doc/tracing.html to see how compile SimGrid library with this option.")
endif(NOT HAVE_TRACING)
###############################
${CMAKE_HOME_DIRECTORY}/src/jmsg_synchro.h
${CMAKE_HOME_DIRECTORY}/src/jmsg_rngstream.c
${CMAKE_HOME_DIRECTORY}/src/jmsg_rngstream.h
+ ${CMAKE_HOME_DIRECTORY}/src/jmsg_vm.c
+ ${CMAKE_HOME_DIRECTORY}/src/jmsg_vm.h
)
set(JTRACE_C_SRC
- src/jtrace.c
- src/jtrace.h
+ ${CMAKE_HOME_DIRECTORY}/src/jtrace.c
+ ${CMAKE_HOME_DIRECTORY}/src/jtrace.h
)
set(JMSG_JAVA_SRC
${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Mutex.java
${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Comm.java
${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/RngStream.java
+ ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/VM.java
)
set(JTRACE_JAVA_SRC
- org/simgrid/trace/Trace.java
+ ${CMAKE_HOME_DIRECTORY}/org/simgrid/trace/Trace.java
)
set(JAVA_EXAMPLES
${CMAKE_HOME_DIRECTORY}/examples/startKillTime/Master.java
${CMAKE_HOME_DIRECTORY}/examples/startKillTime/Slave.java
${CMAKE_HOME_DIRECTORY}/examples/startKillTime/StartKillTime.java
- ${CMAKE_HOME_DIRECTORY}/examples/tracing/PingPongTask.java
${CMAKE_HOME_DIRECTORY}/examples/suspend/DreamMaster.java
${CMAKE_HOME_DIRECTORY}/examples/suspend/LazyGuy.java
${CMAKE_HOME_DIRECTORY}/examples/suspend/Suspend.java
+)
+set(JAVA_TRACING_EXAMPLES
+ ${CMAKE_HOME_DIRECTORY}/examples/tracing/PingPongTask.java
${CMAKE_HOME_DIRECTORY}/examples/tracing/Sender.java
${CMAKE_HOME_DIRECTORY}/examples/tracing/Receiver.java
${CMAKE_HOME_DIRECTORY}/examples/tracing/TracingTest.java
-
)
set(CMAKE_SRC
${JMSG_JAVA_SRC}
${JTRACE_JAVA_SRC}
${JAVA_EXAMPLES}
+ ${JAVA_TRACING_EXAMPLES}
${XML_FILES}
${CMAKE_DOC_SRC}
${TESH_FILES}
string(REPLACE ".java" ".class" JTRACE_JAVA_SRC_CLASS "${JTRACE_JAVA_SRC_CLASS}")
string(REPLACE ".java" ".class" JAVA_EXAMPLES_CLASS "${JAVA_EXAMPLES}")
+string(REPLACE ".java" ".class" JAVA_TRACING_EXAMPLES_CLASS "${JAVA_TRACING_EXAMPLES}")
#########
# FLAGS #
set_target_properties(SG_java PROPERTIES LINK_FLAGS "-L${SIMGRID_LIB_PATH}")
endif(WIN32)
+if(HAVE_TRACING)
# SG_java_tracing
add_library(SG_java_tracing SHARED ${JTRACE_C_SRC})
-if(WIN32)
- set_target_properties(SG_java_tracing PROPERTIES LINK_FLAGS "-Wl,--subsystem,windows,--kill-at ${SIMGRID_LIB}" PREFIX "")
- find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
- message(STATUS "pexports: ${PEXPORTS_PATH}")
- if(PEXPORTS_PATH)
- add_custom_command(TARGET SG_java_tracing POST_BUILD
- COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/SG_java_tracing.dll > ${CMAKE_BINARY_DIR}/SG_java_tracing.def)
- endif(PEXPORTS_PATH)
-else(WIN32)
- target_link_libraries(SG_java_tracing pcre pthread simgrid)
- set_target_properties(SG_java_tracing PROPERTIES LINK_FLAGS "-L${SIMGRID_LIB_PATH}")
-endif(WIN32)
-
+ if(WIN32)
+ set_target_properties(SG_java_tracing PROPERTIES LINK_FLAGS "-Wl,--subsystem,windows,--kill-at ${SIMGRID_LIB}" PREFIX "")
+ find_path(PEXPORTS_PATH NAMES pexports.exe PATHS NO_DEFAULT_PATHS)
+ message(STATUS "pexports: ${PEXPORTS_PATH}")
+ if(PEXPORTS_PATH)
+ add_custom_command(TARGET SG_java_tracing POST_BUILD
+ COMMAND ${PEXPORTS_PATH}/pexports.exe ${CMAKE_BINARY_DIR}/SG_java_tracing.dll > ${CMAKE_BINARY_DIR}/SG_java_tracing.def)
+ endif(PEXPORTS_PATH)
+ else(WIN32)
+ target_link_libraries(SG_java_tracing pcre pthread simgrid)
+ set_target_properties(SG_java_tracing PROPERTIES LINK_FLAGS "-L${SIMGRID_LIB_PATH}")
+ endif(WIN32)
+endif(HAVE_TRACING)
+
+set(JAVA_SRC
+ ${JMSG_JAVA_SRC}
+)
+set(JAVA_SRC_CLASS
+ ${JMSG_JAVA_SRC_CLASS}
+)
+if(HAVE_TRACING)
+ set(JAVA_SRC
+ ${JAVA_SRC}
+ ${JTRACE_JAVA_SRC}
+ )
+ set(JAVA_SRC_CLASS
+ ${JAVA_SRC_CLASS}
+ ${JTRACE_JAVA_SRC_CLASS}
+ )
+endif(HAVE_TRACING)
# java_classes
add_custom_command(
- OUTPUT ${JMSG_JAVA_SRC_CLASS}
- DEPENDS ${JMSG_JAVA_SRC}
+ OUTPUT ${JAVA_SRC_CLASS}
+ DEPENDS ${JAVA_SRC}
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_HOME_DIRECTORY}/classes/"
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/classes/
- -cp ${CMAKE_HOME_DIRECTORY}/classes/ ${JMSG_JAVA_SRC}
+ -cp ${CMAKE_HOME_DIRECTORY}/classes/ ${JAVA_SRC}
COMMENT "Compiling java sources of core library..."
)
-add_custom_command(
- OUTPUT ${JTRACE_JAVA_SRC_CLASS}
- DEPENDS ${JTRACE_JAVA_SRC}
- COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_HOME_DIRECTORY}/classes/"
- COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/classes/
- -cp ${CMAKE_HOME_DIRECTORY}/classes/ ${JAVA_FILES_TRACE}
- COMMENT "Compiling java sources of core libraries..."
-)
-
-add_custom_target(java_classes ALL
- DEPENDS ${JMSG_JAVA_SRC_CLASS} ${JTRACE_JAVA_SRC_CLASS}
-)
+if(HAVE_TRACING)
+ add_custom_target(java_classes ALL
+ DEPENDS ${JMSG_JAVA_SRC_CLASS}
+ )
+else(HAVE_TRACING)
+ add_custom_command(java_classes ALL
+ DEPENDS ${JTRACE_JAVA_SRC_CLASS} ${JMSG_JAVA_SRC_CLASS}
+ )
+endif(HAVE_TRACING)
# simgrid_jar
add_custom_target(simgrid_jar ALL
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/migration/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/*.java
- COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/tracing/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/pingPong/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/priority/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/*.java
COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/suspend/*.java
)
+if(HAVE_TRACING)
+ add_custom_command(
+ COMMENT "Build examples for tracing java"
+ OUTPUT ${JAVA_TRACING_EXAMPLES_CLASS}
+ DEPENDS ${JAVA_TRACING_EXAMPLES} ${JAVA_EXAMPLES_CLASS}
+ COMMAND ${JAVA_COMPILE} -d ${CMAKE_HOME_DIRECTORY}/examples -cp ${CMAKE_HOME_DIRECTORY}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/tracing/*.java
+ )
+endif(HAVE_TRACING)
add_custom_target(simgrid_java_examples ALL
- DEPENDS ${JAVA_EXAMPLES_CLASS}
+ DEPENDS ${JAVA_EXAMPLES_CLASS} ${JAVA_TRACING_EXAMPLES_CLASS}
)
########################
# Declare dependencies #
########################
add_dependencies(simgrid_jar java_classes)
-add_dependencies(simgrid_java_examples simgrid_jar SG_java SG_java_tracing)
+add_dependencies(simgrid_java_examples simgrid_jar SG_java)
+if(HAVE_TRACING)
+ add_dependencies(simgrid_java_examples SG_java_tracing)
+endif(HAVE_TRACING)
#####################
# Declare our tests #
ADD_TEST(priority ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/priority/priority.tesh)
ADD_TEST(startKillTime ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/startKillTime.tesh)
ADD_TEST(suspend ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/suspend/suspend.tesh)
-ADD_TEST(tracing ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/tracing/tracingPingPong.tesh)
#Don't forget to put new test in this list!!!
-set(test_list async bittorrent bypass chord commTime kill masterslave migration mutualExclusion pingPong priority startKillTime tracing)
-
+set(test_list async bittorrent bypass chord commTime kill masterslave migration mutualExclusion pingPong priority startKillTime suspend)
+if(HAVE_TRACING)
+ ADD_TEST(tracing ${TESH_BIN_PATH} ${TESH_OPTION} --setenv srcdir=${CMAKE_HOME_DIRECTORY} ${CMAKE_HOME_DIRECTORY}/examples/tracing/tracingPingPong.tesh)
+ set(test_list ${test_list} tracing)
+endif(HAVE_TRACING)
##########################################
# Set the DYLD_LIBRARY_PATH for mac #
##########################################
###########
install(TARGETS SG_java
DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)
-
-install(TARGETS SG_java_tracing
- DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)
-
+
+if(HAVE_TRACING)
+ install(TARGETS SG_java_tracing
+ DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)
+endif(HAVE_TRACING)
+
install(FILES ${CMAKE_HOME_DIRECTORY}/simgrid.jar
DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/)