Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Java package names should not be uppercased
[simgrid.git] / teshsuite / java / CMakeLists.txt
index 1e0ef76..e782127 100644 (file)
@@ -1,10 +1,32 @@
-set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}")
-
-set(xml_files
-  ${xml_files}
-  PARENT_SCOPE
-  )
-set(txt_files
-  ${txt_files}
-  PARENT_SCOPE
-  )
+set(semaphoreGC_files  SemaphoreGC)
+set(sleepHostOff_files SleepHostOff)
+
+foreach(example semaphoreGC sleepHostOff)
+  foreach (filename ${${example}_files} )
+    set(sources "${${example}_sources}" "${CMAKE_CURRENT_SOURCE_DIR}/${example}/${filename}.java")
+  endforeach()
+
+  set(tesh_files   ${tesh_files}   ${CMAKE_CURRENT_SOURCE_DIR}/${example}/${example}.tesh)
+
+  if(enable_java)
+    add_custom_command(
+      COMMENT "Building ${example}..."
+      OUTPUT  ${example}_compiled
+      DEPENDS ${sources} simgrid-java_jar ${SIMGRID_JAR}
+      COMMAND ${JAVA_COMPILE} -classpath ${SIMGRID_JAR} -d ${CMAKE_CURRENT_BINARY_DIR} ${sources}
+      COMMAND ${CMAKE_COMMAND} -E remove ${example}/${example}_compiled
+      COMMAND ${CMAKE_COMMAND} -E touch ${example}/${example}_compiled
+    )
+    add_custom_target(${example} ALL DEPENDS ${example}_compiled)
+    set_target_properties(${example}  PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${example})
+  endif()
+  set(examples_src ${examples_src} ${sources})
+endforeach()
+
+set(examples_src ${examples_src} ${sources}                                                    PARENT_SCOPE)
+set(tesh_files   ${tesh_files}                                                                 PARENT_SCOPE)
+
+if(enable_java)
+  ADD_TESH(tesh-java-semaphoreGC  --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/teshsuite/java/semaphoreGC  ${CMAKE_HOME_DIRECTORY}/teshsuite/java/semaphoreGC/SemaphoreGC.tesh)
+  ADD_TESH(tesh-java-sleepHostOff --setenv srcdir=${CMAKE_HOME_DIRECTORY}/examples/platforms --setenv LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib --setenv classpath=${TESH_CLASSPATH} --cd ${CMAKE_BINARY_DIR}/teshsuite/java/sleepHostOff ${CMAKE_HOME_DIRECTORY}/teshsuite/java/sleepHostOff/SleepHostOff.tesh)
+endif()