feat: update build system to v4

This commit is contained in:
ToruNiina
2024-06-15 19:14:44 +09:00
parent c47ff10a64
commit 3f9e3ce5d2
4 changed files with 381 additions and 80 deletions

146
src/CMakeLists.txt Normal file
View File

@@ -0,0 +1,146 @@
set(TOML11_FWD_HEADERS
${PROJECT_SOURCE_DIR}/include/toml11/fwd/color_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/comments_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/datetime_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/error_info_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/format_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/literal_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/location_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/region_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/scanner_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/source_location_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/syntax_fwd.hpp
${PROJECT_SOURCE_DIR}/include/toml11/fwd/value_t_fwd.hpp
)
set(TOML11_IMPL_HEADERS
${PROJECT_SOURCE_DIR}/include/toml11/impl/color_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/comments_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/datetime_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/error_info_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/format_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/literal_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/location_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/region_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/scanner_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/source_location_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/syntax_impl.hpp
${PROJECT_SOURCE_DIR}/include/toml11/impl/value_t_impl.hpp
)
set(TOML11_MAIN_HEADERS
${PROJECT_SOURCE_DIR}/include/toml11/color.hpp
${PROJECT_SOURCE_DIR}/include/toml11/comments.hpp
${PROJECT_SOURCE_DIR}/include/toml11/compat.hpp
${PROJECT_SOURCE_DIR}/include/toml11/context.hpp
${PROJECT_SOURCE_DIR}/include/toml11/conversion.hpp
${PROJECT_SOURCE_DIR}/include/toml11/datetime.hpp
${PROJECT_SOURCE_DIR}/include/toml11/error_info.hpp
${PROJECT_SOURCE_DIR}/include/toml11/exception.hpp
${PROJECT_SOURCE_DIR}/include/toml11/find.hpp
${PROJECT_SOURCE_DIR}/include/toml11/format.hpp
${PROJECT_SOURCE_DIR}/include/toml11/from.hpp
${PROJECT_SOURCE_DIR}/include/toml11/get.hpp
${PROJECT_SOURCE_DIR}/include/toml11/into.hpp
${PROJECT_SOURCE_DIR}/include/toml11/literal.hpp
${PROJECT_SOURCE_DIR}/include/toml11/location.hpp
${PROJECT_SOURCE_DIR}/include/toml11/ordered_map.hpp
${PROJECT_SOURCE_DIR}/include/toml11/parser.hpp
${PROJECT_SOURCE_DIR}/include/toml11/region.hpp
${PROJECT_SOURCE_DIR}/include/toml11/result.hpp
${PROJECT_SOURCE_DIR}/include/toml11/scanner.hpp
${PROJECT_SOURCE_DIR}/include/toml11/serializer.hpp
${PROJECT_SOURCE_DIR}/include/toml11/skip.hpp
${PROJECT_SOURCE_DIR}/include/toml11/source_location.hpp
${PROJECT_SOURCE_DIR}/include/toml11/spec.hpp
${PROJECT_SOURCE_DIR}/include/toml11/storage.hpp
${PROJECT_SOURCE_DIR}/include/toml11/syntax.hpp
${PROJECT_SOURCE_DIR}/include/toml11/traits.hpp
${PROJECT_SOURCE_DIR}/include/toml11/types.hpp
${PROJECT_SOURCE_DIR}/include/toml11/utility.hpp
${PROJECT_SOURCE_DIR}/include/toml11/value.hpp
${PROJECT_SOURCE_DIR}/include/toml11/value_t.hpp
${PROJECT_SOURCE_DIR}/include/toml11/version.hpp
${PROJECT_SOURCE_DIR}/include/toml11/visit.hpp
)
set(TOML11_ROOT_HEADER
${PROJECT_SOURCE_DIR}/include/toml.hpp
)
if(TOML11_PRECOMPILE)
add_library(toml11
${TOML11_FWD_HEADERS}
${TOML11_IMPL_HEADERS}
${TOML11_MAIN_HEADERS}
${TOML11_ROOT_HEADER}
color.cpp
context.cpp
comments.cpp
datetime.cpp
error_info.cpp
format.cpp
literal.cpp
location.cpp
parser.cpp
region.cpp
scanner.cpp
serializer.cpp
skip.cpp
source_location.cpp
syntax.cpp
types.cpp
value_t.cpp
)
target_compile_definitions(toml11 PUBLIC -DTOML11_COMPILE_SOURCES)
target_include_directories(toml11 PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
else()
add_library(toml11 INTERFACE)
target_include_directories(toml11 INTERFACE
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)
endif()
if(TOML11_INSTALL)
include(CMakePackageConfigHelpers)
write_basic_package_version_file(${TOML11_CONFIG_VERSION}
VERSION ${toml11_VERSION}
COMPATIBILITY SameMajorVersion
)
configure_package_config_file(
${PROJECT_SOURCE_DIR}/cmake/toml11Config.cmake.in
${TOML11_CONFIG}
INSTALL_DESTINATION ${TOML11_INSTALL_CMAKE_DIR}
PATH_VARS TOML11_INSTALL_CMAKE_DIR TOML11_INSTALL_INCLUDE_DIR
)
install(FILES ${TOML11_CONFIG} ${TOML11_CONFIG_VERSION}
DESTINATION ${TOML11_INSTALL_CMAKE_DIR})
install(FILES ${TOML11_ROOT_HEADER}
DESTINATION ${TOML11_INSTALL_INCLUDE_DIR}
)
install(FILES ${TOML11_MAIN_HEADERS}
DESTINATION ${TOML11_INSTALL_INCLUDE_DIR}/toml11
)
install(FILES ${TOML11_FWD_HEADERS}
DESTINATION ${TOML11_INSTALL_INCLUDE_DIR}/toml11/fwd
)
install(FILES ${TOML11_IMPL_HEADERS}
DESTINATION ${TOML11_INSTALL_INCLUDE_DIR}/toml11/impl
)
install(TARGETS toml11 EXPORT toml11Targets)
install(EXPORT toml11Targets
FILE toml11Targets.cmake
DESTINATION ${TOML11_INSTALL_CMAKE_DIR}
NAMESPACE toml11::
)
endif()
add_library(toml11::toml11 ALIAS toml11)