diff options
author | Brad King <brad.king@kitware.com> | 2015-05-22 19:24:18 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-05-22 19:24:18 (GMT) |
commit | 771f1b00dc1e9422e543534ca2ea823c98b3e2be (patch) | |
tree | d03ae2d748632c1029d0cedfaf99357e839b174d /Tests/Visibility | |
parent | ab55b3b5faac694c28d8725e235923803fb83a8d (diff) | |
download | CMake-771f1b00dc1e9422e543534ca2ea823c98b3e2be.zip CMake-771f1b00dc1e9422e543534ca2ea823c98b3e2be.tar.gz CMake-771f1b00dc1e9422e543534ca2ea823c98b3e2be.tar.bz2 |
Tests: Rename Visibility{InlinesHidden =>}
We will soon generalize it to cover other visibility properties.
Diffstat (limited to 'Tests/Visibility')
-rw-r--r-- | Tests/Visibility/CMakeLists.txt | 13 | ||||
-rw-r--r-- | Tests/Visibility/bar.c | 1 | ||||
-rw-r--r-- | Tests/Visibility/foo.cpp | 11 | ||||
-rw-r--r-- | Tests/Visibility/verify.cmake | 14 |
4 files changed, 39 insertions, 0 deletions
diff --git a/Tests/Visibility/CMakeLists.txt b/Tests/Visibility/CMakeLists.txt new file mode 100644 index 0000000..df75630 --- /dev/null +++ b/Tests/Visibility/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.2) +project(Visibility) + +add_library(inlines_hidden SHARED foo.cpp bar.c) +set_property(TARGET inlines_hidden PROPERTY VISIBILITY_INLINES_HIDDEN ON) +target_compile_options(inlines_hidden PRIVATE -Werror) + +add_custom_command(TARGET inlines_hidden POST_BUILD + COMMAND ${CMAKE_COMMAND} + -DCMAKE_NM=${CMAKE_NM} + -DTEST_LIBRARY_PATH=$<TARGET_FILE:inlines_hidden> + -P ${CMAKE_CURRENT_SOURCE_DIR}/verify.cmake +) diff --git a/Tests/Visibility/bar.c b/Tests/Visibility/bar.c new file mode 100644 index 0000000..e425999 --- /dev/null +++ b/Tests/Visibility/bar.c @@ -0,0 +1 @@ +void bar() {} diff --git a/Tests/Visibility/foo.cpp b/Tests/Visibility/foo.cpp new file mode 100644 index 0000000..2b66b69 --- /dev/null +++ b/Tests/Visibility/foo.cpp @@ -0,0 +1,11 @@ +class Foo +{ +public: + void bar() {} +}; + +void baz() +{ + Foo foo; + foo.bar(); +} diff --git a/Tests/Visibility/verify.cmake b/Tests/Visibility/verify.cmake new file mode 100644 index 0000000..80dd13c --- /dev/null +++ b/Tests/Visibility/verify.cmake @@ -0,0 +1,14 @@ +execute_process(COMMAND ${CMAKE_NM} -D ${TEST_LIBRARY_PATH} + RESULT_VARIABLE RESULT + OUTPUT_VARIABLE OUTPUT + ERROR_VARIABLE ERROR +) + +if(NOT "${RESULT}" STREQUAL "0") + message(FATAL_ERROR "nm failed [${RESULT}] [${OUTPUT}] [${ERROR}]") +endif() + +if(${OUTPUT} MATCHES "Foo[^\\n]*bar") + message(FATAL_ERROR + "Found Foo::bar() which should have been hidden [${OUTPUT}]") +endif() |