CMakeLists.txt 1023 B

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