diff options
author | Felix Geyer <fgeyer@debian.org> | 2015-08-20 14:13:28 +0200 |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-08-20 10:45:09 -0400 |
commit | f799ffb5cb895855ac2aba54765622b81db5be38 (patch) | |
tree | 211d48c7fa168fe7945939de227a396302e65dce /Tests | |
parent | 899458ab20876aeea915a59e9bfb459d92d264de (diff) | |
download | cmake-f799ffb5cb895855ac2aba54765622b81db5be38.tar.gz |
Do not set SONAME for MODULE library targets (#15705)
The SONAME field is only useful for shared libraries that application
link against.
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/Plugin/CMakeLists.txt | 9 | ||||
-rw-r--r-- | Tests/Plugin/PluginTest/CMakeLists.txt | 17 | ||||
-rw-r--r-- | Tests/Plugin/check_mod_soname.cmake | 17 |
3 files changed, 12 insertions, 31 deletions
diff --git a/Tests/Plugin/CMakeLists.txt b/Tests/Plugin/CMakeLists.txt index ecdece8b50..2b7bac1bc3 100644 --- a/Tests/Plugin/CMakeLists.txt +++ b/Tests/Plugin/CMakeLists.txt @@ -52,13 +52,8 @@ target_link_libraries(example_mod_1 example_exe) if(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG AND "${CMAKE_C_CREATE_SHARED_MODULE}" MATCHES "SONAME_FLAG") - # Add a second plugin that should not have any soname. - add_library(example_mod_2 MODULE src/example_mod_1.c) - target_link_libraries(example_mod_2 example_exe) - set_property(TARGET example_mod_2 PROPERTY NO_SONAME 1) - # Verify that targets export with proper IMPORTED SONAME properties. - export(TARGETS example_mod_1 example_mod_2 NAMESPACE exp_ + export(TARGETS example_mod_1 NAMESPACE exp_ FILE ${CMAKE_CURRENT_BINARY_DIR}/mods.cmake) include(ExternalProject) @@ -68,7 +63,7 @@ if(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG AND DOWNLOAD_COMMAND "" INSTALL_COMMAND "" ) - add_dependencies(PluginTest example_mod_1 example_mod_2) + add_dependencies(PluginTest example_mod_1) endif() # TODO: diff --git a/Tests/Plugin/PluginTest/CMakeLists.txt b/Tests/Plugin/PluginTest/CMakeLists.txt index 79ef8a9502..5626dbcf7d 100644 --- a/Tests/Plugin/PluginTest/CMakeLists.txt +++ b/Tests/Plugin/PluginTest/CMakeLists.txt @@ -6,17 +6,11 @@ include(${CMAKE_CURRENT_BINARY_DIR}/../mods.cmake) get_property(configs TARGET exp_example_mod_1 PROPERTY IMPORTED_CONFIGURATIONS) foreach(c ${configs}) string(TOUPPER "${c}" CONFIG) - get_property(soname1 TARGET exp_example_mod_1 PROPERTY IMPORTED_SONAME_${CONFIG}) - get_property(soname2 TARGET exp_example_mod_2 PROPERTY IMPORTED_NO_SONAME_${CONFIG}) - if(soname1) - message(STATUS "exp_example_mod_1 has IMPORTED_SONAME_${CONFIG} as expected: ${soname1}") + get_property(soname TARGET exp_example_mod_1 PROPERTY IMPORTED_NO_SONAME_${CONFIG}) + if(soname) + message(STATUS "exp_example_mod_1 has IMPORTED_NO_SONAME_${CONFIG} as expected: ${soname}") else() - message(SEND_ERROR "exp_example_mod_1 does not have IMPORTED_SONAME_${CONFIG} but should") - endif() - if(soname2) - message(STATUS "exp_example_mod_2 has IMPORTED_NO_SONAME_${CONFIG} as expected: ${soname2}") - else() - message(SEND_ERROR "exp_example_mod_2 does not have IMPORTED_NO_SONAME_${CONFIG} but should") + message(SEND_ERROR "exp_example_mod_1 does not have IMPORTED_NO_SONAME_${CONFIG} but should") endif() endforeach() @@ -26,8 +20,7 @@ if("${CMAKE_EXECUTABLE_FORMAT}" MATCHES "ELF") if(READELF_EXE) add_custom_target(check_mod_soname ALL COMMAND ${CMAKE_COMMAND} -Dreadelf=${READELF_EXE} - -Dmod1=$<TARGET_FILE:exp_example_mod_1> - -Dmod2=$<TARGET_FILE:exp_example_mod_2> + -Dmod=$<TARGET_FILE:exp_example_mod_1> -P ${CMAKE_CURRENT_SOURCE_DIR}/../check_mod_soname.cmake ) endif() diff --git a/Tests/Plugin/check_mod_soname.cmake b/Tests/Plugin/check_mod_soname.cmake index 3737b450d8..21a33b115d 100644 --- a/Tests/Plugin/check_mod_soname.cmake +++ b/Tests/Plugin/check_mod_soname.cmake @@ -1,14 +1,7 @@ -execute_process(COMMAND ${readelf} -d ${mod1} OUTPUT_FILE ${mod1}.readelf.txt) -execute_process(COMMAND ${readelf} -d ${mod2} OUTPUT_FILE ${mod2}.readelf.txt) -file(STRINGS ${mod1}.readelf.txt soname1 REGEX "\\(SONAME\\)") -file(STRINGS ${mod2}.readelf.txt soname2 REGEX "\\(SONAME\\)") -if(soname1) - message(STATUS "${mod1} has soname as expected: ${soname1}") +execute_process(COMMAND ${readelf} -d ${mod} OUTPUT_FILE ${mod}.readelf.txt) +file(STRINGS ${mod}.readelf.txt soname REGEX "\\(SONAME\\)") +if(soname) + message(FATAL_ERROR "${mod} has soname but should not:\n ${soname}") else() - message(FATAL_ERROR "${mod1} has no soname but should:\n ${soname1}") -endif() -if(soname2) - message(FATAL_ERROR "${mod2} has soname but should not:\n ${soname2}") -else() - message(STATUS "${mod2} has no soname as expected") + message(STATUS "${mod} has no soname as expected") endif() |