X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fc783dc02e4e1bf955b152713d1df4914ae3adb8..8b102e4be5251931d23be873a3e36ced0436ac24:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ba42eb3e5..35f5892773 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 2.6) project(simgrid-java C) include(FindSimGrid.cmake) +set(soversion 1) ############################### # Test the build dependencies # ############################### @@ -27,20 +28,20 @@ endif(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2) ############################### set(JMSG_C_SRC - src/simix/smx_context_java.h - src/simix/smx_context_java.c - src/java/jxbt_utilities.c - src/java/jxbt_utilities.h - src/java/jmsg.c - src/java/jmsg.h - src/java/jmsg_host.c - src/java/jmsg_host.h - src/java/jmsg_process.c - src/java/jmsg_process.h - src/java/jmsg_task.c - src/java/jmsg_task.h - src/java/jmsg_application_handler.c - src/java/jmsg_application_handler.h + src/smx_context_java.h + src/smx_context_java.c + src/jxbt_utilities.c + src/jxbt_utilities.h + src/jmsg.c + src/jmsg.h + src/jmsg_host.c + src/jmsg_host.h + src/jmsg_process.c + src/jmsg_process.h + src/jmsg_task.c + src/jmsg_task.h + src/jmsg_application_handler.c + src/jmsg_application_handler.h ) set(JMSG_JAVA_SRC @@ -72,6 +73,11 @@ file(GLOB_RECURSE examples_sources ############### # Build Stuff # ############### +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${HAVE_GRAS_H} -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral -Werror ") + +add_library(simgrid-java SHARED ${JMSG_C_SRC}) +set_target_properties(simgrid-java PROPERTIES VERSION ${soversion}) +target_link_libraries(simgrid-java ${HAVE_SIMGRID_LIB}) set(JAVA_FILES ${JMSG_JAVA_SRC}) set(JAVA_CLASSES ${JAVA_FILES}) @@ -79,90 +85,130 @@ set(JAVA_CLASSES ${JAVA_FILES}) string(REPLACE "org/" "${CMAKE_HOME_DIRECTORY}/org/" JAVA_FILES "${JAVA_FILES}") -string(REPLACE "org/simgrid/msg" "${CMAKE_CURRENT_BINARY_DIR}/classes/simgrid/msg" +string(REPLACE "org/simgrid/msg" "${CMAKE_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/") - + OUTPUT ${CMAKE_BINARY_DIR}/classes/ + COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_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/ + DEPENDS ${JAVA_FILES} ${CMAKE_BINARY_DIR}/classes/ + COMMAND ${JAVA_COMPILE} -d ${CMAKE_BINARY_DIR}/classes/ + -cp ${CMAKE_BINARY_DIR}/classes/ ${JAVA_FILES} COMMENT "Compiling java sources of core library..." ) -ADD_CUSTOM_TARGET(simgrid_java ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar) +ADD_CUSTOM_TARGET(simgrid_jar ALL + DEPENDS ${CMAKE_BINARY_DIR}/share/simgrid.jar) -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 . +ADD_CUSTOM_COMMAND( + OUTPUT ${CMAKE_BINARY_DIR}/share/simgrid.jar + DEPENDS ${JAVA_CLASSES} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/classes + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/share + COMMAND ${JAVA_ARCHIVE} -cvf ${CMAKE_BINARY_DIR}/share/simgrid.jar . COMMENT "Building simgrid.jar..." ) ADD_CUSTOM_COMMAND( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/BasicTest.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/FinalizeTask.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Forwarder.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Slave.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Master.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/PingPongTest.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/Sender.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/PingPongTask.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/Receiver.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/FinalizeTask.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/CommTimeTest.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/Slave.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/Master.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/SuspendTest.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/LazyGuy.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/DreamMaster.class + OUTPUT ${CMAKE_BINARY_DIR}/examples/basic/BasicTest.class + ${CMAKE_BINARY_DIR}/examples/basic/FinalizeTask.class + ${CMAKE_BINARY_DIR}/examples/basic/Forwarder.class + ${CMAKE_BINARY_DIR}/examples/basic/Slave.class + ${CMAKE_BINARY_DIR}/examples/basic/Master.class + ${CMAKE_BINARY_DIR}/examples/pingPong/PingPongTest.class + ${CMAKE_BINARY_DIR}/examples/pingPong/Sender.class + ${CMAKE_BINARY_DIR}/examples/pingPong/PingPongTask.class + ${CMAKE_BINARY_DIR}/examples/pingPong/Receiver.class + ${CMAKE_BINARY_DIR}/examples/commTime/FinalizeTask.class + ${CMAKE_BINARY_DIR}/examples/commTime/CommTimeTest.class + ${CMAKE_BINARY_DIR}/examples/commTime/Slave.class + ${CMAKE_BINARY_DIR}/examples/commTime/Master.class + ${CMAKE_BINARY_DIR}/examples/suspend/SuspendTest.class + ${CMAKE_BINARY_DIR}/examples/suspend/LazyGuy.class + ${CMAKE_BINARY_DIR}/examples/suspend/DreamMaster.class DEPENDS - ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar + ${CMAKE_BINARY_DIR}/share/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/basic/*.java - ${CMAKE_HOME_DIRECTORY}/examples/ping_pong/*.java - ${CMAKE_HOME_DIRECTORY}/examples/comm_time/*.java + ${CMAKE_HOME_DIRECTORY}/examples/pingPong/*.java + ${CMAKE_HOME_DIRECTORY}/examples/commTime/*.java ${CMAKE_HOME_DIRECTORY}/examples/suspend/*.java COMMENT "Build examples for java" - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/basic - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time - COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/examples/basic + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/examples/ping_pong + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/examples/comm_time + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/examples/suspend - COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/basic -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/basic/*.java - COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/ping_pong/*.java - COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/comm_time/*.java - COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/suspend/*.java + COMMAND ${JAVA_COMPILE} -d ${CMAKE_BINARY_DIR}/examples/basic -cp ${CMAKE_BINARY_DIR}/share/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/basic/*.java + COMMAND ${JAVA_COMPILE} -d ${CMAKE_BINARY_DIR}/examples/ping_pong -cp ${CMAKE_BINARY_DIR}/share/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/pingPong/*.java + COMMAND ${JAVA_COMPILE} -d ${CMAKE_BINARY_DIR}/examples/comm_time -cp ${CMAKE_BINARY_DIR}/share/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/commTime/*.java + COMMAND ${JAVA_COMPILE} -d ${CMAKE_BINARY_DIR}/examples/suspend -cp ${CMAKE_BINARY_DIR}/share/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/suspend/*.java ) -ADD_CUSTOM_TARGET(simgrid_java_examples ALL - DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/BasicTest.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/FinalizeTask.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Forwarder.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Slave.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Master.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/PingPongTest.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/Sender.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/PingPongTask.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/Receiver.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/FinalizeTask.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/CommTimeTest.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/Slave.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/Master.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/SuspendTest.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/LazyGuy.class - ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/DreamMaster.class -) \ No newline at end of file +ADD_CUSTOM_TARGET(examples ALL + DEPENDS ${CMAKE_BINARY_DIR}/examples/basic/BasicTest.class + ${CMAKE_BINARY_DIR}/examples/basic/FinalizeTask.class + ${CMAKE_BINARY_DIR}/examples/basic/Forwarder.class + ${CMAKE_BINARY_DIR}/examples/basic/Slave.class + ${CMAKE_BINARY_DIR}/examples/basic/Master.class + ${CMAKE_BINARY_DIR}/examples/ping_pong/PingPongTest.class + ${CMAKE_BINARY_DIR}/examples/ping_pong/Sender.class + ${CMAKE_BINARY_DIR}/examples/ping_pong/PingPongTask.class + ${CMAKE_BINARY_DIR}/examples/ping_pong/Receiver.class + ${CMAKE_BINARY_DIR}/examples/comm_time/FinalizeTask.class + ${CMAKE_BINARY_DIR}/examples/comm_time/CommTimeTest.class + ${CMAKE_BINARY_DIR}/examples/comm_time/Slave.class + ${CMAKE_BINARY_DIR}/examples/comm_time/Master.class + ${CMAKE_BINARY_DIR}/examples/suspend/SuspendTest.class + ${CMAKE_BINARY_DIR}/examples/suspend/LazyGuy.class + ${CMAKE_BINARY_DIR}/examples/suspend/DreamMaster.class + COMMENT Compiling the Java examples +) + +##################### +# Declare our tests # +##################### +ENABLE_TESTING() + +set(osname ${CMAKE_SYSTEM_NAME}) +set(cpu ${CMAKE_SYSTEM_PROCESSOR}) +set(DISTRIB2 ${CMAKE_SYSTEM_VERSION}) + +SET(SITE "${osname}_${DISTRIB2}_${cpu}") +SET(CTEST_SITE "${osname}_${DISTRIB2}_${cpu}") +SET(CTEST_PROJECT_NAME "${PROJECT_NAME}") +SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE "3000000") +SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE "3000000") + + +# java examples +ADD_TEST(java-basic java -cp ${CMAKE_BINARY_DIR}/examples/basic:${CMAKE_BINARY_DIR}/share/simgrid.jar BasicTest examples/platform.xml ${CMAKE_HOME_DIRECTORY}/examples/basic/basic_deployment.xml) +ADD_TEST(java-pingpong java -cp ${CMAKE_BINARY_DIR}/examples/pingpong:${CMAKE_BINARY_DIR}/share/simgrid.jar PingpongTest examples/platform.xml ${CMAKE_HOME_DIRECTORY}/examples/pingpong/pingpong_deployment.xml) +ADD_TEST(java-pingpong java -cp ${CMAKE_BINARY_DIR}/examples/pingpong:${CMAKE_BINARY_DIR}/share/simgrid.jar PingpongTest examples/platform.xml ${CMAKE_HOME_DIRECTORY}/examples/pingpong/pingpong_deployment.xml) +#ADD_TEST(java-comm_time ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_java.sh ${CMAKE_HOME_DIRECTORY}/examples/java/comm_time CommTimeTest ${simgrid_BINARY_DIR}) +#ADD_TEST(java-suspend ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/test_java.sh ${CMAKE_HOME_DIRECTORY}/examples/java/suspend SuspendTest ${simgrid_BINARY_DIR}) + +###################### +# Install some stuff # +###################### +install(FILES ${CMAKE_BINARY_DIR}/share/simgrid.jar + DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/) + +add_custom_target(uninstall + COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/simgrid.jar + COMMAND ${CMAKE_COMMAND} -E echo "uninstall binding java ok" +) + +install(TARGETS simgrid-java + DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)