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>>:
|
target_link_options(${PROJECT_NAME} PRIVATE $<$<NOT:$<CONFIG:Debug>>:
|
||||||
-nodefaultlibs -lc>)
|
-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)
|
add_library(${PROJECT_NAME}_static STATIC ConflictSet.cpp)
|
||||||
target_compile_options(conflict_set_static PRIVATE -fno-exceptions
|
target_compile_options(conflict_set_static PRIVATE -fno-exceptions
|
||||||
-fvisibility=hidden)
|
-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)
|
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_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
|
# packaging
|
||||||
|
|
||||||
set(CPACK_PACKAGE_CONTACT andrew@weaselab.dev)
|
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