poaflocParser Of Arguments For Lines Of Commands |
git clone git://git.dimitrijedobrota.com/poafloc.git |
Log | Files | Refs | README | LICENSE | HACKING | CONTRIBUTING | CODE_OF_CONDUCT | BUILDING | |
commit | f35303ec28b50839c56b8aac953e95b18379b610 |
parent | 8e1b3a667bf03b1815ca20142771134a66c25cae |
author | Dimitrije Dobrota <mail@dimitrijedobrota.com> |
date | Wed, 12 Jun 2024 15:10:02 +0200 |
Export targets for other CMake projects to use
Diffstat:M | CMakeLists.txt | | | ++++++++++++++++++++++++++++++++++++++-- |
A | argsConfig.cmake.in | | | ++++++ |
M | src/CMakeLists.txt | | | +- |
3 files changed, 45 insertions(+), 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
@@ -31,14 +31,15 @@ set(INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Installation directory fo
set(INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Installation directory for header files")
if(WIN32 AND NOT CYGWIN)
set(DEF_INSTALL_CMAKEDIR CMake)
else()
set(DEF_INSTALL_CMAKEDIR share/cmake/${PROJECT_NAME})
endif()
set(INSTALL_CMAKEDIR ${CMAKE_INSTALL_CMAKEDIR} CACHE PATH "Installation directory for CMake files")
set(INSTALL_CMAKEDIR ${DEF_INSTALL_CMAKEDIR} CACHE PATH "Installation directory for CMake files")
message(STATUS "Build type set to ${CMAKE_BUILD_TYPE}")
message(STATUS "Project will be installed to ${CMAKE_INSTALL_PREFIX}")
foreach(p LIB BIN INCLUDE CMAKE)
file(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${ISNTALL_${p}DIR} _path)
file(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${INSTALL_${p}DIR} _path)
message(STATUS "installing ${p} components to ${_path}")
unset(_path)
endforeach()
@@ -49,6 +50,8 @@ add_subdirectory(demo)
install(
TARGETS
args
EXPORT
argsTargets
ARCHIVE
DESTINATION ${INSTALL_LIBDIR}
COMPONENT lib
@@ -62,3 +65,36 @@ install(
DESTINATION ${INSTALL_INCLUDEDIR}/args
COMPONENT dev
)
install(
EXPORT
argsTargets
NAMESPACE
"args::"
DESTINATION
${INSTALL_CMAKEDIR}
COMPONENT
dev
)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/argsConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion
)
configure_package_config_file(
${PROJECT_SOURCE_DIR}/argsConfig.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/argsConfig.cmake
INSTALL_DESTINATION ${INSTALL_CMAKEDIR}
)
install(
FILES
${CMAKE_CURRENT_BINARY_DIR}/argsConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/argsConfigVersion.cmake
DESTINATION
${INSTALL_CMAKEDIR}
)
diff --git a/argsConfig.cmake.in b/argsConfig.cmake.in
@@ -0,0 +1,6 @@
@PACKAGE_INIT@
include("${CMAKE_CURRENT_LIST_DIR}/argsTargets.cmake")
check_required_components(
"args"
)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
@@ -1,5 +1,5 @@
add_library(args STATIC args.cpp help.cpp trie.cpp c_bindings.cpp)
target_include_directories(args PUBLIC ../include)
target_include_directories(args PRIVATE ../include)
target_compile_definitions(args PRIVATE WITH_C_BINDINGS)
set_target_properties(args PROPERTIES LINKER_LANGUAGE CXX)