CMake/Tests/RunCMake
Brad King 023de565d3 Optionally exclude implicit link directories via environment
A misconfigured compiler may pass extraneous implicit link directories
to its linker.  If they are in `CMAKE_<LANG>_IMPLICIT_LINK_DIRECTORIES`,
CMake may generate extra `-L` flags on mixed-language link lines that
break linking.  Add an environment variable that users can set to work
around such misconfiguration of their compilers.
2023-05-25 13:42:58 -04:00
..
ABI
add_compile_definitions COMPILE_DEFINITIONS property: ensure leading -D is removed in all cases 2022-12-13 16:54:56 +01:00
add_custom_command Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
add_custom_target Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
add_dependencies Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
add_executable Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
add_library Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
add_link_options Tests: Remove or silence instances of ${CMAKE_CFG_INTDIR} 2023-02-03 11:24:56 -05:00
add_subdirectory Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
add_test Add deprecation warnings for policies CMP0114 and below 2023-02-01 17:01:38 -05:00
alias_targets Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
Android
AndroidMK cmInstallExportGenerator: expose the temporary directory 2022-04-28 09:13:48 -04:00
AndroidTestUtilities
AppleSilicon macOS: Suppress default '-arch arm64' with CMAKE_<LANG>_COMPILER_TARGET 2023-03-15 10:50:26 -04:00
AppleTextStubs Apple: Handle generation and comsuption of text-based stubs (.tbd files) 2023-03-01 12:23:28 +01:00
AutoExportDll Merge topic 'AutoExport-vftable' 2023-02-15 08:58:44 -05:00
Autogen Autogen: set SKIP_LINTING ON for generated files 2023-05-16 10:56:25 -04:00
block block: Fix variable scope protection from modification by subdirectories 2022-11-07 14:24:24 -05:00
build_command Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
BuildDepends Ninja: Fix Fortran INCLUDE directive dependencies when not preprocessing 2023-05-09 09:56:42 -04:00
BundleUtilities Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
Byproducts Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CacheNewline Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CheckCompilerFlag Tests: Fix RunCMake infrastructure for LCC and CMP0129 2023-04-03 09:42:22 -04:00
CheckIPOSupported Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CheckLinkerFlag Tests: Clarify RunCMake.Check* case names 2022-10-06 10:29:42 -04:00
CheckModules codespell: Fix typos 2023-05-22 16:51:15 -04:00
CheckSourceCompiles CheckSourceCompiles: Add support for Swift 2022-10-24 12:39:21 -04:00
CheckSourceRuns Tests: Move TryCompile check module cases to RunCMake.Check* 2022-10-06 10:29:42 -04:00
ClangTidy Add generator expression support to static code analysis hooks 2023-03-27 11:48:41 -04:00
cmake_host_system_information cmCMakeHost*Command: Report keyword errors via argument parser results 2022-07-22 10:32:24 -04:00
cmake_language Add new flow-control commands for variables and policies scopes management 2022-08-22 16:25:53 +02:00
cmake_minimum_required Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMAKE_MSVCIDE_RUN_PATH
cmake_parse_arguments Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
cmake_path Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CMakeDependentOption CMakeDependentOption: allow in depends the use of . 2022-09-21 13:19:45 -04:00
CMakePresets presets: add support for macro expansion to includes 2023-04-26 10:03:53 -04:00
CMakePresetsBuild presets: Improve JSON parser and error messages 2023-03-29 10:41:19 -04:00
CMakePresetsPackage presets: Improve JSON parser and error messages 2023-03-29 10:41:19 -04:00
CMakePresetsTest presets: Improve JSON parser and error messages 2023-03-29 10:41:19 -04:00
CMakePresetsWorkflow presets: Improve JSON parser and error messages 2023-03-29 10:41:19 -04:00
CMakeRelease Utilities/Release: Add windows-arm64 package to file table 2022-06-13 15:27:34 -04:00
CMakeRoleGlobalProperty
CMP0004 Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CMP0019 Tests: Teach RunCMake to optionally ignore policy version deprecation warnings 2023-02-09 16:20:31 -05:00
CMP0022 Tests: Teach RunCMake to optionally ignore policy version deprecation warnings 2023-02-09 16:20:31 -05:00
CMP0026 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0027
CMP0037 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0038 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0039 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0040 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0041 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0042 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0043 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0045 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0046 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0049 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0050 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0051 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0053 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0054 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0055 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0057 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0059
CMP0060 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0064 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0065 Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
CMP0068
CMP0069
CMP0081 Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CMP0102 Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CMP0104 Add deprecation warnings for policies CMP0108 and below 2022-10-12 12:40:52 -04:00
CMP0106 Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CMP0111 Add deprecation warnings for policies CMP0114 and below 2023-02-01 17:01:38 -05:00
CMP0115 Tests/RunCMake: Match 'Tried extensions' output more robustly 2023-03-09 14:35:05 -05:00
CMP0116
CMP0118 target_sources: Fix backtrace on missing source 2023-02-28 18:07:36 -05:00
CMP0119
CMP0121 GenEx LIST: list operations 2023-04-16 12:00:20 +02:00
CMP0125 Tests: Make RunCMake.CMP0125 robust to external filesystem content 2022-03-07 11:40:30 -05:00
CMP0126
CMP0129
CMP0132 CMP0132: Don't set compiler environment variables on first run 2022-03-29 09:42:59 -04:00
CMP0135 FetchContent: Respect the CMP0135 policy setting 2022-06-02 11:10:27 +10:00
CMP0139 Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CMP0150 ExternalProject/FetchContent: Support relative remote URLs 2023-04-26 16:30:36 +08:00
Color color: Add tests for CMAKE_COLOR_DIAGNOSTICS 2022-03-08 17:29:12 -05:00
CommandLine fileapi: Extend codemodel targets/compileGroups with Apple frameworks 2023-05-19 12:10:20 +02:00
CommandLineTar Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CompatibleInterface Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CompileDefinitions Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CompileFeatures codespell: Fix typos 2023-05-22 16:51:15 -04:00
CompilerArgs Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CompilerChange Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CompilerLauncher Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CompilerNotFound
CompilerTest Tests: Test more CMakeTest*Compiler.cmake fallbacks 2022-09-29 09:26:23 -04:00
CompileWarningAsError NVHPC: warnings as error flag is "-Werror" 2022-07-01 08:05:19 -04:00
Configure Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
configure_file Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
continue Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CPack Tests: Fix RunCMake infrastructure for LCC and CMP0129 2023-04-03 09:42:22 -04:00
CPackCommandLine
CPackConfig Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CPackInstallProperties Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CPackSymlinks Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
Cppcheck Add generator expression support to static code analysis hooks 2023-03-27 11:48:41 -04:00
Cpplint Add generator expression support to static code analysis hooks 2023-03-27 11:48:41 -04:00
CrosscompilingEmulator Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CSharpCustomCommand Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CSharpReferenceImport Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CTest Dart,FindDart: Add policy to remove these modules 2023-02-28 08:43:45 -05:00
ctest_build Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
ctest_cmake_error Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ctest_configure Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ctest_coverage Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ctest_disabled_test
ctest_environment Tests: Factor out RunCMake ctest environment isolation 2022-11-14 11:05:56 -05:00
ctest_fixtures Tests: Factor out RunCMake ctest environment isolation 2022-11-14 11:05:56 -05:00
ctest_labels_for_subprojects
ctest_memcheck codespell: Fix typos 2023-05-22 16:51:15 -04:00
ctest_skipped_test
ctest_start Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ctest_submit Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ctest_test Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ctest_update Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ctest_upload Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CTestCommandExpandLists Tests: Avoid using CMake{Output,Error}.log files 2023-01-18 16:40:19 -05:00
CTestCommandLine Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CTestResourceAllocation CMake code rely on cmList class for CMake lists management (part. 1) 2023-04-24 10:41:10 +02:00
CTestTimeout ctest: Fix TIMEOUT test property with value 0 with --timeout flag 2023-05-04 16:58:03 -04:00
CTestTimeoutAfterMatch Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
CUDA_architectures Modules: Use new keyword-dispatched try_compile signature 2022-09-14 07:52:16 -04:00
CXXModules cxxmodules: Fix exported path to installed module sources in subdirs 2023-05-23 15:01:52 -04:00
define_property define_property(): Change constraints of INITIALIZE_FROM_VARIABLE 2022-03-23 16:39:32 +11:00
DependencyGraph
DependencyProviders Dependency providers: Add find_package and FetchContent support 2022-05-25 08:46:18 +10:00
DisallowedCommands Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
ExcludeFromAll Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
execute_process cmExecuteProcessCommand: Report keyword errors via argument parser results 2022-07-22 10:32:24 -04:00
export Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ExportCompileCommands
ExportImport Genex: Add $<BUILD_LOCAL_INTERFACE:...> genex 2022-11-17 09:31:27 -05:00
ExportWithoutLanguage
ExternalData Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ExternalProject Merge topic 'ExternalProject-revert-install' 2023-03-03 09:22:46 -05:00
ExtraGenerators Deprecate "extra" generators in favor of cmake-file-api(7) 2023-02-15 10:48:26 -05:00
FeatureSummary Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
FetchContent FetchContent: Reject CMAKE_TOOLCHAIN_FILE env var in sub-build 2023-02-24 17:17:36 +11:00
FetchContent_find_package FetchContent: Ignore EXACT for redirected find_package() calls 2022-09-11 18:36:31 +10:00
file codespell: Fix typos 2023-05-22 16:51:15 -04:00
File_Archive Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
File_Configure cmFileCommand: Report keyword errors via argument parser results 2022-07-22 10:32:24 -04:00
File_Generate codespell: Avoid escape sequence that looks like misspelled "nodes" 2023-05-22 16:50:51 -04:00
file-CHMOD cmFileCommand: Report keyword errors via argument parser results 2022-07-22 10:32:24 -04:00
file-DOWNLOAD Tests: Add test for file(DOWNLOAD) with TLS_VERIFY 2023-02-10 12:22:00 -05:00
file-GET_RUNTIME_DEPENDENCIES file(GET_RUNTIME_DEPENDENCIES): Preserve casing for Windows PE binaries 2023-03-23 15:19:26 -04:00
file-RPATH file(RPATH): Restore tolerance of unknown formats if new RPATH is empty 2021-12-01 12:58:11 -05:00
FileAPI fileapi: Extend codemodel targets/compileGroups with Apple frameworks 2023-05-19 12:10:20 +02:00
FileAPIExternalSource
find_dependency Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
find_file Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
find_library Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
find_package FindPython{Interp,Libs}: Add policy to remove these modules 2023-03-30 12:05:09 -04:00
find_path Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
find_program Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
FindBoost Tests: Teach RunCMake.FindBoost to avoid finding an external Boost 2022-12-07 08:21:39 -05:00
FindGTK2 Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
FindLua Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
FindMatlab Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
FindOpenGL
FindOpenSSL Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
FindPkgConfig Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
FindSWIG Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
foreach
FPHSA Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
Framework Apple Frameworks: honor SYSTEM target property 2023-05-11 10:24:18 +02:00
function
GenerateExportHeader GenerateExportHeader: Fix Clang support on Windows 2023-02-23 09:19:06 +01:00
GeneratorExpression cmGeneratorExpressionNode: implement COMPILE_ONLY genex 2023-05-04 09:39:06 -04:00
GeneratorInstance VS: Add a variable to report the Visual Studio version build number 2022-12-07 17:49:04 -05:00
GeneratorPlatform VS: Select Windows SDK matching WindowsSDKVersion env var 2023-04-05 12:06:22 -04:00
GeneratorToolset codespell: Avoid escape sequence that looks like misspelled "nodes" 2023-05-22 16:50:51 -04:00
GenEx-COMPILE_LANG_AND_ID
GenEx-COMPILE_LANGUAGE Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
GenEx-DEVICE_LINK
GenEx-GENEX_EVAL
GenEx-HOST_LINK
GenEx-LINK_GROUP Check link libraries properties: fix performances regression 2022-09-07 15:20:53 +02:00
GenEx-LINK_LANG_AND_ID
GenEx-LINK_LANGUAGE
GenEx-LINK_LIBRARY codespell: Fix typos 2023-05-22 16:51:15 -04:00
GenEx-LIST GenEx LIST: list operations 2023-04-16 12:00:20 +02:00
GenEx-PATH PATH-genex: handle lists for path decomposition and transformations 2023-02-21 19:34:43 +01:00
GenEx-PATH_EQUAL Genex-PATH_EQUAL: path comparison 2022-06-01 15:28:54 +02:00
GenEx-TARGET_FILE Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
GenEx-TARGET_IMPORT_FILE Apple: Handle generation and comsuption of text-based stubs (.tbd files) 2023-03-01 12:23:28 +01:00
GenEx-TARGET_PROPERTY Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
GenEx-TARGET_RUNTIME_DLLS Add test for the new TARGET_RUNTIME_DLL_PATHS genex 2023-02-26 16:37:37 +01:00
get_filename_component Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
get_property Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
GetPrerequisites Tests: Improve RunCMake.GetPrerequisites sample executable selection 2022-11-02 13:45:05 -04:00
GNUInstallDirs Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
GoogleTest codespell: Fix typos 2023-05-22 16:51:15 -04:00
Graphviz
if Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
IfacePaths Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
include FindPython{Interp,Libs}: Add policy to remove these modules 2023-03-30 12:05:09 -04:00
include_directories Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
include_external_msproject Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
include_guard
IncludeWhatYouUse IWYU: Return error code if user enables error reporting 2023-04-25 11:18:36 -04:00
IncompatibleQt
InitialFlags
install Tests: Teach ISPC tests to run on macOS arm64 host 2023-05-10 10:04:48 -04:00
INSTALL_NAME_DIR
InterfaceLibrary Tests/RunCMake: Match 'Tried extensions' output more robustly 2023-03-09 14:35:05 -05:00
Languages Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
LinkerLauncher <LANG>_LINKER_LAUNCHER: Allow generator expressions 2023-02-02 11:58:56 -05:00
LinkItemValidation Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
LinkStatic Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
LinkWhatYouUse Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
list Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
load_cache
MacOSVersions codespell: Avoid escape sequence that looks like misspelled "nodes" 2023-05-22 16:50:51 -04:00
Make Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
math Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
MaxRecursionDepth find_package: Enforce maximum nesting depth below maximum recursion depth 2023-03-13 11:48:19 -04:00
message codespell: Fix typos 2023-05-22 16:51:15 -04:00
MetaCompileFeatures
MSVCDebugInformationFormat MSVC: Add abstraction for debug information format 2022-09-14 09:12:47 -04:00
MSVCRuntimeLibrary
MSVCRuntimeTypeInfo
MSVCWarningFlags
MultiLint TargetGenerator: Add SKIP_LINTING source property 2023-05-16 10:47:56 -04:00
Ninja codespell: Avoid escape sequence that looks like misspelled "nodes" 2023-05-22 16:50:51 -04:00
NinjaMultiConfig codespell: Avoid escape sequence that looks like misspelled "nodes" 2023-05-22 16:50:51 -04:00
no_install_prefix Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ObjectLibrary Tests/RunCMake: Match 'Tried extensions' output more robustly 2023-03-09 14:35:05 -05:00
ObsoleteQtMacros
option
ParseImplicitData Restore implicit include directory extraction for adaptive relative paths 2023-01-12 12:05:42 -05:00
ParseImplicitIncludeInfo Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
ParseImplicitLinkInfo Optionally exclude implicit link directories via environment 2023-05-25 13:42:58 -04:00
Policy
PolicyScope Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
PositionIndependentCode Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
PrecompileHeaders CMP0141: Fix PCH REUSE_FROM when MSVC_DEBUG_INFORMATION_FORMAT is empty 2022-11-15 06:57:02 -05:00
PrintHelpers Tests: Add tests for CMakePrintHelpers 2022-06-06 12:27:11 -04:00
project Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
project_injected Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
return return(): Propagate variables to result scope 2022-09-03 23:10:01 +02:00
RuntimePath
ScriptMode
separate_arguments Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
set Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
set_property Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
SourceProperties
string Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
Swift Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
SymlinkTrees Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
Syntax Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
target_compile_definitions COMPILE_DEFINITIONS property: ensure leading -D is removed in all cases 2022-12-13 16:54:56 +01:00
target_compile_features Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
target_compile_options cmTargetPropCommandBase: Restore ArgumentFlags enum value bool logic 2022-11-27 20:17:32 +11:00
target_include_directories
target_link_directories
target_link_libraries Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
target_link_libraries-ALIAS Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
target_link_libraries-LINK_GROUP genex-LINK_LIBRARY: ensure correct generation inside LINK_GROUP genex 2022-07-05 10:00:04 +02:00
target_link_libraries-LINK_LANG_AND_ID Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
target_link_libraries-LINK_LANGUAGE Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
target_link_libraries-LINK_LIBRARY Genex LINK_LIBRARY: Add support for framework with postfix 2022-09-21 16:14:36 +02:00
target_link_options
target_sources Tests/RunCMake: Match 'Tried extensions' output more robustly 2023-03-09 14:35:05 -05:00
TargetArtifacts Add option to add SOVERSION to DLL names 2023-02-27 09:18:34 -05:00
TargetObjects
TargetPolicies Xcode: Do not append per-config suffixes to library search paths 2022-09-15 10:27:23 -04:00
TargetProperties Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
test_include_dirs Tests: Isolate more RunCMake cases from external ctest environment values 2022-11-14 11:08:45 -05:00
ToolchainFile Warn if CMAKE_CROSSCOMPILING is true without CMAKE_SYSTEM_NAME set 2023-03-24 11:57:01 -04:00
TransformDepfile Link step: use linker dependency linker file 2023-05-03 17:08:07 +02:00
try_compile Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
try_run Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
UnityBuild Unity Build: Fix per-config sources in multi-config generators 2021-11-11 07:16:11 -05:00
UseSWIG
variable_watch Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
VerifyHeaderSets VERIFY_INTERFACE_HEADER_SETS: Add IWYU pragma: associated to verification file 2022-10-07 19:00:28 +01:00
VisibilityPreset Deprecate compatibility with CMake versions older than 3.5 2023-02-11 06:25:11 -05:00
VS10Project VS: Add CMake input files to ZERO_CHECK 2023-04-25 17:35:39 -04:00
VS10ProjectWinCE
VsDotnetSdk Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
VsNugetPackageRestore cmGlobalVisualStudio10Generator: Auto restore NuGet packages. 2022-01-22 06:35:41 -05:00
VSSolution Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
while Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
Win32GenEx
WorkingDirectory
WriteBasicConfigVersionFile
WriteCompilerDetectionHeader Tests/RunCMake: Update cmake_minimum_required versions 2023-02-11 06:24:22 -05:00
XcodeProject Tests: Split some RunCMake.XcodeProject cases into a separate test 2023-05-15 10:18:54 -04:00
XcodeProject-Device Tests: Split some RunCMake.XcodeProject cases into a separate test 2023-05-15 10:18:54 -04:00
XcodeProject-Embed Xcode: Allow bundling extensionkit extensions 2022-11-18 13:58:03 -06:00
AddRunCMakeTest.cmake Tests/RunCMake: Add script to auto-generate RunCMake test suite stub 2023-03-07 14:30:29 -05:00
CMakeLists.txt Merge topic 'skip-linting' 2023-05-18 09:24:17 -04:00
color_warning.c
exit_code.c
fake_build_command.c
FileAPIDummyFile.cmake
print_stdin.c
pseudo_cppcheck.c
pseudo_cpplint.c
pseudo_emulator_custom_command_arg.c
pseudo_emulator_custom_command.c
pseudo_emulator.c
pseudo_iwyu.c
pseudo_llvm-rc.c Tests: Suppress MSVC CRT deprecation warnings in pseudo_llvm-rc 2022-02-02 14:46:25 -05:00
pseudo_tidy.c clang-tidy: add <LANG>_CLANG_TIDY_EXPORT_FIXES_DIR property 2022-12-06 10:39:29 -05:00
README.rst Tests/RunCMake: Add script to auto-generate RunCMake test suite stub 2023-03-07 14:30:29 -05:00
RunCMake.cmake Tests: Teach RunCMake to ignore LLVMFlang -flang-experimental-exec warning 2023-05-09 09:23:36 -04:00
RunCTest.cmake ctest(1): Add CTEST_NO_TESTS_ACTION env var 2023-01-13 13:33:39 +01:00
showIncludes.c Ninja: Restore detection of msvc-wine showIncludes prefix 2023-05-15 15:34:55 -04: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``
    Regex matching expected process result, 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 when a specific platform expects differing stdout or stderr that
  can be done by adding a platform specific output file. These follow the
  naming convention of:
   ``<SubTest>-stdout-<platform_lower_case>.txt``
   ``<SubTest>-stderr-<platform_lower_case>.txt``

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

To speed up local testing, you can choose to run only a subset of
``run_cmake()`` tests in a ``RunCMakeTest.cmake`` script by using the
``RunCMake_TEST_FILTER`` environment variable. If this variable is set,
it is treated as a regular expression, and any tests whose names don't
match the regular expression are not run. For example::

  $ RunCMake_TEST_FILTER="^example" ctest -R '^RunCMake\.Example$'

This will only run subtests in ``RunCMake.Example`` that start with
``example``.

To speed up the process of creating a new ``RunCMake`` test, you can run a
script that will automatically perform steps 1 through 4 for you::

  cmake -DRunCMake_TEST_SUITE=<test suite name> -P Tests/RunCMake/AddRunCMakeTestSuite.cmake

Be sure to run this from the top-level CMake source directory.