diff options
author | asn <asn@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-12-17 21:15:00 +0000 |
---|---|---|
committer | asn <asn@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-12-17 21:15:00 +0000 |
commit | d0e2c8417526de42f4375d27fb10c13b978783b6 (patch) | |
tree | 872980c7abb68f6d23d1d79643ac0612e37863aa /pki/cmake | |
parent | 1f4914842ce6155891496e8d79f25ff5481a2acd (diff) | |
download | pki-d0e2c8417526de42f4375d27fb10c13b978783b6.tar.gz pki-d0e2c8417526de42f4375d27fb10c13b978783b6.tar.xz pki-d0e2c8417526de42f4375d27fb10c13b978783b6.zip |
cmake: Fixed resources changing which didn't trigger a rebuild.
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@1648 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki/cmake')
-rw-r--r-- | pki/cmake/Modules/UseJava.cmake | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/pki/cmake/Modules/UseJava.cmake b/pki/cmake/Modules/UseJava.cmake index 75dda6a4c..cdac81763 100644 --- a/pki/cmake/Modules/UseJava.cmake +++ b/pki/cmake/Modules/UseJava.cmake @@ -93,25 +93,15 @@ # (To distributed this file outside of CMake, substitute the full # License text for the above reference.) -function(JAVA_COPY_FILE _SRC _DST) - # Removes all path containing .svn or CVS or CMakeLists.txt during the copy - if (NOT ${_SRC} MATCHES ".*\\.svn|CVS|CMakeLists\\.txt.*") - - if (CMAKE_VERBOSE_MAKEFILE) - message(STATUS "Copy file from ${_SRC} to ${_DST}") - endif (CMAKE_VERBOSE_MAKEFILE) - - # Creates directory if necessary - get_filename_component(_PATH ${_DST} PATH) - file(MAKE_DIRECTORY ${_PATH}) - - execute_process( - COMMAND - ${CMAKE_COMMAND} -E copy_if_different ${_SRC} ${_DST} - OUTPUT_QUIET - ) - endif (NOT ${_SRC} MATCHES ".*\\.svn|CVS|CMakeLists\\.txt.*") -endfunction(JAVA_COPY_FILE) +function (__java_copy_file src dest comment) + add_custom_command( + OUTPUT ${dest} + COMMAND cmake -E copy_if_different + ARGS ${src} + ${dest} + DEPENDS ${src} + COMMENT ${comment}) +endfunction (__java_copy_file src dest comment) function(ADD_JAR _TARGET_NAME) set(_JAVA_SOURCE_FILES ${ARGN}) @@ -141,8 +131,6 @@ function(ADD_JAR _TARGET_NAME) set(CMAKE_JAVA_CLASS_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${_TARGET_NAME}.dir") - add_custom_target(${_TARGET_NAME} ALL) - set(_JAVA_TARGET_OUTPUT_NAME "${_TARGET_NAME}.jar") if (CMAKE_JAVA_TARGET_OUTPUT_NAME AND CMAKE_JAVA_TARGET_VERSION) set(_JAVA_TARGET_OUTPUT_NAME "${CMAKE_JAVA_TARGET_OUTPUT_NAME}-${CMAKE_JAVA_TARGET_VERSION}.jar") @@ -168,8 +156,9 @@ function(ADD_JAR _TARGET_NAME) set(_JAVA_CLASS_FILES ${_JAVA_CLASS_FILES} ${_JAVA_CLASS_FILE}) else (_JAVA_EXT MATCHES ".java") - java_copy_file(${CMAKE_CURRENT_SOURCE_DIR}/${_JAVA_SOURCE_FILE} - ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/${_JAVA_SOURCE_FILE}) + __java_copy_file(${CMAKE_CURRENT_SOURCE_DIR}/${_JAVA_SOURCE_FILE} + ${CMAKE_JAVA_CLASS_OUTPUT_PATH}/${_JAVA_SOURCE_FILE} + "Copying ${_JAVA_SOURCE_FILE} to the build directory") list(APPEND _JAVA_RESOURCE_FILES ${_JAVA_SOURCE_FILE}) endif (_JAVA_EXT MATCHES ".java") endforeach(_JAVA_SOURCE_FILE) @@ -191,6 +180,9 @@ function(ADD_JAR _TARGET_NAME) set(_JAVA_SYMLINK_SCRIPT ${CMAKE_ROOT}/Modules/UseJavaSymlinks.cmake) endif (EXISTS ${CMAKE_MODULE_PATH}/UseJavaSymlinks.cmake) + # Add the target and make sure we have the latest resource files. + add_custom_target(${_TARGET_NAME} ALL DEPENDS ${_JAVA_RESOURCE_FILES}) + if (_JAVA_COMPILE_FILES) # Compile the java files and create a list of class files add_custom_command( |