Skip to content

Commit 0733aeb

Browse files
authored
Revert "Revert "Hide most of non-public symbols by default (#984)" (#1038)" (#1045)
1 parent 0d9dbcf commit 0733aeb

File tree

3 files changed

+16
-34
lines changed

3 files changed

+16
-34
lines changed

CMakeLists.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ include(CMakeDependentOption)
1414
include(CheckCXXCompilerFlag)
1515
include(GNUInstallDirs)
1616
include(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

1823
find_program(YAML_CPP_CLANG_FORMAT_EXE NAMES clang-format)
1924

@@ -81,6 +86,7 @@ set_property(TARGET yaml-cpp
8186
target_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+
139151
configure_file(yaml-cpp.pc.in yaml-cpp.pc @ONLY)
140152

141153
if (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

include/yaml-cpp/dll.h

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/node_data.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
namespace YAML {
1515
namespace detail {
16-
std::atomic<size_t> node::m_amount{0};
16+
YAML_CPP_API std::atomic<size_t> node::m_amount{0};
1717

1818
const std::string& node_data::empty_scalar() {
1919
static const std::string svalue;

0 commit comments

Comments
 (0)