@@ -14,6 +14,11 @@ include(CMakeDependentOption)
1414include (CheckCXXCompilerFlag)
1515include (GNUInstallDirs)
1616include (CTest)
17+ include (GenerateExportHeader)
18+
19+ set (CMAKE_C_VISIBILITY_PRESET hidden)
20+ set (CMAKE_CXX_VISIBILITY_PRESET hidden)
21+ set (CMAKE_VISIBILITY_INLINES_HIDDEN 1)
1722
1823find_program (YAML_CPP_CLANG_FORMAT_EXE NAMES clang-format)
1924
@@ -81,6 +86,7 @@ set_property(TARGET yaml-cpp
8186target_include_directories (yaml-cpp
8287 PUBLIC
8388 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /include >
89+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR} /include >
8490 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
8591 PRIVATE
8692 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /src>)
@@ -136,6 +142,12 @@ write_basic_package_version_file(
136142 "${PROJECT_BINARY_DIR} /yaml-cpp-config-version.cmake"
137143 COMPATIBILITY AnyNewerVersion)
138144
145+ generate_export_header(yaml-cpp
146+ BASE_NAME YAML_CPP
147+ EXPORT_FILE_NAME "${PROJECT_BINARY_DIR} /include/yaml-cpp/dll.h"
148+ EXPORT_MACRO_NAME YAML_CPP_API
149+ )
150+
139151configure_file (yaml-cpp.pc.in yaml-cpp.pc @ONLY)
140152
141153if (YAML_CPP_INSTALL)
@@ -145,6 +157,9 @@ if (YAML_CPP_INSTALL)
145157 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
146158 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} )
147159 install (DIRECTORY ${PROJECT_SOURCE_DIR} /include /
160+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
161+ FILES_MATCHING PATTERN "*.h" )
162+ install (DIRECTORY ${PROJECT_BINARY_DIR} /include /
148163 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
149164 FILES_MATCHING PATTERN "*.h" )
150165 install (EXPORT yaml-cpp-targets
0 commit comments