OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I686LINUX / util / I686LINUX / share / CMake / Modules / CMakeJavaCompiler.cmake.in
1 SET(CMAKE_JAVA_COMPILER "@CMAKE_JAVA_COMPILER@")
2 SET(CMAKE_JAVA_RUNTIME  "@CMAKE_JAVA_RUNTIME@")
3 SET(CMAKE_JAVA_ARCHIVE  "@CMAKE_JAVA_ARCHIVE@")
4 SET(CMAKE_JAVA_COMPILER_LOADED 1)
5 SET(CMAKE_JAVA_RUNTIME_LOADED 1)
6 SET(CMAKE_JAVA_ARCHIVE_LOADED 1)
7
8 MACRO(ADD_JAVA_LIBRARY LIBRARYNAME SOURCES)
9   IF(CMAKE_JAVA_COMPILER AND CMAKE_JAVA_ARCHIVE)
10     SET(CMAKE_JAVA_INCLUDE_PATH ${CMAKE_JAVA_INCLUDE_PATH}
11                           ${CMAKE_CURRENT_SOURCE_DIR} 
12                           ${CMAKE_CURRENT_BINARY_DIR}
13                           ${LIBRARY_OUTPUT_PATH})
14     SET(CMAKE_JAVA_INCLUDE_PATH_TOTAL "")
15
16     FOREACH(DIR ${CMAKE_JAVA_INCLUDE_PATH})
17        SET(CMAKE_JAVA_INCLUDE_PATH_TOTAL "${CMAKE_JAVA_INCLUDE_PATH_TOTAL}:${DIR}")
18     ENDFOREACH(DIR)
19     IF(WIN32)
20       STRING(REGEX REPLACE "/" "\\\\" CMAKE_JAVA_INCLUDE_PATH_TOTAL 
21              ${CMAKE_JAVA_INCLUDE_PATH_TOTAL})
22       STRING(REGEX REPLACE "/" "\\\\" CMAKE_JAVA_CLASS_OUTPUT_PATH
23              ${CMAKE_CURRENT_BINARY_DIR})
24       STRING(REGEX REPLACE ":([^\\/])" "\\\\;\\1" CMAKE_JAVA_INCLUDE_PATH_TOTAL
25              ${CMAKE_JAVA_INCLUDE_PATH_TOTAL})
26     ELSE(WIN32)
27       SET(CMAKE_JAVA_CLASS_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
28     ENDIF(WIN32)
29
30     ADD_CUSTOM_TARGET(${LIBRARYNAME}_target ALL)
31
32     SET(CMAKE_JAVA_ALL_CLASS_FILES "")
33     FOREACH(SOURCE ${SOURCES})
34       GET_FILENAME_COMPONENT(CLASS_FILE ${SOURCE} NAME_WE)
35       ADD_CUSTOM_COMMAND(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE}
36                          COMMAND ${CMAKE_JAVA_COMPILER}
37                          ARGS ${CMAKE_JAVA_COMPILE_FLAGS} 
38                               -classpath ${CMAKE_JAVA_INCLUDE_PATH_TOTAL} 
39                               ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE}
40                               -d ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/
41                          TARGET ${LIBRARYNAME}_target
42                          OUTPUTS ${CLASS_FILE}.class
43                          COMMENT "Java File" )
44       SET(CMAKE_JAVA_ALL_CLASS_FILES ${CMAKE_JAVA_ALL_CLASS_FILES} ${CLASS_FILE}.class)
45     ENDFOREACH(SOURCE)
46     IF(LIBRARY_OUTPUT_PATH)
47       SET(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH}) 
48     ELSE(LIBRARY_OUTPUT_PATH)
49       SET(CMAKE_JAVA_LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR})
50     ENDIF(LIBRARY_OUTPUT_PATH)
51     ADD_CUSTOM_COMMAND(SOURCE ${CMAKE_JAVA_ALL_CLASS_FILES}
52                        COMMAND ${CMAKE_COMMAND}
53                        ARGS -E chdir ${CMAKE_CURRENT_BINARY_DIR}
54                             ${CMAKE_JAVA_ARCHIVE} 
55                             -cvf ${CMAKE_JAVA_LIBRARY_OUTPUT_PATH}/${LIBRARYNAME}.jar *.class
56                        TARGET ${LIBRARYNAME}_target
57                        DEPENDS ${CMAKE_JAVA_ALL_CLASS_FILES}
58                        OUTPUTS ${CMAKE_JAVA_LIBRARY_OUTPUT_PATH}/${LIBRARYNAME}.jar
59                        COMMENT "Java Archive")
60     ADD_CUSTOM_COMMAND(SOURCE ${LIBRARYNAME}_target
61                        TARGET ${LIBRARYNAME}_target
62                        DEPENDS ${CMAKE_JAVA_LIBRARY_OUTPUT_PATH}/${LIBRARYNAME}.jar)
63   ELSE(CMAKE_JAVA_COMPILER AND CMAKE_JAVA_ARCHIVE)
64     MESSAGE(SEND_ERROR "Java compiler and/or Java archiver not found")
65   ENDIF(CMAKE_JAVA_COMPILER AND CMAKE_JAVA_ARCHIVE)
66 ENDMACRO(ADD_JAVA_LIBRARY LIBRARYNAME SOURCES)