Skip to content

Commit

Permalink
{cmake} Remove E57_VISIBILITY_HIDDEN option
Browse files Browse the repository at this point in the history
I cannot get extern templates to work across all of gcc, clang, apple clang, and MSVC  when using “hidden” visibility and shared libraries.

Fixes #252
  • Loading branch information
asmaloney committed Aug 15, 2023
1 parent 8cb074c commit 798d1f9
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 19 deletions.
16 changes: 0 additions & 16 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ option( E57_ENABLE_DIAGNOSTIC_OUTPUT "Include code for diagnostic output using d
option( E57_WRITE_CRAZY_PACKET_MODE "Compile library to enable reader-stressing packets" OFF )

# Other compile options
option( E57_VISIBILITY_HIDDEN "Compile library with hidden symbol visibility" ON )

# Link-time optiomization
# CMake forces "thin" LTO (see https://gitlab.kitware.com/cmake/cmake/-/issues/23136)
Expand Down Expand Up @@ -181,14 +180,6 @@ target_compile_definitions( E57Format
$<$<BOOL:${E57_WRITE_CRAZY_PACKET_MODE}>:E57_WRITE_CRAZY_PACKET_MODE>
)

if ( E57_VISIBILITY_HIDDEN )
set_target_properties( E57Format
PROPERTIES
CXX_VISIBILITY_PRESET hidden
CMAKE_VISIBILITY_INLINES_HIDDEN ON
)
endif()

# sanitizers
include( Sanitizers )

Expand Down Expand Up @@ -230,13 +221,6 @@ option( E57_BUILD_TEST
if ( E57_BUILD_TEST )
message( STATUS "[${PROJECT_NAME}] Testing enabled" )

# If we are building tests, we need access to all the symbols, so override visibility
set_target_properties( E57Format
PROPERTIES
CXX_VISIBILITY_PRESET default
CMAKE_VISIBILITY_INLINES_HIDDEN OFF
)

enable_testing()

add_subdirectory( test )
Expand Down
6 changes: 3 additions & 3 deletions test/src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ target_sources( ${PROJECT_NAME}
test_SimpleWriter.cpp
)

# Include internal tests if not building shared lib on Windows.
# The functions aren't exported in the Windows DLLs.
if ( (NOT WIN32) OR (WIN32 AND NOT E57_BUILD_SHARED) )
# Include internal tests if not building shared lib.
# The functions are not exported.
if ( NOT E57_BUILD_SHARED )
target_sources( ${PROJECT_NAME}
PRIVATE
test_StringFunctions.cpp
Expand Down

0 comments on commit 798d1f9

Please sign in to comment.