Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correct macro declaration for VA_COPY so that it does not fool cpp and works on windo...
[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/" "${PROJECT_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 ADD_CUSTOM_COMMAND(
18   TARGET clean
19   COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/classes/)
20
21 # compile all .java files with javac to .class
22 ADD_CUSTOM_COMMAND(
23   OUTPUT ${JAVA_CLASSES}
24   DEPENDS ${JAVA_FILES} ${CMAKE_CURRENT_BINARY_DIR}/classes/
25   COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/classes/
26                           -cp ${CMAKE_CURRENT_BINARY_DIR}/classes/
27                           ${JAVA_FILES}
28   COMMENT "Compiling java sources of core library..."
29 )
30
31
32 ADD_CUSTOM_COMMAND(
33   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar
34   DEPENDS ${JAVA_CLASSES}
35   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes  
36   COMMAND ${JAVA_ARCHIVE} -cvf ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar .
37   COMMENT "Building simgrid.jar..."
38 )
39
40 ADD_CUSTOM_TARGET(java_basic ALL
41   COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/basic -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java
42   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java
43 )
44         
45 ADD_CUSTOM_TARGET(java_ping_pong ALL
46   COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/ping_pong -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java
47   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java
48 )
49         
50 ADD_CUSTOM_TARGET(java_comm_time ALL
51   COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/comm_time -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java
52   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java
53 )
54         
55 ADD_CUSTOM_TARGET(java_suspend ALL
56   COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/suspend -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
57   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
58 )