diff options
author | Kitware Robot <kwrobot@kitware.com> | 2012-08-13 17:47:32 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-08-13 18:19:16 (GMT) |
commit | 77543bde41b0e52c3959016698b529835945d62d (patch) | |
tree | ff63e5fbec326c4a5d821e7496c6d2cb52f75b92 /Tests/Plugin/CMakeLists.txt | |
parent | 7bbaa4283de26864b2e55e819db0884771585467 (diff) | |
download | CMake-77543bde41b0e52c3959016698b529835945d62d.zip CMake-77543bde41b0e52c3959016698b529835945d62d.tar.gz CMake-77543bde41b0e52c3959016698b529835945d62d.tar.bz2 |
Convert CMake-language commands to lower case
Ancient CMake versions required upper-case commands. Later command
names became case-insensitive. Now the preferred style is lower-case.
Run the following shell code:
cmake --help-command-list |
grep -v "cmake version" |
while read c; do
echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done >convert.sed &&
git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' '*CMakeLists.txt' |
egrep -z -v '^(Utilities/cm|Source/kwsys/)' |
xargs -0 sed -i -f convert.sed &&
rm convert.sed
Diffstat (limited to 'Tests/Plugin/CMakeLists.txt')
-rw-r--r-- | Tests/Plugin/CMakeLists.txt | 90 |
1 files changed, 45 insertions, 45 deletions
diff --git a/Tests/Plugin/CMakeLists.txt b/Tests/Plugin/CMakeLists.txt index 31ca59c..d1b8334 100644 --- a/Tests/Plugin/CMakeLists.txt +++ b/Tests/Plugin/CMakeLists.txt @@ -1,87 +1,87 @@ cmake_minimum_required (VERSION 2.6) -PROJECT(Plugin) +project(Plugin) # Test per-target output directory properties. -SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${Plugin_BINARY_DIR}/bin) -SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${Plugin_BINARY_DIR}/lib/plugin) -SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${Plugin_BINARY_DIR}/lib/static) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${Plugin_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${Plugin_BINARY_DIR}/lib/plugin) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${Plugin_BINARY_DIR}/lib/static) # We need the dynamic loader support from KWSys to load the plugin in # the executable. -SET(KWSYS_NAMESPACE kwsys) -SET(KWSYS_HEADER_ROOT ${Plugin_BINARY_DIR}/include) -SET(KWSYS_USE_DynamicLoader 1) -ADD_SUBDIRECTORY(${Plugin_SOURCE_DIR}/../../Source/kwsys src/kwsys) +set(KWSYS_NAMESPACE kwsys) +set(KWSYS_HEADER_ROOT ${Plugin_BINARY_DIR}/include) +set(KWSYS_USE_DynamicLoader 1) +add_subdirectory(${Plugin_SOURCE_DIR}/../../Source/kwsys src/kwsys) # Configure the location of plugins. -CONFIGURE_FILE(${Plugin_SOURCE_DIR}/src/example_exe.h.in +configure_file(${Plugin_SOURCE_DIR}/src/example_exe.h.in ${Plugin_BINARY_DIR}/include/example_exe.h @ONLY) # We need to include headers from the source tree and configured # headers in the build tree. -INCLUDE_DIRECTORIES( +include_directories( ${Plugin_BINARY_DIR}/include ${Plugin_SOURCE_DIR}/include ) # Create an executable that exports an API for use by plugins. -ADD_EXECUTABLE(example_exe src/example_exe.cxx) -SET_TARGET_PROPERTIES(example_exe PROPERTIES +add_executable(example_exe src/example_exe.cxx) +set_target_properties(example_exe PROPERTIES ENABLE_EXPORTS 1 OUTPUT_NAME example # Test placing exe import library in unique directory. ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/exe ) -TARGET_LINK_LIBRARIES(example_exe kwsys) +target_link_libraries(example_exe kwsys) # Create a plugin that uses the API provided by the executable. # This module "links" to the executable to use the symbols. -ADD_LIBRARY(example_mod_1 MODULE src/example_mod_1.c) -TARGET_LINK_LIBRARIES(example_mod_1 example_exe) +add_library(example_mod_1 MODULE src/example_mod_1.c) +target_link_libraries(example_mod_1 example_exe) -IF(CMAKE_SHARED_LIBRARY_SONAME_C_FLAG AND +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) + 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 example_mod_2 NAMESPACE exp_ FILE ${CMAKE_CURRENT_BINARY_DIR}/mods.cmake) - 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() + 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 + 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:example_mod_1> -Dmod2=$<TARGET_FILE:example_mod_2> -P ${CMAKE_CURRENT_SOURCE_DIR}/check_mod_soname.cmake ) - ADD_DEPENDENCIES(check_mod_soname example_mod_1 example_mod_2) - ENDIF() - ENDIF() -ENDIF() + add_dependencies(check_mod_soname example_mod_1 example_mod_2) + endif() + endif() +endif() # TODO: # - create a plugin that links to a static lib |