1 cmake_minimum_required(VERSION 2.6)
2 project(simgrid-java C)
3 include(FindSimGrid.cmake)
5 ###############################
6 # Test the build dependencies #
7 ###############################
13 endif(JAVA_INCLUDE_PATH)
14 if(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2)
16 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${JAVA_INCLUDE_PATH} ")
17 if(NOT JAVA_INCLUDE_PATH STREQUAL JAVA_INCLUDE_PATH2)
18 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}-I${JAVA_INCLUDE_PATH2} ")
19 endif(NOT JAVA_INCLUDE_PATH STREQUAL JAVA_INCLUDE_PATH2)
20 else(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2)
22 endif(JAVA_COMPILE AND JAVA_INCLUDE_PATH AND JAVA_INCLUDE_PATH2)
25 ###############################
26 # Declare our package content #
27 ###############################
30 src/simix/smx_context_java.h
31 src/simix/smx_context_java.c
32 src/java/jxbt_utilities.c
33 src/java/jxbt_utilities.h
38 src/java/jmsg_process.c
39 src/java/jmsg_process.h
42 src/java/jmsg_application_handler.c
43 src/java/jmsg_application_handler.h
47 org/simgrid/msg/ApplicationHandler.java
48 org/simgrid/msg/Host.java
49 org/simgrid/msg/HostFailureException.java
50 org/simgrid/msg/HostNotFoundException.java
51 org/simgrid/msg/JniException.java
52 org/simgrid/msg/Msg.java
53 org/simgrid/msg/MsgException.java
54 org/simgrid/msg/MsgNative.java
55 org/simgrid/msg/NativeException.java
56 org/simgrid/msg/Process.java
57 org/simgrid/msg/ProcessNotFoundException.java
58 org/simgrid/msg/Sem.java
59 org/simgrid/msg/Task.java
60 org/simgrid/msg/TaskCancelledException.java
61 org/simgrid/msg/TimeoutException.java
62 org/simgrid/msg/TransferFailureException.java
65 file(GLOB_RECURSE examples_sources
69 "examples/java/runtest"
76 set(JAVA_FILES ${JMSG_JAVA_SRC})
77 set(JAVA_CLASSES ${JAVA_FILES})
79 string(REPLACE "org/" "${CMAKE_HOME_DIRECTORY}/org/"
80 JAVA_FILES "${JAVA_FILES}")
82 string(REPLACE "org/simgrid/msg" "${CMAKE_CURRENT_BINARY_DIR}/classes/simgrid/msg"
83 JAVA_CLASSES "${JAVA_CLASSES}")
84 string(REPLACE ".java" ".class;"
85 JAVA_CLASSES "${JAVA_CLASSES}")
89 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/classes/
90 COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/classes/")
92 # compile all .java files with javac to .class
94 OUTPUT ${JAVA_CLASSES}
95 DEPENDS ${JAVA_FILES} ${CMAKE_CURRENT_BINARY_DIR}/classes/
96 COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/classes/
97 -cp ${CMAKE_CURRENT_BINARY_DIR}/classes/
99 COMMENT "Compiling java sources of core library..."
102 ADD_CUSTOM_TARGET(simgrid_java ALL
103 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar)
106 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar
107 DEPENDS ${JAVA_CLASSES}
108 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes
109 COMMAND ${JAVA_ARCHIVE} -cvf ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar .
110 COMMENT "Building simgrid.jar..."
114 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/BasicTest.class
115 ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/FinalizeTask.class
116 ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Forwarder.class
117 ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Slave.class
118 ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Master.class
119 ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/PingPongTest.class
120 ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/Sender.class
121 ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/PingPongTask.class
122 ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/Receiver.class
123 ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/FinalizeTask.class
124 ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/CommTimeTest.class
125 ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/Slave.class
126 ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/Master.class
127 ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/SuspendTest.class
128 ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/LazyGuy.class
129 ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/DreamMaster.class
132 ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar
133 ${CMAKE_HOME_DIRECTORY}/examples/basic/*.java
134 ${CMAKE_HOME_DIRECTORY}/examples/ping_pong/*.java
135 ${CMAKE_HOME_DIRECTORY}/examples/comm_time/*.java
136 ${CMAKE_HOME_DIRECTORY}/examples/suspend/*.java
138 COMMENT "Build examples for java"
140 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/basic
141 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong
142 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time
143 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend
145 COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/basic -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/basic/*.java
146 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
147 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
148 COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/suspend/*.java
151 ADD_CUSTOM_TARGET(simgrid_java_examples ALL
152 DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/BasicTest.class
153 ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/FinalizeTask.class
154 ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Forwarder.class
155 ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Slave.class
156 ${CMAKE_CURRENT_BINARY_DIR}/examples/basic/Master.class
157 ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/PingPongTest.class
158 ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/Sender.class
159 ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/PingPongTask.class
160 ${CMAKE_CURRENT_BINARY_DIR}/examples/ping_pong/Receiver.class
161 ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/FinalizeTask.class
162 ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/CommTimeTest.class
163 ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/Slave.class
164 ${CMAKE_CURRENT_BINARY_DIR}/examples/comm_time/Master.class
165 ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/SuspendTest.class
166 ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/LazyGuy.class
167 ${CMAKE_CURRENT_BINARY_DIR}/examples/suspend/DreamMaster.class