-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Commit
Also have a check that warns users if they try to combined dynamic library with hidden visibility, which we do not support. Closes #2397 Closes #2398
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -285,9 +285,7 @@ set(REPORTER_SOURCES | |
) | ||
set(REPORTER_FILES ${REPORTER_HEADERS} ${REPORTER_SOURCES}) | ||
|
||
# Fixme: STATIC because for dynamic, we would need to handle visibility | ||
# and I don't want to do the annotations right now | ||
add_library(Catch2 STATIC | ||
add_library(Catch2 | ||
${REPORTER_FILES} | ||
${INTERNAL_FILES} | ||
${BENCHMARK_HEADERS} | ||
|
@@ -340,7 +338,7 @@ target_include_directories(Catch2 | |
) | ||
|
||
|
||
add_library(Catch2WithMain STATIC | ||
add_library(Catch2WithMain | ||
${SOURCES_DIR}/internal/catch_main.cpp | ||
) | ||
add_build_reproducibility_settings(Catch2WithMain) | ||
|
@@ -431,3 +429,20 @@ endif() | |
|
||
list(APPEND CATCH_WARNING_TARGETS Catch2 Catch2WithMain) | ||
set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE) | ||
|
||
|
||
# We still do not support building dynamic library with hidden visibility | ||
# 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) | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
horenmar
Author
Member
|
||
if (MSVC AND NOT _ExportAll | ||
OR _VisPreset STREQUAL "hidden") | ||
|
||
message(WARNING | ||
"Catch2 does not support being built as a dynamic library with hidden" | ||
" visibility. You have to ensure that visibility is handled yourself." | ||
) | ||
endif() | ||
endif() |
You are checking for this target property but you are never setting it. Do you intent for the end user to set it via https://cmake.org/cmake/help/latest/variable/CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.html ?
IMO it would be better just to set the property here.