reflect: build: use new xo-cmake macros
This commit is contained in:
parent
ebc70db3e7
commit
eafb897dfd
2 changed files with 69 additions and 59 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
# $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/local/include>
|
||||
# $<INSTALL_INTERFACE:include>
|
||||
#)
|
||||
|
||||
#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
|
||||
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/local/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
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
|
||||
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/local/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
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
|
||||
# $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/local/include>
|
||||
# $<INSTALL_INTERFACE:include>
|
||||
#)
|
||||
#target_link_libraries(${SELF_LIBRARY_NAME} PUBLIC refcnt)
|
||||
|
||||
# ----------------------------------------------------------------
|
||||
# 3rd party dependency: boost:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue