2
0
mirror of https://github.com/boostorg/pfr.git synced 2026-01-19 04:22:13 +00:00
Files
pfr/module/CMakeLists.txt
2024-08-15 10:59:07 +03:00

38 lines
1.4 KiB
CMake

# Copyright (c) 2016-2024 Antony Polukhin
#
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
cmake_minimum_required(VERSION 3.28)
function (_add_boost_pfr_module_impl NAME)
add_library(${NAME})
target_compile_features(${NAME} PUBLIC cxx_std_20)
target_sources(${NAME} PUBLIC
FILE_SET modules_public TYPE CXX_MODULES FILES
${CMAKE_CURRENT_LIST_DIR}/pfr.cppm
)
endfunction()
function (add_boost_pfr_module NAME)
_add_boost_pfr_module_impl(${NAME})
target_include_directories(${NAME} PRIVATE ${CMAKE_CURRENT_LIST_DIR}/../include)
_add_boost_pfr_module_impl(${NAME}_migration)
target_include_directories(${NAME}_migration PUBLIC ${CMAKE_CURRENT_LIST_DIR}/../include)
target_compile_definitions(${NAME}_migration PRIVATE BOOST_PFR_ATTACH_TO_GLOBAL_MODULE)
endfunction()
add_boost_pfr_module(boost_pfr_module)
add_library(Boost::pfr_module ALIAS boost_pfr_module)
add_library(Boost::pfr_module_migration ALIAS boost_pfr_module_migration)
if (BUILD_TESTING)
add_executable(boost_pfr_module_usage usage_sample.cpp)
target_link_libraries(boost_pfr_module_usage PRIVATE Boost::pfr_module)
# Make sure that mixing includes and imports is fine for different TU
add_executable(boost_pfr_module_usage_mu usage_test_mu1.cpp usage_test_mu2.cpp)
target_link_libraries(boost_pfr_module_usage_mu PRIVATE Boost::pfr_module_migration)
endif()