-cmake_minimum_required(VERSION 2.8)
-project(SimGrid-Java C)
-set(UPDATE_TYPE svn)
-set(CMAKE_C_FLAGS "" CACHE TYPE INTERNAL FORCE)
-set(CMAKE_EXE_LINKER_FLAGS "" CACHE TYPE INTERNAL FORCE)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_HOME_DIRECTORY}/lib")
-set(soversion 1)
-
-set(SIMGRID_JAVA_VERSION_MAJOR "3")
-set(SIMGRID_JAVA_VERSION_MINOR "9")
-set(SIMGRID_JAVA_VERSION_PATCH "0")
-set(DIST_NAME ${PROJECT_NAME}-${SIMGRID_JAVA_VERSION_MAJOR}.${SIMGRID_JAVA_VERSION_MINOR}.${SIMGRID_JAVA_VERSION_PATCH})
-
-########
-## GCC #
-########
-exec_program("${CMAKE_C_COMPILER} --version" OUTPUT_VARIABLE "COMPILER_C_VERSION")
-string(REGEX MATCH "[0-9].[0-9].[0-9]" COMPILER_C_VERSION "${COMPILER_C_VERSION}")
-string(REGEX MATCH "^[0-9].[0-9]" COMPILER_C_VERSION_MAJOR_MINOR "${COMPILER_C_VERSION}")
-string(REPLACE "${COMPILER_C_VERSION_MAJOR_MINOR}." "" COMPILER_C_VERSION_PATCH "${COMPILER_C_VERSION}")
-
-########
-## GIT #
-########
-if(EXISTS ${CMAKE_HOME_DIRECTORY}/.git/ AND NOT WIN32)
- exec_program("git remote | head -n 1" OUTPUT_VARIABLE remote RETURN_VALUE ret)
- exec_program("git config --get remote.${remote}.url" OUTPUT_VARIABLE url RETURN_VALUE ret)
-
- if(url)
- exec_program("git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log --oneline -1" OUTPUT_VARIABLE "GIT_VERSION")
- message(STATUS "Git version: ${GIT_VERSION}")
- exec_program("git --git-dir=${CMAKE_HOME_DIRECTORY}/.git log -n 1 --format=%ai ." OUTPUT_VARIABLE "GIT_DATE")
- message(STATUS "Git date: ${GIT_DATE}")
- string(REGEX REPLACE " .*" "" GIT_VERSION "${GIT_VERSION}")
- STRING(REPLACE " +0000" "" GIT_DATE ${GIT_DATE})
- STRING(REPLACE " " "~" GIT_DATE ${GIT_DATE})
- STRING(REPLACE ":" "-" GIT_DATE ${GIT_DATE})
- endif(url)
-endif(EXISTS ${CMAKE_HOME_DIRECTORY}/.git/ AND NOT WIN32)
-
-#########
-# CDASH #
-#########
-SET(DROP_METHOD "http")
-SET(DROP_SITE "cdash.inria.fr/CDash")
-SET(DROP_LOCATION "/submit.php?project=simgrid")
-SET(DROP_SITE_CDASH TRUE)
-SET(TRIGGER_SITE "http://cdash.inria.fr/CDash/cgi-bin/Submit-Random-TestingResults.cgi")
-SET(BUILDNAME "SimGrid-Java" CACHE TYPE INTERNAL FORCE)
-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")
-set(PIPOL_IMAGE $ENV{PIPOL_IMAGE})
-if(NOT ${PIPOL_IMAGE} MATCHES "\n")
-set(SITE ${PIPOL_IMAGE})
-endif(NOT ${PIPOL_IMAGE} MATCHES "\n")
-message(STATUS "SITE : ${SITE}")
-message(STATUS "BUILDNAME : ${BUILDNAME}")
-
-###############################
-# Test the build dependencies #
-###############################
-include(FindSimGrid.cmake)
-include(FindJavaSG.cmake)
-
-# Check for option tracing in SimGrid
-include(CheckLibraryExists)
-CHECK_LIBRARY_EXISTS(${SIMGRID_LIB} TRACE_start "" HAVE_TRACING)
-if(NOT HAVE_TRACING)
- 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)
-
-###############################
-# Declare our package content #
-###############################
-set(JMSG_C_SRC
- ${CMAKE_HOME_DIRECTORY}/src/smx_context_cojava.h
- ${CMAKE_HOME_DIRECTORY}/src/smx_context_cojava.c
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_file.c
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_file.h
- ${CMAKE_HOME_DIRECTORY}/src/smx_context_java.h
- ${CMAKE_HOME_DIRECTORY}/src/smx_context_java.c
- ${CMAKE_HOME_DIRECTORY}/src/jxbt_utilities.c
- ${CMAKE_HOME_DIRECTORY}/src/jxbt_utilities.h
- ${CMAKE_HOME_DIRECTORY}/src/jmsg.c
- ${CMAKE_HOME_DIRECTORY}/src/jmsg.h
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_comm.c
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_comm.h
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_host.c
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_host.h
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_process.c
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_process.h
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_task.c
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_task.h
- ${CMAKE_HOME_DIRECTORY}/src/jmsg_synchro.c
- ${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
- ${CMAKE_HOME_DIRECTORY}/src/jtrace.c
- ${CMAKE_HOME_DIRECTORY}/src/jtrace.h
-)
-
-set(JMSG_JAVA_SRC
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Host.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/HostFailureException.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/HostNotFoundException.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/File.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/JniException.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Msg.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/MsgException.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/NativeException.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Process.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/ProcessKilledError.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/ProcessNotFoundException.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/Task.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/TaskCancelledException.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/TimeoutException.java
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/msg/TransferFailureException.java
- ${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
- ${CMAKE_HOME_DIRECTORY}/org/simgrid/trace/Trace.java
-)
-
-set(JAVA_EXAMPLES
- ${CMAKE_HOME_DIRECTORY}/examples/async/AsyncTest.java
- ${CMAKE_HOME_DIRECTORY}/examples/async/FinalizeTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/async/Forwarder.java
- ${CMAKE_HOME_DIRECTORY}/examples/async/Master.java
- ${CMAKE_HOME_DIRECTORY}/examples/async/Slave.java
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Bittorrent.java
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Common.java
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Connection.java
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/MessageTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Peer.java
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/Tracker.java
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/TrackerTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/Chord.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/Common.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/Node.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/ChordTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/FindSuccessorAnswerTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/FindSuccessorTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/GetPredecessorAnswerTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/GetPredecessorTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/chord/NotifyTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/cloud/Cloud.java
- ${CMAKE_HOME_DIRECTORY}/examples/cloud/FinalizeTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/cloud/Master.java
- ${CMAKE_HOME_DIRECTORY}/examples/cloud/Slave.java
- ${CMAKE_HOME_DIRECTORY}/examples/commTime/FinalizeTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/commTime/Master.java
- ${CMAKE_HOME_DIRECTORY}/examples/commTime/Slave.java
- ${CMAKE_HOME_DIRECTORY}/examples/commTime/CommTimeTest.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Answer.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Bucket.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Common.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Contact.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Kademlia.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/Node.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/RoutingTable.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/FindNodeAnswerTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/FindNodeTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/KademliaTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/PingAnswerTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/PingTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/io/IO.java
- ${CMAKE_HOME_DIRECTORY}/examples/io/Node.java
- ${CMAKE_HOME_DIRECTORY}/examples/masterslave/FinalizeTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/masterslave/Forwarder.java
- ${CMAKE_HOME_DIRECTORY}/examples/masterslave/Master.java
- ${CMAKE_HOME_DIRECTORY}/examples/masterslave/Masterslave.java
- ${CMAKE_HOME_DIRECTORY}/examples/masterslave/Slave.java
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/Master.java
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/MsBypass.java
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/Slave.java
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/FinalizeTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/Master.java
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/MsKill.java
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/Slave.java
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/FinalizeTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/migration/Emigrant.java
- ${CMAKE_HOME_DIRECTORY}/examples/migration/Migration.java
- ${CMAKE_HOME_DIRECTORY}/examples/migration/Policeman.java
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/MutexCentral.java
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/GrantTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/Coordinator.java
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/ReleaseTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/Node.java
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/RequestTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/pingPong/PingPongTask.java
- ${CMAKE_HOME_DIRECTORY}/examples/pingPong/Sender.java
- ${CMAKE_HOME_DIRECTORY}/examples/pingPong/Receiver.java
- ${CMAKE_HOME_DIRECTORY}/examples/pingPong/PingPongTest.java
- ${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/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
- ${CMAKE_HOME_DIRECTORY}/ChangeLog
- ${CMAKE_HOME_DIRECTORY}/MANIFEST.MF
- ${CMAKE_HOME_DIRECTORY}/COPYING
- ${CMAKE_HOME_DIRECTORY}/CMakeLists.txt
- ${CMAKE_HOME_DIRECTORY}/doxygen_postprocesser.pl
- ${CMAKE_HOME_DIRECTORY}/FindJavaSG.cmake
- ${CMAKE_HOME_DIRECTORY}/FindSimGrid.cmake
- ${CMAKE_HOME_DIRECTORY}/GenerateDoc.cmake
- ${CMAKE_HOME_DIRECTORY}/README
-)
-
-set(CMAKE_DOC_SRC
- ${CMAKE_HOME_DIRECTORY}/doc/Doxyfile.in
- ${CMAKE_HOME_DIRECTORY}/doc/footer.html.in
- ${CMAKE_HOME_DIRECTORY}/doc/index.doc
- ${CMAKE_HOME_DIRECTORY}/doc/install.doc
-)
-
-set(XML_FILES
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/platform.xml
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/bittorrent.xml
- ${CMAKE_HOME_DIRECTORY}/examples/platform.xml
- ${CMAKE_HOME_DIRECTORY}/examples/commTime/commTimeDeployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/async/asyncDeployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/migration/migrationDeployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/masterslave/deploy.xml
- ${CMAKE_HOME_DIRECTORY}/examples/masterslave/masterslaveDeployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/chord/chord100.xml
- ${CMAKE_HOME_DIRECTORY}/examples/chord/chord.xml
- ${CMAKE_HOME_DIRECTORY}/examples/chord/chord10.xml
- ${CMAKE_HOME_DIRECTORY}/examples/chord/chord10000.xml
- ${CMAKE_HOME_DIRECTORY}/examples/chord/chord1000.xml
- ${CMAKE_HOME_DIRECTORY}/examples/chord/chord90.xml
- ${CMAKE_HOME_DIRECTORY}/examples/kademlia/kademlia.xml
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/platform.xml
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/centralized/mutex_centralized_deployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/ring3.xml
- ${CMAKE_HOME_DIRECTORY}/examples/priority/priorityDeployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/pingPong/pingPongDeployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/deployment_kill.xml
- ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/deployment_start.xml
- ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/deployment_start_kill.xml
- ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/deployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/suspend/suspendDeployment.xml
- ${CMAKE_HOME_DIRECTORY}/examples/io/storage.xml
- ${CMAKE_HOME_DIRECTORY}/examples/tracing/tracingPingPongDeployment.xml
-)
-
-set(TESH_FILES
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_bypass/bypass.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/bittorrent/bittorrent.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/commTime/commtime.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/async/async.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/migration/migration.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/masterslave/masterslave.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/chord/chord.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/cloud/cloud.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/suspend/suspend.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/master_slave_kill/kill.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/mutualExclusion/mutualexclusion.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/priority/priority.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/pingPong/pingpong.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/startKillTime/startKillTime.tesh
- ${CMAKE_HOME_DIRECTORY}/examples/tracing/tracingPingPong.tesh
-)
-
-set(source_to_pack
- ${CMAKE_SRC}
- ${JMSG_C_SRC}
- ${JTRACE_C_SRC}
- ${JMSG_JAVA_SRC}
- ${JTRACE_JAVA_SRC}
- ${JAVA_EXAMPLES}
- ${JAVA_TRACING_EXAMPLES}
- ${XML_FILES}
- ${CMAKE_DOC_SRC}
- ${TESH_FILES}
-)
-
-string(REPLACE "org/" "classes/org/" JMSG_JAVA_SRC_CLASS "${JMSG_JAVA_SRC}")
-string(REPLACE ".java" ".class" JMSG_JAVA_SRC_CLASS "${JMSG_JAVA_SRC_CLASS}")
-
-string(REPLACE "org/" "classes/org/" JTRACE_JAVA_SRC_CLASS "${JTRACE_JAVA_SRC}")
-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(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -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 ")
-set(INCLUDE_PATH "-I${CMAKE_HOME_DIRECTORY}/src -I${SIMGRID_INCLUDES} ")
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${INCLUDE_PATH}")
-
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=int-to-pointer-cast -Wno-error=pointer-to-int-cast")
-if(COMPILER_C_VERSION_MAJOR_MINOR MATCHES "4.6")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=unused-but-set-variable")
-endif(COMPILER_C_VERSION_MAJOR_MINOR MATCHES "4.6")
-
-###########
-# TARGETS #
-###########
-# SG_java
-add_library(SG_java SHARED ${JMSG_C_SRC})