Skip to content

Commit e2ed17f

Browse files
committed
unify cmake install functions and dynamically set component dependencies based on target library links
1 parent f987c9c commit e2ed17f

29 files changed

+842
-907
lines changed

CMakeLists.txt

Lines changed: 10 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,8 @@ if(prometheus-cpp_FOUND)
841841
endif()
842842
message(STATUS "---------------------------------------------")
843843

844+
include("${PROJECT_SOURCE_DIR}/cmake/otel-install-functions.cmake")
845+
844846
include(CMakePackageConfigHelpers)
845847

846848
if(DEFINED OPENTELEMETRY_BUILD_DLL)
@@ -914,39 +916,14 @@ include(cmake/opentelemetry-build-external-component.cmake)
914916
include(cmake/patch-imported-config.cmake)
915917

916918
if(OPENTELEMETRY_INSTALL)
917-
# Export cmake config and support find_packages(opentelemetry-cpp CONFIG)
918-
# Write config file for find_packages(opentelemetry-cpp CONFIG)
919-
set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}")
920-
configure_package_config_file(
921-
"${CMAKE_CURRENT_LIST_DIR}/cmake/templates/opentelemetry-cpp-config.cmake.in"
922-
"${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}/${PROJECT_NAME}-config.cmake"
923-
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
924-
PATH_VARS OPENTELEMETRY_ABI_VERSION_NO OPENTELEMETRY_VERSION PROJECT_NAME
925-
INCLUDE_INSTALL_DIR CMAKE_INSTALL_LIBDIR)
926-
927-
# Write version file for find_packages(opentelemetry-cpp CONFIG)
928-
write_basic_package_version_file(
929-
"${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}/${PROJECT_NAME}-config-version.cmake"
930-
VERSION ${OPENTELEMETRY_VERSION}
931-
COMPATIBILITY ExactVersion)
932-
933-
# Write the "BUILT_WITH_<dependency" flags for use in the
934-
# opentelemetry-cpp-config.cmake
935-
configure_file(
936-
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/templates/thirdparty-built-with-flags.cmake.in"
937-
"${CMAKE_CURRENT_BINARY_DIR}/thirdparty-built-with-flags.cmake"
938-
@ONLY)
939-
940-
install(
941-
FILES
942-
"${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}/${PROJECT_NAME}-config.cmake"
943-
"${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}/${PROJECT_NAME}-config-version.cmake"
944-
"${CMAKE_CURRENT_BINARY_DIR}/thirdparty-built-with-flags.cmake"
945-
"${CMAKE_CURRENT_LIST_DIR}/cmake/component-definitions.cmake"
946-
"${CMAKE_CURRENT_LIST_DIR}/cmake/thirdparty-dependency-definitions.cmake"
947-
"${CMAKE_CURRENT_LIST_DIR}/cmake/find-package-support-functions.cmake"
948-
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
949-
COMPONENT cmake-config)
919+
# Install the cmake config and version files
920+
otel_install_cmake_config()
921+
922+
# Install the components and associated files
923+
otel_install_components()
924+
925+
# Install the thirdparty dependency definition file
926+
otel_install_thirdparty_definitions()
950927

951928
if(BUILD_PACKAGE)
952929
include(cmake/package.cmake)

api/CMakeLists.txt

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,20 @@ target_include_directories(
99

1010
set_target_properties(opentelemetry_api PROPERTIES EXPORT_NAME api)
1111

12-
if(OPENTELEMETRY_INSTALL)
13-
install(
14-
TARGETS opentelemetry_api
15-
EXPORT "${PROJECT_NAME}-api-target"
16-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
17-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
18-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT api)
19-
20-
install(
21-
DIRECTORY include/opentelemetry
22-
DESTINATION include
23-
COMPONENT api
24-
FILES_MATCHING
25-
PATTERN "*.h")
26-
27-
install(
28-
EXPORT "${PROJECT_NAME}-api-target"
29-
FILE "${PROJECT_NAME}-api-target.cmake"
30-
NAMESPACE "${PROJECT_NAME}::"
31-
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
32-
COMPONENT api)
12+
otel_add_component(
13+
COMPONENT
14+
api
15+
TARGETS
16+
opentelemetry_api
17+
FILES_DIRECTORY
18+
"include/opentelemetry"
19+
FILES_DESTINATION
20+
"include"
21+
FILES_MATCHING
22+
PATTERN
23+
"*.h")
3324

25+
if(OPENTELEMETRY_INSTALL)
3426
unset(TARGET_DEPS)
3527
endif()
3628

cmake/component-definitions.cmake

Lines changed: 0 additions & 221 deletions
This file was deleted.

0 commit comments

Comments
 (0)