diff options
author | Brad King <brad.king@kitware.com> | 2010-12-07 22:36:24 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2010-12-15 19:53:33 (GMT) |
commit | 45e1953c4037d4492668651ae3bbfd6a4a875bc1 (patch) | |
tree | 37d90c289495eaeb53aa1d13b18dcbeb93859523 /Tests/PerConfig/perconfig.cmake | |
parent | 4091bca4ecf4a7f9c2099a7d34e125494de60e1c (diff) | |
download | CMake-45e1953c4037d4492668651ae3bbfd6a4a875bc1.zip CMake-45e1953c4037d4492668651ae3bbfd6a4a875bc1.tar.gz CMake-45e1953c4037d4492668651ae3bbfd6a4a875bc1.tar.bz2 |
Factor per-config sample targets out of 'Testing' test
Put the source files, build rules, and test scripts for these targets
under Tests/PerConfig and refer to it from Tests/Testing as a
subdirectory. The targets and scripts will be useful in other tests.
Diffstat (limited to 'Tests/PerConfig/perconfig.cmake')
-rw-r--r-- | Tests/PerConfig/perconfig.cmake | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Tests/PerConfig/perconfig.cmake b/Tests/PerConfig/perconfig.cmake new file mode 100644 index 0000000..4a93acc --- /dev/null +++ b/Tests/PerConfig/perconfig.cmake @@ -0,0 +1,40 @@ +# Print values for human reference. +foreach(v + configuration + perconfig_file_dir + perconfig_file_name + perconfig_file + pcStatic_file + pcStatic_linker_file + pcShared_file + pcShared_linker_file + pcShared_soname_file + ) + message("${v}=${${v}}") +endforeach() + +# Verify that file names match as expected. +set(pc_file_components ${perconfig_file_dir}/${perconfig_file_name}) +if(NOT "${pc_file_components}" STREQUAL "${perconfig_file}") + message(SEND_ERROR + "File components ${pc_file_components} do not match ${perconfig_file}") +endif() +if(NOT "${pcStatic_file}" STREQUAL "${pcStatic_linker_file}") + message(SEND_ERROR + "pcStatic_file does not match pcStatic_linker_file:\n" + " ${pcStatic_file}\n" + " ${pcStatic_linker_file}\n" + ) +endif() + +# Verify that the implementation files are named correctly. +foreach(lib pcStatic pcShared) + file(STRINGS "${${lib}_file}" info LIMIT_COUNT 1 REGEX "INFO:[^[]*\\[") + if(NOT "${info}" MATCHES ".*INFO:symbol\\[${lib}\\].*") + message(SEND_ERROR "No INFO:symbol[${lib}] found in:\n ${${lib}_file}") + endif() +endforeach() +execute_process(COMMAND ${perconfig_file} RESULT_VARIABLE result) +if(result) + message(SEND_ERROR "Error running:\n ${perconfig_file}\n(${result})") +endif() |