mirror of
https://github.com/mhx/dwarfs.git
synced 2025-08-03 17:56:12 -04:00
chore(ricepp): add install support
This commit is contained in:
parent
8fc589b30b
commit
3aa7b5c950
@ -28,7 +28,12 @@ if(NOT TARGET range-v3)
|
|||||||
GIT_REPOSITORY https://github.com/ericniebler/range-v3
|
GIT_REPOSITORY https://github.com/ericniebler/range-v3
|
||||||
GIT_TAG 0.12.0
|
GIT_TAG 0.12.0
|
||||||
)
|
)
|
||||||
FetchContent_MakeAvailable(range-v3)
|
# FetchContent_MakeAvailable(range-v3)
|
||||||
|
FetchContent_GetProperties(range-v3)
|
||||||
|
if(NOT range-v3_POPULATED)
|
||||||
|
FetchContent_Populate(range-v3)
|
||||||
|
add_subdirectory(${range-v3_SOURCE_DIR} ${range-v3_BINARY_DIR} EXCLUDE_FROM_ALL)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
@ -75,10 +80,61 @@ endforeach()
|
|||||||
|
|
||||||
add_library(ricepp ricepp.cpp ${RICEPP_OBJECTS_CPUSPECIFIC})
|
add_library(ricepp ricepp.cpp ${RICEPP_OBJECTS_CPUSPECIFIC})
|
||||||
target_link_libraries(ricepp PUBLIC range-v3)
|
target_link_libraries(ricepp PUBLIC range-v3)
|
||||||
target_include_directories(ricepp PUBLIC include)
|
target_include_directories(ricepp PUBLIC
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||||
|
$<INSTALL_INTERFACE:include>
|
||||||
|
)
|
||||||
target_compile_features(ricepp PUBLIC cxx_std_20)
|
target_compile_features(ricepp PUBLIC cxx_std_20)
|
||||||
target_compile_definitions(ricepp PRIVATE ${RICEPP_CPU_SUPPORT})
|
target_compile_definitions(ricepp PRIVATE ${RICEPP_CPU_SUPPORT})
|
||||||
|
|
||||||
|
include(GNUInstallDirs)
|
||||||
|
include(CMakePackageConfigHelpers)
|
||||||
|
|
||||||
|
set(CMAKE_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/ricepp CACHE STRING
|
||||||
|
"CMake package config files install location")
|
||||||
|
|
||||||
|
configure_package_config_file(
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/cmake/ricepp-config.cmake.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/ricepp-config.cmake
|
||||||
|
INSTALL_DESTINATION ${CMAKE_INSTALL_DIR}
|
||||||
|
PATH_VARS
|
||||||
|
CMAKE_INSTALL_INCLUDEDIR
|
||||||
|
CMAKE_INSTALL_DIR
|
||||||
|
)
|
||||||
|
|
||||||
|
write_basic_package_version_file(
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/ricepp-config-version.cmake
|
||||||
|
VERSION 0.1.0
|
||||||
|
COMPATIBILITY SameMajorVersion
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
TARGETS ricepp
|
||||||
|
EXPORT ricepp-targets
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
DIRECTORY include/
|
||||||
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||||
|
FILES_MATCHING PATTERN "*.h"
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES ${CMAKE_CURRENT_BINARY_DIR}/ricepp-config.cmake
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ricepp
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
EXPORT ricepp-targets
|
||||||
|
FILE ricepp-targets.cmake
|
||||||
|
NAMESPACE ricepp::
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ricepp
|
||||||
|
)
|
||||||
|
|
||||||
# # TODO: remove/rework
|
# # TODO: remove/rework
|
||||||
# add_executable(ricepp_demo ricepp_demo.cpp)
|
# add_executable(ricepp_demo ricepp_demo.cpp)
|
||||||
# target_link_libraries(ricepp_demo PRIVATE ricepp fmt)
|
# target_link_libraries(ricepp_demo PRIVATE ricepp fmt)
|
||||||
@ -98,7 +154,12 @@ if(WITH_TESTS)
|
|||||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||||
GIT_TAG v1.14.0
|
GIT_TAG v1.14.0
|
||||||
)
|
)
|
||||||
FetchContent_MakeAvailable(googletest)
|
# FetchContent_MakeAvailable(googletest)
|
||||||
|
FetchContent_GetProperties(googletest)
|
||||||
|
if(NOT googletest_POPULATED)
|
||||||
|
FetchContent_Populate(googletest)
|
||||||
|
add_subdirectory(${googletest_SOURCE_DIR} ${googletest_BINARY_DIR} EXCLUDE_FROM_ALL)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
enable_testing()
|
enable_testing()
|
||||||
|
17
ricepp/cmake/ricepp-config.cmake.in
Normal file
17
ricepp/cmake/ricepp-config.cmake.in
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
include(CMakeFindDependencyMacro)
|
||||||
|
|
||||||
|
set_and_check(RICEPP_INCLUDE_DIRS "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
|
||||||
|
set_and_check(RICEPP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
|
||||||
|
set_and_check(RICEPP_CMAKE_DIR "@PACKAGE_CMAKE_INSTALL_DIR@")
|
||||||
|
|
||||||
|
set(RICEPP_PREFIX_DIR "${PACKAGE_PREFIX_DIR}")
|
||||||
|
|
||||||
|
if (NOT TARGET ricepp::ricepp)
|
||||||
|
include("${RICEPP_CMAKE_DIR}/ricepp-targets.cmake")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(RICEPP_LIBRARIES ricepp::ricepp)
|
||||||
|
|
||||||
|
find_dependency(range-v3)
|
Loading…
x
Reference in New Issue
Block a user