Ruslan Baratov e3fc2899c8 Fix iOS combined feature for single architecture targets vor 9 Jahren
..
AutoExportDll 75004280af Fix auto export symbols for Dlls containing /bigobj for 64bit builds. vor 10 Jahren
BuildDepends 3477b26ff6 Ninja: Always re-run custom commands that have symbolic dependencies vor 10 Jahren
CMP0004 d05a9bd1e6 Cygwin: Avoid legacy warnings in RunCMake.* tests vor 12 Jahren
CMP0019 881613c4ab cmMakefile: Remove special handling of LINK_DIRECTORIES property. vor 10 Jahren
CMP0022 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0026 2514e4265c CMP0026: Use compatibility codepath until configure is finished (#15748) vor 10 Jahren
CMP0027 b1bbee3e9a Record more policies on targets when created vor 12 Jahren
CMP0028 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0037 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0038 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0039 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0040 d257d68138 add_custom_command: Clarify error when TARGET is out of scope (#15681) vor 10 Jahren
CMP0041 d430cb7c36 Tests: Fix failures when running under the default install prefix (#15566) vor 10 Jahren
CMP0042 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0043 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0045 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0046 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0049 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0050 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0051 911cc9a39e cmTarget: Evaluate CMP0026 and CMP0051 in calling context vor 11 Jahren
CMP0053 9ba91463e6 tests: test CMP0053 in WARN mode when watching variables vor 11 Jahren
CMP0054 d6a03b475e cmIfCommand: Issue CMP0054 warning with appropriate context. (#15802) vor 10 Jahren
CMP0055 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
CMP0057 aed6239e40 if: Implement new IN_LIST operator vor 10 Jahren
CMP0059 06f61c26cf Do not treat DEFINITIONS as a built-in directory property vor 10 Jahren
CMP0060 882f48e5ba Link libraries by full path even in implicit directories vor 10 Jahren
CMP0064 402bf096ec CMP0064: Fix recorded version of introduction to be 3.4 vor 10 Jahren
CMP0065 9784af1b50 CMP0065: Restrict the use of CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS vor 10 Jahren
COMPILE_LANGUAGE-genex b734fa4471 Genex: Allow COMPILE_LANGUAGE when processing include directories. vor 11 Jahren
CPack 27e6f74f29 CPack: Added tests for package name and group controll fields vor 10 Jahren
CPackConfig bc2e54db55 Introduction of CPACK_VERBATIM_VARIABLES variable vor 10 Jahren
CPackInstallProperties 15a8af21e8 Add an "installed file" property scope vor 11 Jahren
CPackSymlinks 5f686b8a6b Tests: Add case for CPack source package with symlinks vor 10 Jahren
CTest 75bd5ca06a Tests: Fix RunCMake.CTest to tolerate source line number changes vor 10 Jahren
CTestCommandLine e61973e1ab CTest: Fix regression in handling of a RUN_SERIAL test that fails vor 10 Jahren
CheckModules 73ae888506 RunCMake: Expect empty output by default. vor 11 Jahren
CommandLine 1787269ef3 cmake: Fix `-E time` argument passing to child vor 10 Jahren
CommandLineTar 6c4781baa9 Tests: Consolidate, refactor and extend -E tar tests vor 10 Jahren
CompatibleInterface 93790506f5 cmTarget: Simplify INTERFACE_INCLUDE_DIRECTORIES usage requirement lookup vor 11 Jahren
CompileDefinitions c1bf1a59ff CompileDefinitions: Add unit test for setting empty content. vor 10 Jahren
CompileFeatures 7235334a2f Project: Determine default language dialect for the compiler. vor 10 Jahren
CompilerChange 15610bb5b1 Drop use of configure_file IMMEDIATE option vor 12 Jahren
CompilerLauncher 698f75971b Add options to launch the compiler through tools like ccache or distcc vor 10 Jahren
CompilerNotFound afeb4eb243 nmake/jom: Only warn about bad VS environment if compiler not found. vor 10 Jahren
Configure b2282631f6 cmTarget: Do not mistake a preceding error for a CMP0049 failure vor 11 Jahren
CrosscompilingEmulator 9160d6c241 TestGenerator: Add CROSSCOMPILING_EMULATOR support. vor 10 Jahren
DisallowedCommands 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
ExportWithoutLanguage 66b290e7e2 export(): Process the export() command at generate time. vor 12 Jahren
ExternalData 230f2d6e70 ExternalData: Add option to recursively match under directories vor 10 Jahren
ExternalProject e494763997 ExternalProject: Added new USES_TERMINAL options vor 10 Jahren
FPHSA 73ae888506 RunCMake: Expect empty output by default. vor 11 Jahren
FeatureSummary 38ef2b7363 FeatureSummary: Print each feature info only once vor 11 Jahren
File_Generate 9e1689413f File(GENERATE): Process genex evaluation files for each language. vor 11 Jahren
FindMatlab 8444809c47 FindMatlab: fix reconfiguration of Matlab_ROOT_DIR vor 10 Jahren
FindPkgConfig 40249bccdf FindPkgConfig: set standard variables in the cache vor 10 Jahren
Framework e76ee2c006 iOS: Fix framework resource directory layout (#15848) vor 10 Jahren
GNUInstallDirs c8bd37ec68 GNUInstallDirs: Add special cases for certain prefixes vor 10 Jahren
GeneratorExpression ca6ba3fee5 Genex: Add a SHELL_PATH expression vor 10 Jahren
GeneratorPlatform be6a555d7e Tests: Test setting a generator platform in a toolchain file vor 11 Jahren
GeneratorToolset 65624c39e3 VS14: Add Visual Studio 14 generator (#14982) vor 11 Jahren
IfacePaths d430cb7c36 Tests: Fix failures when running under the default install prefix (#15566) vor 10 Jahren
IncludeWhatYouUse b3475ba57b Makefile: Fix <LANG>_INCLUDE_WHAT_YOU_USE with CTEST_USE_LAUNCHERS vor 10 Jahren
IncompatibleQt d05a9bd1e6 Cygwin: Avoid legacy warnings in RunCMake.* tests vor 12 Jahren
Languages 327490e698 enable_language: Allow CMakeDetermine<LANG>Compiler module to fail early vor 10 Jahren
LinkStatic 18d7f8fbfb Tests: Move LINK_SEARCH_{START,END}_STATIC case to dedicated test vor 10 Jahren
Make f0cad1939f Tests: Add test for TARGET_MESSAGES global property vor 10 Jahren
Ninja bd9c7f9b2c Ninja: Add policy to require explicit custom command byproducts vor 10 Jahren
ObjectLibrary 2c470b775a add_library: Allow arbitrary non-linked sources in OBJECT libraries vor 11 Jahren
ObsoleteQtMacros f69606d335 Qt4Macros: Port to use message(DEPRECATION) vor 12 Jahren
PolicyScope 378185fb7f Tests: Add case for unmatched cmake_policy({PUSH,POP}) vor 10 Jahren
PositionIndependentCode 2e60b5fcf7 cmTarget: Report origin of COMPATIBLE_INTERFACE properties. vor 12 Jahren
SolutionGlobalSections d05a9bd1e6 Cygwin: Avoid legacy warnings in RunCMake.* tests vor 12 Jahren
Swift 1aa29f0db6 Swift: Remove positive Swift language tests vor 10 Jahren
Syntax 821f91d6ab cmMakefile: Create a scoped context for parsing listfiles. vor 10 Jahren
TargetObjects affe9d56a2 Allow INTERFACE_SOURCES to specify $<TARGET_OBJECTS> (#14970) vor 11 Jahren
TargetPolicies 9784af1b50 CMP0065: Restrict the use of CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS vor 10 Jahren
TargetPropertyGeneratorExpressions 820777af03 Tests: Don't rely on ordering of targets in maps. vor 10 Jahren
TargetSources 6da65b3907 Allow export of targets with INTERFACE_SOURCES. vor 11 Jahren
VisibilityPreset 726e461b38 CMP0063: Split unit test by target type. vor 10 Jahren
WriteCompilerDetectionHeader 4cf5179c77 WCDH: Make it possible to generate multiple files. vor 11 Jahren
XcodeProject e3fc2899c8 Fix iOS combined feature for single architecture targets vor 9 Jahren
add_custom_command d257d68138 add_custom_command: Clarify error when TARGET is out of scope (#15681) vor 10 Jahren
add_custom_target e15a7075b5 Add an option for explicit BYPRODUCTS of custom commands (#14963) vor 11 Jahren
add_dependencies d05a9bd1e6 Cygwin: Avoid legacy warnings in RunCMake.* tests vor 12 Jahren
add_subdirectory 010c595986 Tests: Add case for add_subdirectory inside a function vor 10 Jahren
alias_targets d05a9bd1e6 Cygwin: Avoid legacy warnings in RunCMake.* tests vor 12 Jahren
build_command 226df303f9 CTest: Stop telling 'make' to ignore errors with -i vor 10 Jahren
cmake_minimum_required 7d47c69365 Drop compatibility with CMake < 2.4 vor 12 Jahren
cmake_parse_arguments c8c45a2c4e cmake_parse_arguments: Restore ;-list argument flattening vor 10 Jahren
configure_file 024e25e485 Tests: Add more signature tests to RunCMake.configure_file test vor 11 Jahren
continue 0de867dde2 continue: Add a new CMake language command for loop continuation (#14013) vor 11 Jahren
ctest_build 601ff0ec55 CTest: Optionally add a ChangeId attribute on XML Site tags vor 10 Jahren
ctest_configure f999dc0bbf ctest_configure: Add QUIET option vor 11 Jahren
ctest_coverage fc58bdb9ad ctest_coverage: Add QUIET option vor 11 Jahren
ctest_memcheck bf24b6c501 Tests: Guard more CTest tests against parallel execution. vor 10 Jahren
ctest_start 0699e0d3e4 Tests: Move CTestTestConfigFileInBuildDir into RunCMake.ctest_start vor 10 Jahren
ctest_submit 2859d9ef6b Tests: Extend ctest_submit host lookup failure matching (#15958) vor 10 Jahren
ctest_test 6a56c8247f Tests: Disable parallel test execution while running ctest_test vor 10 Jahren
ctest_upload ff1ddd2a73 ctest_upload: Add QUIET option vor 11 Jahren
execute_process f65bb82f36 execute_process: Improve stdout/stderr merging vor 10 Jahren
export 7e9f908ef5 export: Reject custom target exports earlier (#15657) vor 10 Jahren
file a2c068a7ce file: Teach GLOB to list directories optionally vor 10 Jahren
find_dependency a25b809f20 Tests: Check find_dependency empty extra arguments vor 12 Jahren
find_file ffc06c1239 Teach find_(library|file|path) to get prefixes from PATH (#15370) vor 11 Jahren
find_library ffc06c1239 Teach find_(library|file|path) to get prefixes from PATH (#15370) vor 11 Jahren
find_package b219ff94ac Tests: Add case for package version file unmatched policy scope vor 10 Jahren
find_path ffc06c1239 Teach find_(library|file|path) to get prefixes from PATH (#15370) vor 11 Jahren
find_program b7b3b675fd Merge topic 'fix-find_program-regression' vor 10 Jahren
get_filename_component e89ea3d190 get_filename_component: Teach new BASE_DIR parameter. vor 10 Jahren
get_property 45c5f8cad2 Add SOURCE_DIR and BINARY_DIR target properties vor 10 Jahren
if 6ffc432367 cmConditionEvaluator: Fix matching of `CMAKE_MATCH_*` values (#15944) vor 10 Jahren
include 77b581c2f0 Policies: omit warnings about unset policies when they are actually set to NEW vor 11 Jahren
include_directories a4bd30104f include_directories: Fix regression in BEFORE option (#15693) vor 10 Jahren
include_external_msproject 09ab207c66 Tests: Add generator platform support vor 11 Jahren
install a1ad098dc8 Tests: Avoid OS X 10.5 limitation warning in RunCMake.install test vor 10 Jahren
interface_library ac14cbf017 Allow add_dependencies() on INTERFACE libraries (#15414) vor 10 Jahren
list e5ca59b456 Tests: Move command failure cases into RunCMake infrastructure vor 10 Jahren
message 28f2d750ed Add -Werror and -Wno-error command-line options vor 10 Jahren
no_install_prefix 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
project 1c3918ff02 RunCMake: Remove unneeded files. vor 11 Jahren
return d124c41168 return: Add test for returning inside a foreach loop vor 11 Jahren
set d1b62185d6 Merge branch 'parent-scope-tests' into variable-pull-failure vor 11 Jahren
set_property ed258d606b Tests: Cover set_property for buildsystem directory properties vor 10 Jahren
string 2b18cdcaba string: add APPEND subcommand vor 10 Jahren
target_compile_features e0890d03a4 Features: Extend concept to C language. vor 11 Jahren
target_link_libraries 87f44b7525 Fix export of STATIC library PRIVATE non-target dependencies vor 10 Jahren
try_compile 33daec1ae9 Merge topic 'test-rerun-cmake' vor 11 Jahren
try_run 223c5cb70b try_run: Add test for bad link libraries. vor 11 Jahren
variable_watch d05a9bd1e6 Cygwin: Avoid legacy warnings in RunCMake.* tests vor 12 Jahren
while e5ca59b456 Tests: Move command failure cases into RunCMake infrastructure vor 10 Jahren
CMakeLists.txt cbbdfc2b61 CMakeParseArguments: add a RunCMake test suite vor 10 Jahren
README.rst 9b50388b09 Tests: Split RunCTest helper out of RunCMake.CTest(Submit|Memcheck) vor 11 Jahren
RunCMake.cmake 438fabf242 Tests: Teach RunCMake infrastructure to use custom check.cmake file vor 10 Jahren
RunCTest.cmake 9b50388b09 Tests: Split RunCTest helper out of RunCMake.CTest(Submit|Memcheck) vor 11 Jahren
pseudo_emulator.c 579c4bec6e Properties: Add CROSSCOMPILING_EMULATOR target property. vor 10 Jahren
pseudo_iwyu.c ada5ffce7b Add options to run include-what-you-use with the compiler vor 10 Jahren

README.rst

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 ``/``.

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

3. Create script ``/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 ``/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 ``/.cmake`` file for each sub-test named
above containing the actual test code. Optionally create files
containing expected test results:

``-result.txt``
Process result expected if not "0"
``-stdout.txt``
Regex matching expected stdout content
``-stderr.txt``
Regex matching expected stderr content, if not "^$"
``-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 ``-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``.