CMakeLists.txt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  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 -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. COMMAND ${CMAKE_Java_COMPILER} ARGS -d ${hello_BINARY_DIR} ${hello_SOURCE_DIR}/HelloWorld.java)
  22. ADD_CUSTOM_TARGET(foo.jar ALL
  23. DEPENDS ${hello_BINARY_DIR}/A.class ${hello_BINARY_DIR}/HelloWorld.class)
  24. ADD_CUSTOM_COMMAND( TARGET foo.jar
  25. PRE_BUILD
  26. COMMAND ${CMAKE_COMMAND}
  27. ARGS -E chdir ${CMAKE_CURRENT_BINARY_DIR}
  28. ${CMAKE_Java_ARCHIVE}
  29. -cvf foo.jar *.class)
  30. ENDIF(OLD_CUSTOM_COMMAND_WAY)