CMakeLists.txt 1.3 KB

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