mirror of
https://github.com/reactos/CMake.git
synced 2025-02-17 18:17:57 +00:00
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
This commit is contained in:
commit
3ade7a306e
@ -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})
|
||||
|
@ -7,4 +7,7 @@ find_package(Java COMPONENTS Development)
|
||||
include(UseJava)
|
||||
|
||||
add_jar(${PROJECT_NAME} Foo.java)
|
||||
export_jars(TARGETS ${PROJECT_NAME} FILE JavaBuildExportTestConfig.cmake)
|
||||
export_jars(
|
||||
TARGETS ${PROJECT_NAME}
|
||||
NAMESPACE foo::
|
||||
FILE JavaBuildExportTestConfig.cmake)
|
||||
|
@ -11,4 +11,4 @@ find_package(JavaInstallExportTest REQUIRED)
|
||||
|
||||
add_jar(${PROJECT_NAME}
|
||||
SOURCES Import.java
|
||||
INCLUDE_JARS foo bar)
|
||||
INCLUDE_JARS foo::foo bar::bar)
|
||||
|
@ -10,5 +10,6 @@ add_jar(${PROJECT_NAME} Bar.java)
|
||||
install_jar(${PROJECT_NAME} DESTINATION share/java)
|
||||
install_jar_exports(
|
||||
TARGETS ${PROJECT_NAME}
|
||||
NAMESPACE bar::
|
||||
FILE JavaInstallExportTestConfig.cmake
|
||||
DESTINATION share/cmake)
|
||||
|
Loading…
x
Reference in New Issue
Block a user