Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
write java class files into CMAKE_CURRENT_BINARY_DIR, not into source dir
[simgrid.git] / buildtools / Cmake / MakeJava.cmake
index f49e6d0..a50ef0e 100644 (file)
@@ -14,10 +14,6 @@ add_custom_command(
   OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/classes/
   COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/classes/")
   
-ADD_CUSTOM_COMMAND(
-  TARGET clean
-  COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/classes/)
-
 # compile all .java files with javac to .class
 ADD_CUSTOM_COMMAND(
   OUTPUT ${JAVA_CLASSES}
@@ -28,6 +24,8 @@ ADD_CUSTOM_COMMAND(
   COMMENT "Compiling java sources of core library..."
 )
 
+ADD_CUSTOM_TARGET(simgrid_java ALL
+                  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar simgrid)
 
 ADD_CUSTOM_COMMAND(
   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar
@@ -37,22 +35,59 @@ ADD_CUSTOM_COMMAND(
   COMMENT "Building simgrid.jar..."
 )
 
-ADD_CUSTOM_TARGET(java_basic ALL
-  COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/basic -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java
-  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java
-)
-       
-ADD_CUSTOM_TARGET(java_ping_pong ALL
-  COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/ping_pong -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java
-  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java
-)
+ADD_CUSTOM_COMMAND(
+       OUTPUT  ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/BasicTest.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/FinalizeTask.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Forwarder.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Slave.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Master.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/PingPongTest.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/Sender.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/PingPongTask.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/Receiver.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/FinalizeTask.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/CommTimeTest.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/Slave.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/Master.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/SuspendTest.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/LazyGuy.class
+                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/DreamMaster.class
+                       
+       DEPENDS simgrid
+            ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar
+                       ${PROJECT_DIRECTORY}/examples/java/basic/*.java
+                       ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java
+                       ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java
+                       ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
+                       
+       COMMENT "Build examples for java"       
        
-ADD_CUSTOM_TARGET(java_comm_time ALL
-  COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/comm_time -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java
-  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java
-)
+       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic
+       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong
+       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time
+       COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend
        
-ADD_CUSTOM_TARGET(java_suspend ALL
-  COMMAND ${JAVA_COMPILE} -d ${PROJECT_DIRECTORY}/examples/java/suspend -cp ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
-  DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
+       COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/basic/*.java  
+       COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/ping_pong/*.java
+       COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/comm_time/*.java
+       COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend -cp ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
 )
+
+ADD_CUSTOM_TARGET(simgrid_java_examples ALL
+                  DEPENDS      ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/BasicTest.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/FinalizeTask.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Forwarder.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Slave.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/basic/Master.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/PingPongTest.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/Sender.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/PingPongTask.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/ping_pong/Receiver.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/FinalizeTask.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/CommTimeTest.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/Slave.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/comm_time/Master.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/SuspendTest.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/LazyGuy.class
+                                                       ${CMAKE_CURRENT_BINARY_DIR}/examples/java/suspend/DreamMaster.class
+)
\ No newline at end of file