set(JAVA_FILES ${JMSG_JAVA_SRC})
set(JAVA_CLASSES ${JAVA_FILES})
-string(REPLACE "${PROJECT_DIRECTORY}/src/java/simgrid/msg" "${CMAKE_CURRENT_BINARY_DIR}/classes/simgrid/msg"
+
+string(REPLACE "src/java/" "${PROJECT_DIRECTORY}/src/java/"
+ JAVA_FILES "${JAVA_FILES}")
+
+string(REPLACE "src/java/simgrid/msg" "${CMAKE_CURRENT_BINARY_DIR}/classes/simgrid/msg"
JAVA_CLASSES "${JAVA_CLASSES}")
string(REPLACE ".java" ".class;"
JAVA_CLASSES "${JAVA_CLASSES}")
-file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/classes/")
+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}
- DEPENDS ${JAVA_FILES}
+ DEPENDS ${JAVA_FILES} ${CMAKE_CURRENT_BINARY_DIR}/classes/
COMMAND ${JAVA_COMPILE} -d ${CMAKE_CURRENT_BINARY_DIR}/classes/
-cp ${CMAKE_CURRENT_BINARY_DIR}/classes/
${JAVA_FILES}
COMMENT "Compiling java sources of core library..."
)
+
ADD_CUSTOM_COMMAND(
- OUTPUT ${PROJECT_DIRECTORY}/src/simgrid.jar
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar
DEPENDS ${JAVA_CLASSES}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/classes
- COMMAND ${JAVA_ARCHIVE} -cvf ${PROJECT_DIRECTORY}/src/simgrid.jar .
+ COMMAND ${JAVA_ARCHIVE} -cvf ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar .
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 ${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 ${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_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 ${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
)
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 ${PROJECT_DIRECTORY}/src/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/simgrid.jar ${PROJECT_DIRECTORY}/examples/java/suspend/*.java
)