CMakeLists.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. PROJECT(hello Java)
  2. SET(CMAKE_VERBOSE_MAKEFILE 1)
  3. SET(OLD_CUSTOM_COMMAND_WAY )
  4. message("${hello_SOURCE_DIR} STREQUAL ${hello_BINARY_DIR}")
  5. IF("${hello_SOURCE_DIR}" STREQUAL "${hello_BINARY_DIR}")
  6. SET(OLD_CUSTOM_COMMAND_WAY 1)
  7. ENDIF("${hello_SOURCE_DIR}" STREQUAL "${hello_BINARY_DIR}")
  8. IF(NOT OLD_CUSTOM_COMMAND_WAY)
  9. INCLUDE_DIRECTORIES(${hello_SOURCE_DIR}
  10. ${hello_BINARY_DIR} )
  11. ADD_LIBRARY(hello A.java HelloWorld.java)
  12. ENDIF(NOT OLD_CUSTOM_COMMAND_WAY)
  13. IF(OLD_CUSTOM_COMMAND_WAY)
  14. ADD_CUSTOM_COMMAND(
  15. OUTPUT ${hello_BINARY_DIR}/A.class
  16. MAIN_DEPENDENCY ${hello_SOURCE_DIR}/A.java
  17. COMMAND ${CMAKE_Java_COMPILER} ARGS -classpath . -d ${hello_BINARY_DIR} ${hello_SOURCE_DIR}/A.java)
  18. ADD_CUSTOM_COMMAND(
  19. OUTPUT ${hello_BINARY_DIR}/HelloWorld.class
  20. MAIN_DEPENDENCY ${hello_SOURCE_DIR}/HelloWorld.java
  21. DEPENDS ${hello_BINARY_DIR}/A.class
  22. COMMAND ${CMAKE_Java_COMPILER} ARGS -classpath . -d ${hello_BINARY_DIR} ${hello_SOURCE_DIR}/HelloWorld.java)
  23. ADD_CUSTOM_COMMAND(
  24. OUTPUT ${hello_BINARY_DIR}/foo.jar
  25. DEPENDS ${hello_BINARY_DIR}/A.class ${hello_BINARY_DIR}/HelloWorld.class
  26. COMMAND ${CMAKE_COMMAND}
  27. ARGS -E chdir ${CMAKE_CURRENT_BINARY_DIR}
  28. ${CMAKE_Java_ARCHIVE}
  29. -cvf foo.jar *.class)
  30. ADD_CUSTOM_TARGET(foo.jar ALL
  31. DEPENDS ${hello_BINARY_DIR}/foo.jar)
  32. ENDIF(OLD_CUSTOM_COMMAND_WAY)