Merge 80bdf9342f into 531c00b96f
This commit is contained in:
commit
f5802bc1ab
@ -66,17 +66,26 @@ if(CXXOPTS_USE_UNICODE_HELP)
|
||||
target_compile_definitions(cxxopts INTERFACE CXXOPTS_USE_UNICODE)
|
||||
endif()
|
||||
|
||||
target_include_directories(cxxopts INTERFACE
|
||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
set(PROJECT_PREFIX ${PROJECT_NAME}-${${PROJECT_NAME}_VERSION})
|
||||
|
||||
target_include_directories(cxxopts
|
||||
INTERFACE
|
||||
$<BUILD_INTERFACE:${${PROJECT_NAME}_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include/${PROJECT_PREFIX}>
|
||||
)
|
||||
|
||||
set(install_runtime_dir ${CMAKE_INSTALL_BINDIR})
|
||||
set(install_config_dir ${CMAKE_INSTALL_LIBDIR}/${PROJECT_PREFIX}/cmake)
|
||||
set(install_library_dir ${CMAKE_INSTALL_LIBDIR}/${PROJECT_PREFIX}/${CMAKE_BUILD_TYPE})
|
||||
set(install_archive_dir ${CMAKE_INSTALL_LIBDIR}/${PROJECT_PREFIX}/${CMAKE_BUILD_TYPE}/static)
|
||||
set(install_include_dir ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_PREFIX}/${PROJECT_NAME})
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
set(CXXOPTS_CMAKE_DIR "lib/cmake/cxxopts" CACHE STRING
|
||||
"Installation directory for cmake files, relative to ${CMAKE_INSTALL_PREFIX}.")
|
||||
set(version_config "${PROJECT_BINARY_DIR}/cxxopts-config-version.cmake")
|
||||
set(project_config "${PROJECT_BINARY_DIR}/cxxopts-config.cmake")
|
||||
set(targets_export_name cxxopts-targets)
|
||||
set(version_config "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake")
|
||||
set(project_config "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake")
|
||||
set(targets_export_name ${PROJECT_NAME}-targets)
|
||||
|
||||
# Generate the version, config and target files into the build directory.
|
||||
write_basic_package_version_file(
|
||||
@ -84,22 +93,40 @@ write_basic_package_version_file(
|
||||
VERSION ${VERSION}
|
||||
COMPATIBILITY AnyNewerVersion)
|
||||
configure_package_config_file(
|
||||
${PROJECT_SOURCE_DIR}/cxxopts-config.cmake.in
|
||||
${project_config}
|
||||
INSTALL_DESTINATION ${CXXOPTS_CMAKE_DIR})
|
||||
export(TARGETS cxxopts NAMESPACE cxxopts::
|
||||
FILE ${PROJECT_BINARY_DIR}/${targets_export_name}.cmake)
|
||||
${PROJECT_NAME}-config.cmake.in
|
||||
${project_config}
|
||||
INSTALL_DESTINATION ${install_config_dir})
|
||||
|
||||
install(TARGETS ${PROJECT_NAME}
|
||||
EXPORT ${PROJECT_NAME}-targets
|
||||
RUNTIME DESTINATION ${install_runtime_dir}
|
||||
LIBRARY DESTINATION ${install_library_dir}
|
||||
ARCHIVE DESTINATION ${install_archive_dir})
|
||||
|
||||
install(EXPORT ${PROJECT_NAME}-targets
|
||||
FILE ${PROJECT_NAME}-targets.cmake
|
||||
NAMESPACE ${PROJECT_NAME}::
|
||||
DESTINATION ${install_config_dir})
|
||||
|
||||
export(EXPORT ${PROJECT_NAME}-targets
|
||||
FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-targets.cmake
|
||||
NAMESPACE ${PROJECT_NAME}::)
|
||||
|
||||
export(PACKAGE ${PROJECT_NAME})
|
||||
|
||||
# Install version, config and target files.
|
||||
install(
|
||||
FILES ${project_config} ${version_config}
|
||||
DESTINATION ${CXXOPTS_CMAKE_DIR})
|
||||
install(EXPORT ${targets_export_name} DESTINATION ${CXXOPTS_CMAKE_DIR}
|
||||
install(
|
||||
EXPORT ${targets_export_name}
|
||||
DESTINATION ${CXXOPTS_CMAKE_DIR}
|
||||
NAMESPACE cxxopts::)
|
||||
|
||||
# Install the header file and export the target
|
||||
install(TARGETS cxxopts EXPORT ${targets_export_name} DESTINATION lib)
|
||||
install(FILES ${PROJECT_SOURCE_DIR}/include/cxxopts.hpp DESTINATION include)
|
||||
# Install the header file
|
||||
install(
|
||||
FILES ${PROJECT_SOURCE_DIR}/include/cxxopts.hpp
|
||||
DESTINATION ${install_include_dir})
|
||||
|
||||
add_subdirectory(src)
|
||||
add_subdirectory(test)
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
@PACKAGE_INIT@
|
||||
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake)
|
||||
if(NOT TARGET cxxopts::cxxopts)
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/@targets_export_name@.cmake)
|
||||
endif()
|
||||
check_required_components(cxxopts)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user