| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- cmake_minimum_required (VERSION 2.6)
- PROJECT(hello Java)
- SET(CMAKE_VERBOSE_MAKEFILE 1)
-
- IF("${hello_SOURCE_DIR}" STREQUAL "${hello_BINARY_DIR}")
- MESSAGE("In Source, building Java using ADD_CUSTOM_COMMAND()")
- SET(OLD_CUSTOM_COMMAND_WAY 1)
- ELSE("${hello_SOURCE_DIR}" STREQUAL "${hello_BINARY_DIR}")
- MESSAGE("Out of source, using built-in Java support")
- SET(OLD_CUSTOM_COMMAND_WAY )
- ENDIF("${hello_SOURCE_DIR}" STREQUAL "${hello_BINARY_DIR}")
- IF(NOT OLD_CUSTOM_COMMAND_WAY)
- INCLUDE_DIRECTORIES(${hello_SOURCE_DIR}
- ${hello_BINARY_DIR} )
- ADD_LIBRARY(hello A.java HelloWorld.java)
- ELSE(NOT OLD_CUSTOM_COMMAND_WAY)
- ADD_CUSTOM_COMMAND(
- OUTPUT ${hello_BINARY_DIR}/A.class
- MAIN_DEPENDENCY ${hello_SOURCE_DIR}/A.java
- COMMAND ${CMAKE_Java_COMPILER} ARGS -classpath . -d ${hello_BINARY_DIR} ${hello_SOURCE_DIR}/A.java)
- ADD_CUSTOM_COMMAND(
- OUTPUT ${hello_BINARY_DIR}/HelloWorld.class
- MAIN_DEPENDENCY ${hello_SOURCE_DIR}/HelloWorld.java
- DEPENDS ${hello_BINARY_DIR}/A.class
- COMMAND ${CMAKE_Java_COMPILER} ARGS -classpath . -d ${hello_BINARY_DIR} ${hello_SOURCE_DIR}/HelloWorld.java)
- ADD_CUSTOM_COMMAND(
- OUTPUT ${hello_BINARY_DIR}/hello.jar
- DEPENDS ${hello_BINARY_DIR}/A.class ${hello_BINARY_DIR}/HelloWorld.class
- COMMAND ${CMAKE_COMMAND}
- ARGS -E chdir ${CMAKE_CURRENT_BINARY_DIR}
- ${CMAKE_Java_ARCHIVE}
- -cvf hello.jar *.class)
-
- ADD_CUSTOM_TARGET(hello_jar ALL
- DEPENDS ${hello_BINARY_DIR}/hello.jar)
- ENDIF(NOT OLD_CUSTOM_COMMAND_WAY)
|