diff options
| author | mharmsen <mharmsen@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-12-07 00:33:26 +0000 |
|---|---|---|
| committer | mharmsen <mharmsen@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-12-07 00:33:26 +0000 |
| commit | dce657795aff27d3a615a145acffa739cf9e676a (patch) | |
| tree | ca6a35cb0e5fa929e87cb03ef9028d68f2cdae2c /pki/cmake/Modules/UseJava.cmake | |
| parent | 3b5729e16fc37dfe12fe9964e467983335d9137c (diff) | |
| download | pki-dce657795aff27d3a615a145acffa739cf9e676a.tar.gz pki-dce657795aff27d3a615a145acffa739cf9e676a.tar.xz pki-dce657795aff27d3a615a145acffa739cf9e676a.zip | |
Bugzilla Bug #643206 - New CMake based build system for Dogtag
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@1607 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki/cmake/Modules/UseJava.cmake')
| -rw-r--r-- | pki/cmake/Modules/UseJava.cmake | 74 |
1 files changed, 58 insertions, 16 deletions
diff --git a/pki/cmake/Modules/UseJava.cmake b/pki/cmake/Modules/UseJava.cmake index e11b2da9..a9699285 100644 --- a/pki/cmake/Modules/UseJava.cmake +++ b/pki/cmake/Modules/UseJava.cmake @@ -26,7 +26,7 @@ # add_jar(foobar foobar.java) # # To add a VERSION to the target output name you can set it using -# CMAKE_JAVA_TARGET_NAME. This will create a jar file with the name +# CMAKE_JAVA_TARGET_VERSION. This will create a jar file with the name # shibboleet-1.0.0.jar and will create a symlink shibboleet.jar pointing # to the jar with the version information. # @@ -39,6 +39,8 @@ # # <target>_INSTALL_FILES The files which should be installed. This # is used by install_jar(). +# <target>_JNI_SYMLINK The JNI symlink which should be installed. +# This is used by install_jni_symlink(). # <target>_JAR_FILE The location of the jar file so that you # can include it. # <target>_CLASS_DIR The directory where the class files can be @@ -50,6 +52,12 @@ # This command installs the TARGET_NAME files to the given DESTINATION. It # should be called in the same scope as add_jar() or it will fail. # +# +# install_symlink(TARGET_NAME DESTINATION) +# +# This command installs the TARGET_NAME symlinks to the given DESTINATION. It +# should be called in the same scope as add_jar() or it will fail. +# #============================================================================= # Copyright 2010 Andreas schneider <asn@redhat.com> # @@ -179,29 +187,49 @@ function(ADD_JAR _TARGET_NAME) endif (_JAVA_COMPILE_FILES) # create the jar file - add_custom_command( - TARGET ${_TARGET_NAME} - COMMAND ${CMAKE_Java_ARCHIVE} - -cf ${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_NAME} - ${_JAVA_RESOURCE_FILES} @java_class_filelist - COMMAND ${CMAKE_COMMAND} - -D_JAVA_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR} - -D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_TARGET_OUTPUT_NAME} - -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK} - -P ${_JAVA_SYMLINK_SCRIPT} - WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH} - COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}" - ) + if (CMAKE_JNI_TARGET) + add_custom_command( + TARGET ${_TARGET_NAME} + COMMAND ${CMAKE_Java_ARCHIVE} + -cf ${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_NAME} + ${_JAVA_RESOURCE_FILES} @java_class_filelist + COMMAND ${CMAKE_COMMAND} + -D_JAVA_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR} + -D_JAVA_TARGET_OUTPUT_NAME=${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_NAME} + -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK} + -P ${_JAVA_SYMLINK_SCRIPT} + WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH} + COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}" + ) + else () + add_custom_command( + TARGET ${_TARGET_NAME} + COMMAND ${CMAKE_Java_ARCHIVE} + -cf ${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_NAME} + ${_JAVA_RESOURCE_FILES} @java_class_filelist + COMMAND ${CMAKE_COMMAND} + -D_JAVA_TARGET_DIR=${CMAKE_CURRENT_BINARY_DIR} + -D_JAVA_TARGET_OUTPUT_NAME=${_JAVA_TARGET_OUTPUT_NAME} + -D_JAVA_TARGET_OUTPUT_LINK=${_JAVA_TARGET_OUTPUT_LINK} + -P ${_JAVA_SYMLINK_SCRIPT} + WORKING_DIRECTORY ${CMAKE_JAVA_CLASS_OUTPUT_PATH} + COMMENT "Creating Java archive ${_JAVA_TARGET_OUTPUT_NAME}" + ) + endif (CMAKE_JNI_TARGET) set(${_TARGET_NAME}_INSTALL_FILES ${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_NAME} PARENT_SCOPE) - if (_JAVA_TARGET_OUTPUT_LINK) + if (CMAKE_JNI_TARGET AND _JAVA_TARGET_OUTPUT_LINK) + set(${_TARGET_NAME}_JNI_SYMLINK + ${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_LINK} + PARENT_SCOPE) + elseif (_JAVA_TARGET_OUTPUT_LINK ) set(${_TARGET_NAME}_INSTALL_FILES ${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_NAME} ${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_LINK} PARENT_SCOPE) - endif (_JAVA_TARGET_OUTPUT_LINK) + endif (CMAKE_JNI_TARGET AND _JAVA_TARGET_OUTPUT_LINK) set(${_TARGET_NAME}_JAR_FILE ${CMAKE_CURRENT_BINARY_DIR}/${_JAVA_TARGET_OUTPUT_NAME} PARENT_SCOPE) set(${_TARGET_NAME}_CLASS_DIR @@ -221,3 +249,17 @@ function(INSTALL_JAR _TARGET_NAME _DESTINATION) message(SEND_ERROR "The target ${_TARGET_NAME} is not known in this scope.") endif (${_TARGET_NAME}_INSTALL_FILES) endfunction(INSTALL_JAR _TARGET_NAME _DESTINATION) + +function(INSTALL_JNI_SYMLINK _TARGET_NAME _DESTINATION) + if (${_TARGET_NAME}_JNI_SYMLINK) + install( + FILES + ${${_TARGET_NAME}_JNI_SYMLINK} + DESTINATION + ${_DESTINATION} + ) + else (${_TARGET_NAME}_JNI_SYMLINK) + message(SEND_ERROR "The target ${_TARGET_NAME} is not known in this scope.") + endif (${_TARGET_NAME}_JNI_SYMLINK) +endfunction(INSTALL_JNI_SYMLINK _TARGET_NAME _DESTINATION) + |
