Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add verification before install doc. Cosmetics.
[simgrid.git] / buildtools / Cmake / src / CMakeJarAndClass.txt
1         set(JMSG_JAVA_SRC_CLASS ${JMSG_JAVA_SRC})
2         string(REPLACE "${PROJECT_DIRECTORY}/src/java/simgrid/msg" "${PROJECT_DIRECTORY}/src/.classes/simgrid/msg" JMSG_JAVA_SRC_CLASS ${JMSG_JAVA_SRC_CLASS})
3         string(REPLACE ".java" ".class;" JMSG_JAVA_SRC_CLASS ${JMSG_JAVA_SRC_CLASS})
4         set(java_src_to_compile "")     
5         
6         file(MAKE_DIRECTORY "${PROJECT_DIRECTORY}/src/.classes")
7         file(MAKE_DIRECTORY "${PROJECT_DIRECTORY}/src/.classes/surf")
8         configure_file("${PROJECT_DIRECTORY}/src/surf/simgrid.dtd" "${PROJECT_DIRECTORY}/src/.classes/surf/simgrid.dtd" COPY_ONLY)
9         
10         set(CMAKE_JAVA_COMPILER "${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/src/.classes -cp ${PROJECT_DIRECTORY}/src/.classes")
11         SET(CMAKE_JAVA_LINK_EXECUTABLE "${JAVA_ARCHIVE} -cvf ${PROJECT_DIRECTORY}/src/simgrid.jar -C ${PROJECT_DIRECTORY}/src/.classes .")
12                 
13         foreach(file ${JMSG_JAVA_SRC_CLASS})
14                 if(NOT EXISTS ${file})
15                         string(REPLACE "${PROJECT_DIRECTORY}/src/.classes/simgrid/msg" "${PROJECT_DIRECTORY}/src/java/simgrid/msg" file ${file})
16                         string(REPLACE ".class" ".java" file ${file})
17                         set(java_src_to_compile "${java_src_to_compile}${file}\t")
18                 endif(NOT EXISTS ${file})
19         endforeach(file ${JMSG_JAVA_SRC_CLASS})
20         
21         add_executable(simgrid.jar ${JMSG_JAVA_SRC})
22         set_target_properties(simgrid.jar PROPERTIES LANGUAGE JAVA)
23         set_target_properties(simgrid.jar PROPERTIES LINKER_LANGUAGE JAVA)
24
25         if(java_src_to_compile) 
26                 ADD_CUSTOM_COMMAND(TARGET simgrid.jar
27                 PRE_BUILD
28                 COMMAND ${JAVA_COMPILE}
29                 ARGS -d ${PROJECT_DIRECTORY}/src/.classes -cp ${PROJECT_DIRECTORY}/src/.classes ${java_src_to_compile}
30                 )
31         endif(java_src_to_compile)
32         
33
34         ADD_CUSTOM_TARGET(java_basic ALL
35         COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/basic -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java
36         )
37         
38         ADD_CUSTOM_TARGET(java_ping_pong ALL
39         COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/ping_pong -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java
40         )
41         
42         ADD_CUSTOM_TARGET(java_comm_time ALL
43         COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/comm_time -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java
44         )
45         
46         ADD_CUSTOM_TARGET(java_suspend ALL
47         COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/suspend -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
48         )
49         
50         add_dependencies(java_basic simgrid.jar)
51         add_dependencies(java_ping_pong simgrid.jar)
52         add_dependencies(java_comm_time simgrid.jar)
53         add_dependencies(java_suspend simgrid.jar)