Move IDLC to its own install component
This allows you to express a dependency on it as `find_package(CycloneDDS REQUIRED COMPONENTS idlc)` Also added a warning if CycloneDDS was built with IDLC but IDLC is not requested. Signed-off-by: Dan Rose <dan@digilabs.io>
This commit is contained in:
parent
eeeea486c8
commit
d12b926ff1
4 changed files with 31 additions and 29 deletions
|
@ -21,17 +21,10 @@ set(PACKAGING_MODULE_DIR "${PROJECT_SOURCE_DIR}/cmake/Modules/Packaging")
|
|||
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}")
|
||||
|
||||
# Generates <Package>Config.cmake.
|
||||
if(BUILD_IDLC)
|
||||
configure_package_config_file(
|
||||
"${PACKAGING_MODULE_DIR}/PackageConfig.cmake.in"
|
||||
"${PROJECT_NAME}Config.cmake"
|
||||
INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}")
|
||||
else()
|
||||
configure_package_config_file(
|
||||
"${PACKAGING_MODULE_DIR}/PackageConfigNoIdlc.cmake.in"
|
||||
"${PROJECT_NAME}Config.cmake"
|
||||
INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}")
|
||||
endif()
|
||||
|
||||
# Generates <Package>Version.cmake.
|
||||
write_basic_package_version_file(
|
||||
|
|
|
@ -12,4 +12,27 @@
|
|||
@PACKAGE_INIT@
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/idlc/IdlcGenerate.cmake")
|
||||
option("@PROJECT_NAME@_IDLC_ALWAYS" "Should we include idlc even if the user didn't request the idlc component?" ON)
|
||||
|
||||
set("@PROJECT_NAME@_idlc_FOUND" FALSE)
|
||||
if ("idlc" IN_LIST "@PROJECT_NAME@_FIND_COMPONENTS" OR "@PROJECT_NAME@_IDLC_ALWAYS")
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/idlc/IdlcGenerate.cmake" OPTIONAL RESULT_VARIABLE _IdlcGenerate)
|
||||
if(NOT _IdlcGenerate STREQUAL "NOTFOUND")
|
||||
set("@PROJECT_NAME@_idlc_FOUND" TRUE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if ("${@PROJECT_NAME@_IDLC_ALWAYS}"
|
||||
AND "${@PROJECT_NAME@_idlc_FOUND}"
|
||||
AND (NOT "idlc" IN_LIST "@PROJECT_NAME@_FIND_COMPONENTS")
|
||||
)
|
||||
message(AUTHOR_WARNING "\
|
||||
The IDL Compiler 'idlc' has not been requested but has been built is automatically included. \
|
||||
This will change in a future release. \
|
||||
If you need the idlc compiler, please add idlc to the COMPONENTS or OPTIONAL_COMPONENTS list in \
|
||||
find_package(@PROJECT_NAME@ ...). \
|
||||
If you don't need it, set the @PROJECT_NAME@_IDLC_ALWAYS=OFF to suppress this message .\
|
||||
")
|
||||
endif()
|
||||
|
||||
check_required_components("@PROJECT_NAME@")
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
#
|
||||
# Copyright(c) 2006 to 2018 ADLINK Technology Limited and others
|
||||
#
|
||||
# This program and the accompanying materials are made available under the
|
||||
# terms of the Eclipse Public License v. 2.0 which is available at
|
||||
# http://www.eclipse.org/legal/epl-2.0, or the Eclipse Distribution License
|
||||
# v. 1.0 which is available at
|
||||
# http://www.eclipse.org/org/documents/edl-v10.php.
|
||||
#
|
||||
# SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
|
||||
#
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
|
|
@ -46,16 +46,16 @@ include(cmake/IdlcGenerate.cmake)
|
|||
install(
|
||||
FILES "cmake/IdlcGenerate.cmake"
|
||||
DESTINATION "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/idlc"
|
||||
COMPONENT dev)
|
||||
COMPONENT idlc)
|
||||
|
||||
install(
|
||||
FILES "${IDLC_SCRIPT_IN}"
|
||||
DESTINATION "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/idlc"
|
||||
COMPONENT dev)
|
||||
COMPONENT idlc)
|
||||
|
||||
install(
|
||||
FILES "${IDLC_JAR}"
|
||||
DESTINATION "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/idlc"
|
||||
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
|
||||
COMPONENT dev)
|
||||
COMPONENT idlc)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue