From eafb897dfd0986f4643c838d9f644410ff00572b Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Wed, 27 Sep 2023 13:22:02 -0400 Subject: [PATCH] reflect: build: use new xo-cmake macros --- CMakeLists.txt | 92 ++++++++++++++++++++------------------ src/reflect/CMakeLists.txt | 34 +++++++------- 2 files changed, 68 insertions(+), 58 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index afa760ec..d2718ef2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,52 +60,58 @@ add_subdirectory(src/reflect) add_subdirectory(utest) # ---------------------------------------------------------------- -# cmake export: +# provide find_package() support + +xo_export_cmake_config(${PROJECT_NAME} ${PROJECT_VERSION} ${PROJECT_NAME}Targets) + +## ---------------------------------------------------------------- +## cmake export: +## +## populate .cmake files in $CMAKE_INSTALL_LIBDIR/cmake/reflect. +## cmake projects that include this directory in $CMAKE_PREFIX_PATH +## can use +## find_package(reflect REQUIRED) +## and +## target_link_libraries(${sometarget} PUBLIC reflect) +## to use the reflect library # -# populate .cmake files in $CMAKE_INSTALL_LIBDIR/cmake/reflect. -# cmake projects that include this directory in $CMAKE_PREFIX_PATH -# can use -# find_package(reflect REQUIRED) -# and -# target_link_libraries(${sometarget} PUBLIC reflect) -# to use the reflect library - -set(XO_PROJECT_CONFIG_VERSION "${XO_PROJECT_NAME}ConfigVersion.cmake") -set(XO_PROJECT_CONFIG "${XO_PROJECT_NAME}Config.cmake") - -include(CMakePackageConfigHelpers) - -# generates build/reflectConfigVersion.cmake -write_basic_package_version_file( - "${PROJECT_BINARY_DIR}/${XO_PROJECT_CONFIG_VERSION}" - VERSION 0.1 - COMPATIBILITY AnyNewerVersion -) - -# generates build/reflectConfig.cmake -configure_package_config_file( - "${PROJECT_SOURCE_DIR}/cmake/${XO_PROJECT_NAME}Config.cmake.in" - "${PROJECT_BINARY_DIR}/${XO_PROJECT_CONFIG}" - INSTALL_DESTINATION lib/cmake/${XO_PROJECT_NAME} -) - -# creates {reflectTargets.cmake, reflectTargets-noconfig.cmake} in $CMAKE_INSTALL_LIBDIR/cmake/reflect/ -# requires -# install(.. EXPORT reflectTargets ..) +#set(XO_PROJECT_CONFIG_VERSION "${XO_PROJECT_NAME}ConfigVersion.cmake") +#set(XO_PROJECT_CONFIG "${XO_PROJECT_NAME}Config.cmake") # -install( - EXPORT ${XO_PROJECT_NAME}Targets - DESTINATION lib/cmake/${XO_PROJECT_NAME} -) - -# creates {reflectConfigVersion.cmake, reflectConfig.cmake} in $CMAKE_INSTALL_LIBDIR/cmake/reflect/ -install( - FILES - "${PROJECT_BINARY_DIR}/${XO_PROJECT_CONFIG_VERSION}" - "${PROJECT_BINARY_DIR}/${XO_PROJECT_CONFIG}" - DESTINATION lib/cmake/${XO_PROJECT_NAME}) +#include(CMakePackageConfigHelpers) +# +## generates build/reflectConfigVersion.cmake +#write_basic_package_version_file( +# "${PROJECT_BINARY_DIR}/${XO_PROJECT_CONFIG_VERSION}" +# VERSION 0.1 +# COMPATIBILITY AnyNewerVersion +#) +# +## generates build/reflectConfig.cmake +#configure_package_config_file( +# "${PROJECT_SOURCE_DIR}/cmake/${XO_PROJECT_NAME}Config.cmake.in" +# "${PROJECT_BINARY_DIR}/${XO_PROJECT_CONFIG}" +# INSTALL_DESTINATION lib/cmake/${XO_PROJECT_NAME} +#) +# +## creates {reflectTargets.cmake, reflectTargets-noconfig.cmake} in $CMAKE_INSTALL_LIBDIR/cmake/reflect/ +## requires +## install(.. EXPORT reflectTargets ..) +## +#install( +# EXPORT ${XO_PROJECT_NAME}Targets +# DESTINATION lib/cmake/${XO_PROJECT_NAME} +#) +# +## creates {reflectConfigVersion.cmake, reflectConfig.cmake} in $CMAKE_INSTALL_LIBDIR/cmake/reflect/ +#install( +# FILES +# "${PROJECT_BINARY_DIR}/${XO_PROJECT_CONFIG_VERSION}" +# "${PROJECT_BINARY_DIR}/${XO_PROJECT_CONFIG}" +# DESTINATION lib/cmake/${XO_PROJECT_NAME}) # ---------------------------------------------------------------- # install .hpp files -install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/reflect/ DESTINATION include/reflect) +xo_install_include_tree() +#install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/reflect/ DESTINATION include/reflect) diff --git a/src/reflect/CMakeLists.txt b/src/reflect/CMakeLists.txt index dd26ec9c..d4b772e4 100644 --- a/src/reflect/CMakeLists.txt +++ b/src/reflect/CMakeLists.txt @@ -16,12 +16,18 @@ set_target_properties(${SELF_LIBRARY_NAME} # #target_compile_options(${SELF_LIBRARY_NAME} PRIVATE -Werror -Wall -Wextra) xo_compile_options(${SELF_LIBRARY_NAME}) -xo_include_options(${SELF_LIBRARY_NAME}) +xo_include_options2(${SELF_LIBRARY_NAME}) xo_install_library(${SELF_LIBRARY_NAME}) # ---------------------------------------------------------------- # dependencies: logutil, ... +#target_include_directories( +# ${SELF_LIBRARY_NAME} PUBLIC +# $ +# $ +#) + #xo_refcnt_dependency(${SELF_LIBRARY_NAME}) #xo_indentlog_dependency(${SELF_LIBRARY_NAME}) @@ -29,21 +35,19 @@ xo_install_library(${SELF_LIBRARY_NAME}) # note: can't use find_package() here, # because find_package() needs to run successfully before # dependency gets installed. -target_include_directories( - ${SELF_LIBRARY_NAME} PUBLIC - $ - $ -) -target_link_libraries(${SELF_LIBRARY_NAME} PUBLIC indentlog) +xo_internal_dependency(${SELF_LIBRARY_NAME} indentlog) -find_package(refcnt CONFIG REQUIRED) -#add_dependencies(${SELF_LIBRARY_NAME} refcnt) -target_include_directories( - ${SELF_LIBRARY_NAME} PUBLIC - $ - $ -) -target_link_libraries(${SELF_LIBRARY_NAME} PUBLIC refcnt) +#target_link_libraries(${SELF_LIBRARY_NAME} PUBLIC indentlog) + +xo_internal_dependency(${SELF_LIBRARY_NAME} refcnt) +#find_package(refcnt CONFIG REQUIRED) +##add_dependencies(${SELF_LIBRARY_NAME} refcnt) +#target_include_directories( +# ${SELF_LIBRARY_NAME} PUBLIC +# $ +# $ +#) +#target_link_libraries(${SELF_LIBRARY_NAME} PUBLIC refcnt) # ---------------------------------------------------------------- # 3rd party dependency: boost: