Test symbol visibility
This commit is contained in:
@@ -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
6
linker.map
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
global:
|
||||
*ConflictSet*;
|
||||
local:
|
||||
*;
|
||||
};
|
5
test_symbols.sh
Executable file
5
test_symbols.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
diff -u <(nm $1 | grep " T " | cut -f3 -d " " | sort) $2
|
Reference in New Issue
Block a user