Test symbol visibility

This commit is contained in:
2024-01-30 10:39:43 -08:00
parent 831088aad9
commit 79176757fc
3 changed files with 24 additions and 0 deletions

View File

@@ -52,6 +52,11 @@ target_compile_options(${PROJECT_NAME} PRIVATE -fPIC -fno-exceptions
target_link_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:
-nodefaultlibs -lc>)
if(NOT APPLE)
target_link_options(${PROJECT_NAME} PRIVATE
LINKER:--version-script=${CMAKE_SOURCE_DIR}/linker.map)
endif()
add_library(${PROJECT_NAME}_static STATIC ConflictSet.cpp)
target_compile_options(conflict_set_static PRIVATE -fno-exceptions
-fvisibility=hidden)
@@ -125,6 +130,14 @@ set_property(TARGET conflict_set_c_api_test PROPERTY CXX_STANDARD 98)
set_property(TARGET conflict_set_c_api_test PROPERTY CXX_STANDARD_REQUIRED ON)
add_test(NAME conflict_set_cxx_api_test COMMAND conflict_set_cxx_api_test)
add_test(NAME conflict_set_shared_symbols
COMMAND ${CMAKE_SOURCE_DIR}/test_symbols.sh
$<TARGET_FILE:${PROJECT_NAME}> ${CMAKE_SOURCE_DIR}/symbols.txt)
add_test(
NAME conflict_set_static_symbols
COMMAND ${CMAKE_SOURCE_DIR}/test_symbols.sh
$<TARGET_FILE:${PROJECT_NAME}_static> ${CMAKE_SOURCE_DIR}/symbols.txt)
# packaging
set(CPACK_PACKAGE_CONTACT andrew@weaselab.dev)

6
linker.map Normal file
View File

@@ -0,0 +1,6 @@
{
global:
*ConflictSet*;
local:
*;
};

5
test_symbols.sh Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
set -euo pipefail
diff -u <(nm $1 | grep " T " | cut -f3 -d " " | sort) $2