Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Definitively remove old variable PROJECT_DIRECTORY for CMAKE_HOME_DIRECTORY.
[simgrid.git] / buildtools / Cmake / MakeJava.cmake
1 set(JAVA_FILES ${JMSG_JAVA_SRC})
2 set(JAVA_CLASSES ${JAVA_FILES})
3
4 string(REPLACE "src/java/" "${CMAKE_HOME_DIRECTORY}/src/java/"
5                JAVA_FILES "${JAVA_FILES}")
6
7 string(REPLACE "src/java/simgrid/msg" "${CMAKE_CURRENT_BINARY_DIR}/classes/simgrid/msg"
8                JAVA_CLASSES "${JAVA_CLASSES}")
9 string(REPLACE ".java" ".class;" 
10                JAVA_CLASSES "${JAVA_CLASSES}")
11                
12
13 add_custom_command(
14   OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/classes/
15   COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/classes/")
16   
17 # compile all .java files with javac to .class
18 ADD_CUSTOM_COMMAND(
19   OUTPUT ${JAVA_CLASSES}
20   DEPENDS ${JAVA_FILES} ${CMAKE_CURRENT_BINARY_DIR}/classes/
21   COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/classes/
22                           -cp ${CMAKE_CURRENT_BINARY_DIR}/classes/
23                           ${JAVA_FILES}
24   COMMENT "Compiling java sources of core library..."
25 )
26
27 ADD_CUSTOM_TARGET(simgrid_java ALL
28                   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar simgrid)
29
30 ADD_CUSTOM_COMMAND(
31   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar
32   DEPENDS ${JAVA_CLASSES}
33   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes  
34   COMMAND ${JAVA_ARCHIVE} -cvf ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar .
35   COMMENT "Building simgrid.jar..."
36 )
37
38 ADD_CUSTOM_COMMAND(
39         OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/BasicTest.class
40                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/FinalizeTask.class
41                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Forwarder.class
42                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Slave.class
43                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Master.class
44                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/PingPongTest.class
45                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/Sender.class
46                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/PingPongTask.class
47                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/Receiver.class
48                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/FinalizeTask.class
49                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/CommTimeTest.class
50                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/Slave.class
51                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/Master.class
52                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/SuspendTest.class
53                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/LazyGuy.class
54                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/DreamMaster.class
55                         
56         DEPENDS simgrid
57             ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar
58                         ${CMAKE_HOME_DIRECTORY}/examples/java/basic/*.java
59                         ${CMAKE_HOME_DIRECTORY}/examples/java/ping_pong/*.java
60                         ${CMAKE_HOME_DIRECTORY}/examples/java/comm_time/*.java
61                         ${CMAKE_HOME_DIRECTORY}/examples/java/suspend/*.java
62                         
63         COMMENT "Build examples for java"       
64         
65         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic
66         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong
67         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time
68         COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend
69         
70         COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/java/basic/*.java  
71         COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/java/ping_pong/*.java
72         COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/java/comm_time/*.java
73         COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${CMAKE_HOME_DIRECTORY}/examples/java/suspend/*.java
74 )
75
76 ADD_CUSTOM_TARGET(simgrid_java_examples ALL
77                   DEPENDS       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/BasicTest.class
78                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/FinalizeTask.class
79                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Forwarder.class
80                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Slave.class
81                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Master.class
82                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/PingPongTest.class
83                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/Sender.class
84                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/PingPongTask.class
85                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/Receiver.class
86                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/FinalizeTask.class
87                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/CommTimeTest.class
88                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/Slave.class
89                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/Master.class
90                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/SuspendTest.class
91                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/LazyGuy.class
92                                                         ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/DreamMaster.class
93 )