CMakeLists.txt 1.03 KB
Newer Older
1
PROJECT(hello Java)
Bill Hoffman's avatar
Bill Hoffman committed
2
SET(CMAKE_VERBOSE_MAKEFILE 1)
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
SET(OLD_CUSTOM_COMMAND_WAY )
IF(NOT OLD_CUSTOM_COMMAND_WAY)
  INCLUDE_DIRECTORIES(${hello_SOURCE_DIR})
  INCLUDE_DIRECTORIES(${hello_BINARY_DIR})
  ADD_LIBRARY(hello A.java HelloWorld.java)
ENDIF(NOT OLD_CUSTOM_COMMAND_WAY)


IF(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 -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
    COMMAND ${CMAKE_Java_COMPILER} ARGS -d ${hello_BINARY_DIR} ${hello_SOURCE_DIR}/HelloWorld.java)
  
  ADD_CUSTOM_TARGET(foo.jar ALL 
    DEPENDS ${hello_BINARY_DIR}/A.class ${hello_BINARY_DIR}/HelloWorld.class)
  
  ADD_CUSTOM_COMMAND( TARGET foo.jar
    PRE_BUILD
    COMMAND ${CMAKE_COMMAND}
    ARGS -E chdir ${CMAKE_CURRENT_BINARY_DIR}
    ${CMAKE_Java_ARCHIVE}
    -cvf foo.jar *.class)
ENDIF(OLD_CUSTOM_COMMAND_WAY)