CMake/Tests
Brad King 841272eb35 Xcode: Restore suppression of header maps
In commit 8527f42b96 (Xcode: Explicitly disable deprecated user include
path feature, 2023-01-31, v3.26.0-rc1~7^2) we dropped the Xcode build
setting `USE_HEADERMAP = NO` because Xcode 14's "Build Documentation"
feature (`xcodebuild RUN_DOCUMENTATION_COMPILER=YES`) fails in some
cases without header maps.  However, enabling header maps causes Xcode
to add `-iquote .../foo.hmap` and `-I .../bar.hmap` flags that can
change the intended header file search order based on the contents of
the header maps.  This can break existing projects.  Restore the
`USE_HEADERMAP = NO` setting to fix the header file search order.

Further investigation will be needed to resolve the problematic cases
with the Xcode 14 "Build Documentation" feature.  Meanwhile projects
encountering such cases can set the `XCODE_ATTRIBUTE_USE_HEADERMAP`
target property to `YES` themselves.

Fixes: #24418
Issue: #24379
2023-02-17 18:02:45 -05:00
..
AliasTarget Tests: Remove incidental use of C++98 compiler modes 2022-04-26 12:01:06 -04:00
Architecture
ArgumentExpansion
Assembler Tests: Pass -fno-lto to the Assembler test when using clang 2022-06-30 22:29:18 +00:00
BuildDepends
BundleGeneratorTest
BundleTest Source: Replace most calls to sprintf with snprintf 2021-10-25 18:23:13 -04:00
BundleUtilities
CFBundleTest
CheckCompilerRelatedVariables
CheckSourceTree Tests: Teach CheckSourceTree test to clean up more specific known files 2022-11-14 10:35:06 -05:00
CMakeCommands Xcode: Restore suppression of header maps 2023-02-17 18:02:45 -05:00
CMakeGUI Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
CMakeLib Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
CMakeOnly Find{BZip2,LibLZMA,ZLIB}: use *_VERSION as modern CMake 2022-11-07 16:22:31 -05:00
CMakeTestAllGenerators
CMakeTests Tests: Move CMake.FileDownload cases into RunCMake.file-DOWNLOAD 2022-11-18 09:02:15 -05:00
CoberturaCoverage
CommandLength
CommandLineTest
CompatibleInterface
CompileCommandOutput
CompileDefinitions
CompileFeatures Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
CompileOptions LCC: Add policy CMP0129 regarding interpreting LCC as GNU 2021-10-21 17:24:22 +03:00
Complex Tests: Fix some tests under CFLAGS=-DNDEBUG CXXFLAGS=-DNDEBUG 2022-09-01 12:29:22 -04:00
ComplexOneConfig Tests: Fix some tests under CFLAGS=-DNDEBUG CXXFLAGS=-DNDEBUG 2022-09-01 12:29:22 -04:00
ConfigSources
COnly
Contracts
CPackComponents CPack: Remove the deprecated PackageMaker generator 2022-05-05 08:36:44 +10:00
CPackComponentsDEB
CPackComponentsForAll CPack: Remove the deprecated PackageMaker generator 2022-05-05 08:36:44 +10:00
CPackComponentsPrefix
CPackNSISGenerator
CPackTestAllGenerators
CPackUseDefaultVersion
CPackUseProjectVersion
CPackUseShortProjectVersion
CPackWiXGenerator
CrossCompile
CSharpLinkFromCxx clang-format.bash: Use generic clang-format attribute 2023-01-18 11:48:49 -05:00
CSharpLinkToCxx
CSharpOnly
CSharpWin32GenEx
CTestConfig
CTestCoverageCollectGCOV Tests: Fix GCOV test in unusual environments 2022-08-16 15:36:50 -04:00
CTestLimitDashJ
CTestScriptMode
CTestTest
CTestTest2
CTestTestBadExe
CTestTestBadGenerator
CTestTestChecksum
CTestTestCostSerial
CTestTestCrash Tests: Prevent compiler optimizing away test code in CTestTestCrash 2021-11-02 09:03:27 -04:00
CTestTestCycle
CTestTestDepends
CTestTestEmptyBinaryDirectory
CTestTestFailure
CTestTestFdSetSize Tests/CTestTestFdSetSize: Support plain POSIX 2022-06-26 11:49:46 +03:00
CTestTestLabelRegExp
CTestTestLaunchers
CTestTestMissingDependsExe
CTestTestParallel
CTestTestResourceLock
CTestTestRunScript
CTestTestScheduler Tests: Add missing include in sleep sources 2022-04-26 12:01:06 -04:00
CTestTestSerialInDepends
CTestTestSerialOrder
CTestTestSkipReturnCode
CTestTestStopTime Tests: Add missing include in sleep sources 2022-04-26 12:01:06 -04:00
CTestTestSubdir
CTestTestTimeout
CTestTestUpload
CTestTestVerboseOutput
CTestTestZeroTimeout
Cuda Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
CudaOnly CUDA: device linking obeys CMAKE_CUDA_VISIBILITY_PRESET setting 2023-01-16 11:27:13 -05:00
CustComDepend
CustomCommand
CustomCommandByproducts ExternalProject: Add INSTALL_BYPRODUCTS option 2022-11-05 16:26:45 +00:00
CustomCommandWorkingDirectory
CxxDialect
CxxOnly
CxxSubdirC
DelphiCoverage
Dependency
DoubleProject
EmptyDepends
EmptyLibrary
EmptyProperty
Environment Tests/Environment: also test modifying ambient values 2021-10-29 10:54:02 -04:00
ExportImport Add EXPORT_NO_SYSTEM target property, deprecate IMPORTED_NO_SYSTEM 2022-06-17 22:38:07 +08:00
ExternalOBJ
ExternalProject Tests: handle a case when hg executable is broken 2022-06-28 11:12:04 -04:00
ExternalProjectLocal
ExternalProjectSourceSubdir
ExternalProjectSourceSubdirNotCMake
ExternalProjectSubdir
ExternalProjectUpdate
FindALSA
FindBLAS Find{BLAS,LAPACK}: Provide testing of BLA_SIZEOF_INTEGER 2021-10-05 23:41:36 +09:00
FindBoost Tests: Update FindBoost.TestPython for Python 3.11 and 3.12 2022-11-16 14:34:07 -05:00
FindBZip2
FindCups
FindCURL
FindDevIL
FindDoxygen
FindEnvModules
FindEXPAT
FindFontconfig
FindFreetype
FindGDAL
FindGIF
FindGit
FindGLEW
FindGLUT FindGLUT: Provide modern-named GLUT_INCLUDE_DIRS result variable 2021-12-20 09:53:33 -05:00
FindGnuTLS
FindGSL
FindGTest FindGTest: Add target for gmock library 2021-11-22 11:23:39 -05:00
FindGTK2
FindIconv
FindICU
FindImageMagick FindImageMagick: Define targets for specific components 2023-01-27 10:33:10 -05:00
FindIntl
FindJasper FindJasper: Add IMPORTED target 2021-10-06 11:28:09 -04:00
FindJNI FindJNI: added components and imported targets 2022-04-04 19:46:32 +02:00
FindJPEG
FindJsonCpp
FindLAPACK Find{BLAS,LAPACK}: Provide testing of BLA_SIZEOF_INTEGER 2021-10-05 23:41:36 +09:00
FindLibArchive
FindLibinput
FindLibLZMA
FindLibRHash
FindLibUV
FindLibXml2
FindLibXslt
FindLTTngUST
FindMatlab FindMatlab: Add NO_IMPLICIT_LINK_TO_MATLAB_LIBRARIES option to matlab_add_mex 2022-04-05 08:27:09 -04:00
FindMPI
FindODBC
FindOpenACC Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
FindOpenAL FindOpenAL: Add imported target 2022-06-22 09:16:19 -04:00
FindOpenCL
FindOpenGL
FindOpenMP
FindOpenSP FindOpenSP: Add module to find the OpenSP library 2022-08-30 13:55:07 -04:00
FindOpenSSL
FindPackageModeMakefileTest
FindPackageTest FindPackageTest: Replace VTK with Boost 2022-09-03 01:14:43 -04:00
FindPatch
FindPNG
FindPostgreSQL
FindProtobuf
FindPython FindPython: add support for Stable ABI 2022-11-29 16:48:08 +01:00
FindRuby
FindSDL
FindSQLite3
FindThreads
FindTIFF
FindVulkan FindVulkan: Add dxc (DirectX Shader Compiler) component 2022-07-20 17:06:31 -04:00
FindX11 FindX11: add xcb-xtest and xcb-keysyms 2022-03-10 11:41:31 -05:00
FindXalanC
FindXercesC
ForceInclude
Fortran LLVMFlang: Add support for mixed-language linking with Fortran 2022-10-11 15:38:48 -04:00
FortranC LLVMFlang: Add support for mixed-language linking with Fortran 2022-10-11 15:38:48 -04:00
FortranModules Tests/FortranModules: add case for modules after "end interface X" 2022-11-30 06:39:48 -05:00
FortranOnly Tests: Avoid using CMake{Output,Error}.log files 2023-01-18 16:40:19 -05:00
Framework
FunctionTest FunctionTest: Fix some test failure checks 2022-09-03 06:52:49 -04:00
Fuzzing
GeneratorExpression Genex: Fix CONFIG on imported target with no explicit mapping 2022-12-16 09:00:34 -05:00
GhsMulti GHS: Update tests for updated binary layout 2022-03-17 19:11:48 -04:00
GoogleTest
HIP HIP: Remove ROMClang compiler id and use Clang directly 2021-09-16 15:33:47 -04:00
ImportedSameName
IncludeDirectories Add SYSTEM target property 2022-06-16 00:25:27 +08:00
IncludeDirectoriesCPATH
InstallMode Fix: InstallMode tests fail on some platforms 2021-08-24 19:21:40 +02:00
InterfaceLibrary
InterfaceLinkLibraries LINK_LIBRARIES: Add support for LINK_ONLY genex 2022-03-24 08:23:55 -04:00
InterfaceLinkLibrariesDirect INTERFACE_LINK_LIBRARIES_DIRECT: Honor link dependencies through LINK_ONLY 2022-03-22 11:57:48 -04:00
iOSNavApp
ISPC
JacocoCoverage
Java
JavaExportImport
JavaJavah
JavaNativeHeaders
JavascriptCoverage
JCTest
Jump
LibName
LinkDirectory
LinkFlags
LinkLanguage
LinkLine
LinkLineOrder
LinkStatic LCC: Add policy CMP0129 regarding interpreting LCC as GNU 2021-10-21 17:24:22 +03:00
LoadCommand Source: Replace uses of sprintf with safer snprintf in CMake 3.24 branch 2022-11-03 11:58:31 -04:00
LoadCommandOneConfig Source: Replace uses of sprintf with safer snprintf in CMake 3.24 branch 2022-11-03 11:58:31 -04:00
MacroTest
MacRuntimePath
MakeClean
MathTest
MFC
MissingInstall
MissingSourceFile
Module CUDA: Add Device LTO support for nvcc 2022-07-22 10:34:45 -04:00
ModuleDefinition Tests: Update ModuleDefinition for IntelLLVM MSVC Frontend Variant 2022-08-01 19:34:49 -04:00
MSManifest Clang: embed windows manifests with GNU interface 2021-09-17 00:35:32 +02:00
MSVCDebugInformationFormat MSVC: Add test for debug information format 2022-09-14 09:12:47 -04:00
MSVCRuntimeLibrary
MumpsCoverage
NewlineArgs
ObjC
ObjCXX
ObjectLibrary Revert INTERFACE_LINK_LIBRARIES_DIRECT feature for 3.23 branch 2022-03-21 13:17:32 -04:00
OutDir
OutName
OutOfBinary
OutOfSource Makefiles: Restore path consistency in the global dispatch makefile 2022-08-03 14:58:47 -04:00
PDBDirectoryAndName
PerConfig
Plugin Tests: Remove incidental use of C++98 compiler modes 2022-04-26 12:01:06 -04:00
Policy0002
PolicyScope
PositionIndependentTargets clang-format.bash: Use generic clang-format attribute 2023-01-18 11:48:49 -05:00
PrecompiledHeader
PreOrder
Preprocess Tests: Fix some tests under CFLAGS=-DNDEBUG CXXFLAGS=-DNDEBUG 2022-09-01 12:29:22 -04:00
Properties
PythonCoverage
Qt4And5Automoc
Qt4Autogen
Qt4Deploy
Qt4Targets
Qt5Autogen
Qt6Autogen Tests: Add support for testing Qt6 2021-10-04 22:10:57 +11:00
QtAutogen Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
QtAutomocNoQt
ReturnTest
RunCMake Tests: Add test for file(DOWNLOAD) with TLS_VERIFY 2023-02-10 12:22:00 -05:00
RuntimePath
SBCS
SetLang LCC: Add policy CMP0129 regarding interpreting LCC as GNU 2021-10-21 17:24:22 +03:00
Simple
SimpleCOnly
SourceFileIncludeDirProperty
SourceFileProperty
SourceGroups
SourcesProperty
StagingPrefix
StringFileTest Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
SubDir
SubDirSpaces
SubProject
SwiftMix Xcode: Evaluate Swift compile definitions separately 2022-10-25 14:09:28 -04:00
SwiftMixLib Swift: Omit output-file-map when used as a linker 2022-10-28 16:44:26 -07:00
SwiftOnly Ninja: Emit swiftmodule from executable with exports 2023-01-19 11:49:24 -08:00
SystemInformation Merge topic 'configure-log' 2023-01-19 13:21:36 -05:00
TargetName Tests: Add missing return types to C function prototypes 2022-05-13 11:07:17 -04:00
TestDriver
Testing
TestsWorkingDirectory
TryCompile Tests: Fix TryCompile bad source case for clang-cl 15 on Windows 2022-11-10 12:57:55 -05:00
Unset
UseSWIG UseSWIG: Add support of perl5 language 2022-10-14 16:46:42 +02:00
VariableUsage
Visibility
VSAndroid
VSExcludeFromDefaultBuild
VSExternalInclude
VSGNUFortran Build: Modernize some foreach calls to use IN LISTS/IN ITEMS 2022-09-22 09:24:46 -04:00
VSManagedCustomCommand VS: Revert "Add missing label in C# project-build events" 2021-12-02 18:06:39 -05:00
VSMARMASM VS: Honor compile options for ASM_MARMASM 2023-01-26 12:56:25 -05:00
VSMASM VS: Honor compile options for MASM 2023-01-12 14:35:38 -05:00
VSMidl
VSNASM VS: Honor compile options for ASM_NASM 2023-01-26 13:51:49 -05:00
VSProjectInSubdir
VSResource
VSResourceNinjaForceRSP
VSWindowsFormsResx VS: Fix managed C++ project generation for VS 2022 2021-09-15 13:19:37 -04:00
VSWinStorePhone Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
VSXaml
WarnUnusedCliUnused
WatcomRuntimeLibrary OpenWatcom: Allow specifying the runtime library 2022-05-06 10:40:58 -04:00
Wrapping Revise C++ coding style using clang-format-15 2023-01-18 16:20:47 -05:00
X11 CPack: Remove the deprecated PackageMaker generator 2022-05-05 08:36:44 +10:00
XCTest
.NoDartCoverage
bootstrap.bat.in
BootstrapTest.cmake
CheckFortran.cmake Tests: Avoid using CMake{Output,Error}.log files 2023-01-18 16:40:19 -05:00
CheckSwift.cmake Tests: Avoid using CMake{Output,Error}.log files 2023-01-18 16:40:19 -05:00
CMakeBuildTest.cmake.in
CMakeCopyright.cmake
CMakeInstall.cmake
CMakeLists.txt FindImageMagick: Define targets for specific components 2023-01-27 10:33:10 -05:00
CTestUpdateBZR.cmake.in
CTestUpdateCommon.cmake Build: Modernize some foreach calls to use IN LISTS/IN ITEMS 2022-09-22 09:24:46 -04:00
CTestUpdateCVS.cmake.in
CTestUpdateGIT.cmake.in Tests: Fix CTest.UpdateGIT under repo-local defaultBranch config 2023-01-11 17:11:34 -05:00
CTestUpdateGIT.sh.in
CTestUpdateHG.cmake.in
CTestUpdateP4.cmake.in Build: Modernize some foreach calls to use IN LISTS/IN ITEMS 2022-09-22 09:24:46 -04:00
CTestUpdateSVN.cmake.in
EnforceConfig.cmake.in Deprecate Visual Studio 11 2012 generator 2022-09-27 11:45:50 -04:00
README.rst
test_clean.cmake.in

CMake Tests Directory
*********************

This directory contains the CMake test suite.
See also the `CMake Source Code Guide`_.

.. _`CMake Source Code Guide`: ../Help/dev/source.rst

Many tests exist as immediate subdirectories, but some tests
are organized as follows.

* ``CMakeLib/``:
  Source code, used for tests, that links to the ``CMakeLib`` library
  defined over in ``Source/``.

* ``CMakeOnly/``:
  Deprecated.  Tests that run CMake to generate a project but not build it.
  Superseded by ``Tests/RunCMake/``.

* ``Find*/``:
  Tests for specific find modules that can only be run on machines with
  the corresponding packages installed.  They are enabled in
  ``CMakeLists.txt`` by undocumented options used on CI builds.

* ``Module/``:
  Tests for specific CMake modules.

* ``RunCMake/``:
  Tests that run CMake and/or other tools while precisely checking
  their return code and stdout/stderr content.  Useful for testing
  error cases and diagnostic output.