summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2017-04-24 13:35:25 (GMT)
committerKitware Robot <kwrobot@kitware.com>2017-04-24 13:35:29 (GMT)
commit3ade7a306e0d002a6bfc89b20b7b1483643877ea (patch)
tree2555bf1a16c791daff57f68afdd4214dc9e1c4b7 /Modules
parentaaeb01ef9bfa600e072be79792be53186c395a8c (diff)
parent0bee006602f07e26d052ba30541e6ce61a621b63 (diff)
downloadCMake-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.cmake36
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})