summaryrefslogtreecommitdiffstats
path: root/Tests/Plugin/PluginTest
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2012-10-07 19:47:46 (GMT)
committerStephen Kelly <steveire@gmail.com>2013-10-24 17:03:49 (GMT)
commit30ff6cf9e9b3211a54187e416d6cc2ce9b0e9b77 (patch)
tree7d920b6f637a18b99e47649807c6dc6ff5658984 /Tests/Plugin/PluginTest
parent8c0bbd37df52900678b3a85b146d7a7f65cba374 (diff)
downloadCMake-30ff6cf9e9b3211a54187e416d6cc2ce9b0e9b77.zip
CMake-30ff6cf9e9b3211a54187e416d6cc2ce9b0e9b77.tar.gz
CMake-30ff6cf9e9b3211a54187e416d6cc2ce9b0e9b77.tar.bz2
Refactor the Plugin test.
Policy CMP0024 was introduced to disallow the include() of a file generated by export(). Use ExternalProject to test the plugins after building.
Diffstat (limited to 'Tests/Plugin/PluginTest')
-rw-r--r--Tests/Plugin/PluginTest/CMakeLists.txt34
1 files changed, 34 insertions, 0 deletions
diff --git a/Tests/Plugin/PluginTest/CMakeLists.txt b/Tests/Plugin/PluginTest/CMakeLists.txt
new file mode 100644
index 0000000..79ef8a9
--- /dev/null
+++ b/Tests/Plugin/PluginTest/CMakeLists.txt
@@ -0,0 +1,34 @@
+cmake_minimum_required(VERSION 2.8)
+
+project(PluginTest)
+
+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}")
+ 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")
+ endif()
+endforeach()
+
+# Parse the binary to check for SONAME if possible.
+if("${CMAKE_EXECUTABLE_FORMAT}" MATCHES "ELF")
+ find_program(READELF_EXE readelf)
+ 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>
+ -P ${CMAKE_CURRENT_SOURCE_DIR}/../check_mod_soname.cmake
+ )
+ endif()
+endif()