diff options
author | Brad King <brad.king@kitware.com> | 2017-04-24 13:35:25 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2017-04-24 13:35:29 (GMT) |
commit | 3ade7a306e0d002a6bfc89b20b7b1483643877ea (patch) | |
tree | 2555bf1a16c791daff57f68afdd4214dc9e1c4b7 /Modules | |
parent | aaeb01ef9bfa600e072be79792be53186c395a8c (diff) | |
parent | 0bee006602f07e26d052ba30541e6ce61a621b63 (diff) | |
download | CMake-3ade7a306e0d002a6bfc89b20b7b1483643877ea.zip CMake-3ade7a306e0d002a6bfc89b20b7b1483643877ea.tar.gz CMake-3ade7a306e0d002a6bfc89b20b7b1483643877ea.tar.bz2 |
Merge topic 'namespace-jar-exports'
0bee0066 Tests: Test namespaces with exported JARs
789c8de3 UseJava: Support namespaced exports
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !729
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/UseJava.cmake | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/Modules/UseJava.cmake b/Modules/UseJava.cmake index 93255ae..8ae3720 100644 --- a/Modules/UseJava.cmake +++ b/Modules/UseJava.cmake @@ -244,21 +244,23 @@ # # :: # -# install_jar_exports(TARGETS jar1 [jar2 ...] -# FILE export_filename -# DESTINATION destination [COMPONENT component]) +# install_jar_exports(TARGETS jars... +# [NAMESPACE <namespace>] +# FILE <filename> +# DESTINATION <dir> [COMPONENT <component>]) # -# This command installs a target export file export_filename for the named jar -# targets to the given DESTINATION. Its function is similar to that of -# install(EXPORTS). +# This command installs a target export file ``<filename>`` for the named jar +# targets to the given ``DESTINATION``. Its function is similar to that of +# :command:`install(EXPORTS ...)`. # # :: # -# export_jars(TARGETS jar1 [jar2 ...] -# FILE export_filename) +# export_jars(TARGETS jars... +# [NAMESPACE <namespace>] +# FILE <filename>) # -# This command writes a target export file export_filename for the named jar -# targets. Its function is similar to that of export(). +# This command writes a target export file ``<filename>`` for the named jar +# targets. Its function is similar to that of :command:`export(...)`. # # :: # @@ -424,10 +426,12 @@ endfunction() function(__java_export_jar VAR TARGET PATH) get_target_property(_jarpath ${TARGET} JAR_FILE) get_filename_component(_jarname ${_jarpath} NAME) + set(_target "${_jar_NAMESPACE}${TARGET}") __java_lcat(${VAR} - "# Create imported target ${TARGET}" - "add_custom_target(${TARGET})" - "set_target_properties(${TARGET} PROPERTIES" + "# Create imported target ${_target}" + "add_library(${_target} IMPORTED STATIC)" + "set_target_properties(${_target} PROPERTIES" + " IMPORTED_LOCATION \"${PATH}/${_jarname}\"" " JAR_FILE \"${PATH}/${_jarname}\")" "" ) @@ -1341,7 +1345,7 @@ function(export_jars) # Parse and validate arguments cmake_parse_arguments(_export_jars "" - "FILE" + "FILE;NAMESPACE" "TARGETS" ${ARGN} ) @@ -1351,6 +1355,7 @@ function(export_jars) if (NOT _export_jars_TARGETS) message(SEND_ERROR "export_jars: TARGETS must be specified.") endif() + set(_jar_NAMESPACE "${_export_jars_NAMESPACE}") # Set content of generated exports file string(REPLACE ";" " " __targets__ "${_export_jars_TARGETS}") @@ -1373,7 +1378,7 @@ function(install_jar_exports) # Parse and validate arguments cmake_parse_arguments(_install_jar_exports "" - "FILE;DESTINATION;COMPONENT" + "FILE;DESTINATION;COMPONENT;NAMESPACE" "TARGETS" ${ARGN} ) @@ -1386,6 +1391,7 @@ function(install_jar_exports) if (NOT _install_jar_exports_TARGETS) message(SEND_ERROR "install_jar_exports: TARGETS must be specified.") endif() + set(_jar_NAMESPACE "${_install_jar_exports_NAMESPACE}") if (_install_jar_exports_COMPONENT) set (_COMPONENT COMPONENT ${_install_jar_exports_COMPONENT}) |