CMake/Tests/RunCMake
Brad King 86ec0aca05 Merge topic 'topic-reproducible-build'
243aed52 cmTimestamp: Support SOURCE_DATE_EPOCH to override current time
2017-01-27 09:04:53 -05:00
..
add_custom_command Make the add_custom_command output more predictable 2016-09-19 08:49:46 -04:00
add_custom_target Ninja: Fix inter-target order-only dependencies of custom commands 2016-07-20 13:12:24 -04:00
add_dependencies Add a getter for manually added target dependencies 2017-01-16 22:38:24 +01:00
add_subdirectory Xcode: Add targets marked as EXCLUDE_FROM_ALL to project (#16101) 2016-08-31 09:16:44 -04:00
alias_targets Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
Android Android: Add CMAKE_<LANG>_ANDROID_TOOLCHAIN_MACHINE 2016-11-14 14:39:50 -05:00
AndroidMK Android: Record use of C++ by static libs in exported Android.mk files 2016-10-07 15:02:42 -04:00
AndroidTestUtilities AndroidTestUtilities: Add module to help drive Android device tests 2016-09-30 13:49:47 -04:00
AutoExportDll VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for object libraries 2016-07-21 11:05:22 -04:00
build_command
BuildDepends Use string(APPEND) in Tests 2016-07-28 00:43:04 +02:00
CheckModules
ClangTidy cmake: Report if the <LANG>_CLANG_TIDY tool exits with non-zero 2016-11-18 09:43:22 -05:00
cmake_minimum_required
cmake_parse_arguments cmake_parse_arguments: Add additional unit tests 2016-09-28 15:20:42 -04:00
CMP0004
CMP0019
CMP0022 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0026 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0027
CMP0028
CMP0037 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0038 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0039
CMP0040 Tests: Fix RunCMake.CMP0040 custom command syntax 2016-08-24 10:56:57 -04:00
CMP0041 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0042 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0043 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0045 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0046 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0049 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0050 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0051 Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CMP0053
CMP0054 Use string(APPEND) in Tests 2016-07-28 00:43:04 +02:00
CMP0055
CMP0057
CMP0059 CMP0059: Fix typo in policy description 2016-05-02 15:16:07 -04:00
CMP0060
CMP0064
CMP0065 Fix typos. 2016-07-10 11:05:56 +02:00
CommandLine Add properties to run the cpplint style checker with the compiler 2017-01-23 14:47:13 -05:00
CommandLineTar
CompatibleInterface Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
COMPILE_LANGUAGE-genex Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CompileDefinitions
CompileFeatures Features: Test cycle diagnostic with language standard meta-feature 2016-11-02 10:01:24 -04:00
CompilerChange
CompilerLauncher Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CompilerNotFound
Configure Tolerate removed/replaced CMakeCache.txt with old CMakeFiles/ 2016-11-17 10:29:58 -05:00
configure_file
continue Use string(APPEND) in Tests 2016-07-28 00:43:04 +02:00
CPack CPack/STGZ: minimalistic packages test 2017-01-22 22:07:16 +01:00
CPackConfig
CPackInstallProperties Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
CPackSymlinks
Cpplint Add properties to run the cpplint style checker with the compiler 2017-01-23 14:47:13 -05:00
CrosscompilingEmulator Tests: Check that CROSSCOMPILING_EMULATOR is not used on imported targets 2016-10-28 15:08:08 -04:00
CTest Tests: Fix RunCMake.CTest output match to tolerate line number changes 2016-09-27 15:04:27 -04:00
ctest_build ctest_configure: Propagate CTEST_USE_LAUNCHERS from caller to project 2016-10-17 11:15:36 -04:00
ctest_cmake_error CTest: Add CAPTURE_CMAKE_ERROR val to ctest_* commands 2016-09-20 13:14:20 -04:00
ctest_configure
ctest_coverage
ctest_fixtures CTest: Ensure setup/cleanup ordering even when fixture not required 2017-01-16 11:29:24 -05:00
ctest_memcheck ctest_memcheck: Fix sanitizers when MemoryCheckSanitizerOptions is empty 2017-01-23 10:50:38 -05:00
ctest_start
ctest_submit ctest_submit: Allow RETRY_COUNT for CDASH_UPLOAD 2017-01-20 11:37:27 -05:00
ctest_test
ctest_upload
CTestCommandLine CTest: Properly reset output to avoid duplication with --repeat-until-fail 2017-01-12 11:32:58 +01:00
CTestTimeoutAfterMatch
DisallowedCommands
execute_process execute_process: Add ENCODING option for Windows child process output 2016-11-30 09:06:51 -05:00
export
ExportWithoutLanguage Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
ExternalData
ExternalProject ExternalProject: Fix regression in passing list to CMAKE_CACHE_ARGS 2016-10-10 14:40:12 -04:00
FeatureSummary
file file: Fix crash on GLOB with no expressions after LIST_DIRECTORIES 2017-01-16 10:47:32 -05:00
File_Generate Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
find_dependency
find_file Drop find_(library|file|path) prefixes from PATH on non-Windows 2016-05-09 12:58:08 -04:00
find_library Drop find_(library|file|path) prefixes from PATH on non-Windows 2016-05-09 12:58:08 -04:00
find_package cmListFileBacktrace: Refactor storage to provide efficient value semantics 2016-04-18 09:21:19 -04:00
find_path find_path: Fix location of <dir/header.h> in a framework on OS X 2016-06-07 09:04:35 -04:00
find_program
FindGTK2 FindGTK2: Add unit test to check variables when run twice 2017-01-25 10:20:35 +01:00
FindMatlab Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
FindPkgConfig Teach find_library and find_package to search lib32 paths (#11260) 2016-06-10 11:09:16 -04:00
FPHSA
Framework Tests: Fix RunCMake.Framework on case sensitive file systems. 2016-08-09 16:00:27 -04:00
GenerateExportHeader Tests: Refactor GenerateExportHeader test code 2016-09-12 10:29:20 -04:00
GeneratorExpression cmTarget: Move sanity checks and computed property access to callers 2016-10-16 13:56:12 +02:00
GeneratorPlatform VS15: Add Visual Studio 15 generator 2016-09-07 15:49:08 -04:00
GeneratorToolset VS: Provide an option to use x64 host tools 2016-10-14 09:22:26 -04:00
get_filename_component Tests: Use upper-case drive letters in RunCMake.get_filename_component 2016-09-15 08:39:18 -04:00
get_property Add directory properties to get source and binary directories 2016-09-19 14:00:50 -04:00
GNUInstallDirs
if Use string(APPEND) in Tests 2016-07-28 00:43:04 +02:00
IfacePaths
include Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
include_directories
include_external_msproject Use string(APPEND) in Tests 2016-07-28 00:43:04 +02:00
IncludeWhatYouUse Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
IncompatibleQt Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
install Use string(APPEND) in Tests 2016-07-28 00:43:04 +02:00
interface_library Allow imported INTERFACE libraries to specify a link library name 2016-11-09 09:45:14 -05:00
Languages Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
LinkStatic
LinkWhatYouUse Add options to run ldd -u -r as a "link-what-you-use" tool 2016-06-17 10:56:40 -04:00
list
Make add_custom_command: Add DEPFILE option for Ninja 2016-08-30 09:05:18 -04:00
message cmake: Issue message independent of cmMakefile definition 2016-06-12 18:38:33 +02:00
Ninja Ninja: Use binary dir for $subdir/all targets 2016-10-24 10:30:02 -04:00
no_install_prefix
ObjectLibrary Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
ObsoleteQtMacros Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
PolicyScope cmListFileBacktrace: Refactor storage to provide efficient value semantics 2016-04-18 09:21:19 -04:00
PositionIndependentCode Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
project project: Fix support for explicit RC language 2016-09-28 10:34:57 -04:00
return
set
set_property cmTarget: Enforce TYPE being a read-only property 2017-01-09 16:00:39 -05:00
string cmTimestamp: Support SOURCE_DATE_EPOCH to override current time 2017-01-26 10:21:41 -05:00
Swift
Syntax Improve error message on unexpected end of file 2016-08-30 13:53:15 -04:00
target_compile_features Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
target_link_libraries Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
TargetObjects
TargetPolicies Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
TargetPropertyGeneratorExpressions Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
TargetSources Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
ToolchainFile Honor CMAKE_*_LINKER_FLAGS[_<CONFIG>]_INIT set in toolchain files 2016-07-14 15:47:32 -04:00
try_compile CUDA: Port test cases to Windows with MSVC host compiler 2017-01-12 10:39:04 -05:00
try_run Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
variable_watch
VisibilityPreset
VS10Project VS: renamed target property VS_USER_PROPS_CXX to VS_USER_PROPS 2017-01-13 09:27:21 +01:00
VSSolution VS: Add option to place PACKAGE target in solution default build 2016-11-29 08:46:27 -05:00
while Make error message of standalone endwhile command consistent 2016-11-29 13:53:29 -05:00
WriteCompilerDetectionHeader
XcodeProject Xcode: Control emission of EFFECTIVE_PLATFORM_NAME 2017-01-20 13:51:48 -05:00
CMakeLists.txt Merge topic 'FindGTK2_RunTwice' 2017-01-26 10:40:39 -05:00
pseudo_cpplint.c Add properties to run the cpplint style checker with the compiler 2017-01-23 14:47:13 -05:00
pseudo_emulator_custom_command.c Fix custom command target substitution with CROSSCOMPILING_EMULATOR 2016-10-28 15:08:03 -04:00
pseudo_emulator.c Revise C++ coding style using clang-format 2016-05-16 16:05:19 -04:00
pseudo_iwyu.c cmake: Comment why we ignore the include-what-you-use return code 2016-11-18 09:43:19 -05:00
pseudo_tidy.c cmake: Report if the <LANG>_CLANG_TIDY tool exits with non-zero 2016-11-18 09:43:22 -05:00
README.rst
RunCMake.cmake execute_process: Add ENCODING option for Windows child process output 2016-11-30 09:06:51 -05:00
RunCTest.cmake Update tests that expect uncompressed output 2016-11-08 15:58:29 -05:00

This directory contains tests that run CMake to configure a project
but do not actually build anything.  To add a test:

1. Add a subdirectory named for the test, say ``<Test>/``.

2. In ``./CMakeLists.txt`` call ``add_RunCMake_test`` and pass the
   test directory name ``<Test>``.

3. Create script ``<Test>/RunCMakeTest.cmake`` in the directory containing::

    include(RunCMake)
    run_cmake(SubTest1)
    ...
    run_cmake(SubTestN)

   where ``SubTest1`` through ``SubTestN`` are sub-test names each
   corresponding to an independent CMake run and project configuration.

   One may also add calls of the form::

    run_cmake_command(SubTestI ${CMAKE_COMMAND} ...)

   to fully customize the test case command-line.

   Alternatively, if the test is to cover running ``ctest -S`` then use::

    include(RunCTest)
    run_ctest(SubTest1)
    ...
    run_ctest(SubTestN)

   and create ``test.cmake.in``, ``CTestConfig.cmake.in``, and
   ``CMakeLists.txt.in`` files to be configured for each case.

4. Create file ``<Test>/CMakeLists.txt`` in the directory containing::

    cmake_minimum_required(...)
    project(${RunCMake_TEST} NONE) # or languages needed
    include(${RunCMake_TEST}.cmake)

   where ``${RunCMake_TEST}`` is literal.  A value for ``RunCMake_TEST``
   will be passed to CMake by the ``run_cmake`` macro when running each
   sub-test.

5. Create a ``<Test>/<SubTest>.cmake`` file for each sub-test named
   above containing the actual test code.  Optionally create files
   containing expected test results:

   ``<SubTest>-result.txt``
    Process result expected if not "0"
   ``<SubTest>-stdout.txt``
    Regex matching expected stdout content
   ``<SubTest>-stderr.txt``
    Regex matching expected stderr content, if not "^$"
   ``<SubTest>-check.cmake``
    Custom result check.

   Note that trailing newlines will be stripped from actual and expected
   test output before matching against the stdout and stderr expressions.
   The code in ``<SubTest>-check.cmake`` may use variables

   ``RunCMake_TEST_SOURCE_DIR``
    Top of test source tree
   ``RunCMake_TEST_BINARY_DIR``
    Top of test binary tree

   and an failure must store a message in ``RunCMake_TEST_FAILED``.