From 5a1ef7e4a6caf3d5f696eb82302e3d87ff5c2303 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Mon, 27 Jun 2022 13:10:22 +0200 Subject: [PATCH] Redo visibility fallback --- src/CMakeLists.txt | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 57978ecb03..2aa67b8f6f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -435,14 +435,21 @@ set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE) # so we want to check & warn users if they do this. However, we won't abort # the configuration step so that we don't have to also provide an override. if (BUILD_SHARED_LIBS) - get_target_property(_VisPreset Catch2 CXX_VISIBILITY_PRESET) - get_target_property(_ExportAll Catch2 WINDOWS_EXPORT_ALL_SYMBOLS) - if (MSVC AND NOT _ExportAll - OR _VisPreset STREQUAL "hidden") + if (MSVC) + set_target_properties(Catch2 Catch2WithMain + PROPERTIES + WINDOWS_EXPORT_ALL_SYMBOLS ON + ) + endif() - message(WARNING - "Catch2 does not support being built as a dynamic library with hidden" - " visibility. You have to ensure that visibility is handled yourself." + get_target_property(_VisPreset Catch2 CXX_VISIBILITY_PRESET) + if (NOT MSVC AND _VisPreset STREQUAL "hidden") + set_target_properties(Catch2 Catch2WithMain + PROPERTIES + CXX_VISIBILITY_PRESET "default" + VISIBILITY_INLINES_HIDDEN OFF ) + message(WARNING "Setting Catch2's visibility to default." + " Hidden visibility is not supported.") endif() endif()