1 # Copyright 2020, 2021 Peter Dimov
2 # Distributed under the Boost Software License, Version 1.0.
3 # https://www.boost.org/LICENSE_1_0.txt
5 cmake_minimum_required(VERSION 3.5...3.16)
7 project(boost_serialization VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
9 add_library(boost_serialization
10 src/archive_exception.cpp
12 src/basic_iarchive.cpp
13 src/basic_iserializer.cpp
14 src/basic_oarchive.cpp
15 src/basic_oserializer.cpp
16 src/basic_pointer_iserializer.cpp
17 src/basic_pointer_oserializer.cpp
18 src/basic_serializer_map.cpp
19 src/basic_text_iprimitive.cpp
20 src/basic_text_oprimitive.cpp
21 src/basic_xml_archive.cpp
22 src/binary_iarchive.cpp
23 src/binary_oarchive.cpp
25 src/extended_type_info.cpp
26 src/extended_type_info_no_rtti.cpp
27 src/extended_type_info_typeid.cpp
28 src/polymorphic_binary_iarchive.cpp
29 src/polymorphic_binary_oarchive.cpp
30 src/polymorphic_iarchive.cpp
31 src/polymorphic_oarchive.cpp
32 src/polymorphic_text_iarchive.cpp
33 src/polymorphic_text_oarchive.cpp
34 src/polymorphic_xml_iarchive.cpp
35 src/polymorphic_xml_oarchive.cpp
39 src/utf8_codecvt_facet.cpp
41 src/xml_archive_exception.cpp
47 add_library(boost_wserialization
48 src/basic_text_wiprimitive.cpp
49 src/basic_text_woprimitive.cpp
50 src/binary_wiarchive.cpp
51 src/binary_woarchive.cpp
52 src/polymorphic_text_wiarchive.cpp
53 src/polymorphic_text_woarchive.cpp
54 src/polymorphic_xml_wiarchive.cpp
55 src/polymorphic_xml_woarchive.cpp
56 src/text_wiarchive.cpp
57 src/text_woarchive.cpp
63 add_library(Boost::serialization ALIAS boost_serialization)
64 add_library(Boost::wserialization ALIAS boost_wserialization)
66 target_include_directories(boost_serialization PUBLIC include)
67 target_include_directories(boost_wserialization PUBLIC include)
69 target_link_libraries(boost_serialization
95 target_link_libraries(boost_wserialization PUBLIC boost_serialization)
97 target_compile_definitions(boost_serialization
98 PUBLIC BOOST_SERIALIZATION_NO_LIB
99 # Source files already define BOOST_SERIALIZATION_SOURCE
100 # PRIVATE BOOST_SERIALIZATION_SOURCE
103 target_compile_definitions(boost_wserialization
104 PUBLIC BOOST_SERIALIZATION_NO_LIB
105 # Source files already define BOOST_SERIALIZATION_SOURCE
106 # PRIVATE BOOST_SERIALIZATION_SOURCE
109 if(BUILD_SHARED_LIBS)
110 target_compile_definitions(boost_serialization PUBLIC BOOST_SERIALIZATION_DYN_LINK)
111 target_compile_definitions(boost_wserialization PUBLIC BOOST_SERIALIZATION_DYN_LINK)
113 target_compile_definitions(boost_serialization PUBLIC BOOST_SERIALIZATION_STATIC_LINK)
114 target_compile_definitions(boost_wserialization PUBLIC BOOST_SERIALIZATION_STATIC_LINK)
117 if(BOOST_SUPERPROJECT_VERSION AND NOT CMAKE_VERSION VERSION_LESS 3.13)
118 boost_install(TARGETS boost_serialization boost_wserialization VERSION ${BOOST_SUPERPROJECT_VERSION} HEADER_DIRECTORY include)
121 if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
123 add_subdirectory(test)