| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Some test cases added by commit 80f120a85f (Languages: Add support for
Objective-C, 2019-09-13, v3.16.0-rc1~44^2~3) have never actually been
run because the condition to enable them is never true. Fix the
condition and fix the tests to pass.
|
|
|
|
|
|
|
|
|
|
| |
Follow up commit 0761186949 (project: Add variable
CMAKE_PROJECT_INCLUDE_BEFORE, 2019-03-28, v3.15.0-rc1~294^2) with a
project-specific variant. This variable will be used similar to the
already existing `CMAKE_PROJECT_INCLUDE_BEFORE` and
`CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE` variables.
Fixes: #19854
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add entries in Modules and Modules/Platform to support
Objective-C++ compiler determination and identification.
Add Modules to check Objective-C++ compiler flags, source
compilations, program checks, etc...
Use OBJCXX as the designator of the language, eg:
project(foo OBJCXX)
Add various tests for Objective-C++ language features. Add
tests to preserve C++ handling of .M and .mm files when
Objective-C++ is not a configured language.
Co-authored-by: Cristian Adam <cristian.adam@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add entries in Modules and Modules/Platform to support
Objective-C compiler determination and identification.
Add Modules to check Objective-C compiler flags, source
compilations, program checks, etc...
Use OBJC as the designator of the language, eg:
project(foo OBJC)
Add various tests for Objective-C language features. Add
tests to preserve C++ handling of .m and .mm files when
OBJC is not a configured language.
Co-Authored-By: Cristian Adam <cristian.adam@gmail.com>
|
|
|
|
|
|
|
|
| |
Also drop the `CMakeOnly.MajorVersionSelection-PythonInterp_2` test
because some environments now have a plain `python` executable for
Python 3.
Fixes: #19536
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because cmake_parse_arguments() has been implemented as a native
command, there is no need to include(CMakeParseArguments) anymore.
Its inclusion has been removed from several CMake modules.
Tests/CMakeOnly/CMakeLists.txt has been changed to include the
*building* CMake's copy of CMakeParseArguments rather than the
*built* CMake's copy. This file included the *built* copy because
when this file was introduced, CMake could still be built with versions
that didn't supply cmake_parse_arguments(). Now, CMake requires 3.1 or
greater, where cmake_parse_arguments() existed but was still in the
form of a module, so we include it from the *building* CMake.
|
|
|
|
| |
This generator has been deprecated since CMake 3.9. Remove it.
|
|
|
|
| |
This generator has been deprecated since CMake 3.6. Remove it.
|
|
|
|
|
|
| |
Some machines have incomplete or otherwise broken installations of
specific packages. Allow local configuration to prevent the test from
failing on such packages if the version number cannot be extracted.
|
|
|
|
|
|
|
|
| |
This test has a timeout in case CMake gets into an infinite loop. The
default of 90 seconds should be plenty of time for the test to run
correctly since it does not actually do a build. However, busy machines
that run lots of tests in parallel may need a longer timeout. Give them
an option to extend it.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously if headers required to check if a struct has a member can be
compiled with C++ compiler only, the check would fail because the C
compiler fails. As a consequence, the result variable would be set to
false, even if the struct has that particular member.
Teach CHECK_STRUCT_HAS_MEMBER to accept a new optional argument LANGUAGE
that allows one to explicitly set the compiler to use. The new
signature is therefore:
CHECK_STRUCT_HAS_MEMBER (<struct> <member> <header> <variable>
[LANGUAGE <language>])
|
| |
|
| |
|
|
|
|
|
|
| |
For things where we may have 2 major versions of the same software
installed in parallel (think of Qt and Python) make sure our version
selection gets this right.
|
| |
|
|
|
|
|
|
| |
Add tests CMakeOnly.CompilerId(C|CXX|Fortran) to check that the basic
compiler tool path, vendor, and version variables have been set as
expected.
|
|
|
|
|
|
|
| |
Add a "CMakeOnly.find_library" test covering various cases involving
lib->lib64 (non-)conversion. Comment out cases involving mixed path
components "lib" and "lib64", such as lib/A/lib64 and lib64/A/lib, as
these are known to be broken currently.
|
| |
|
|
|
|
|
|
| |
If a variable exists called CMAKE_PROJECT_<projectName>_INCLUDE,
the file pointed to by that variable will be included as the last step
of the project command.
|
|
|
|
|
|
| |
Define a "check_language(<lang>)" macro to test whether <lang> can be
enabled. Cache the result in CMAKE_<lang>_COMPILER. Add a test case
covering expected results.
|
|\
| |
| |
| |
| | |
8de3b3d CheckCXXCompilerFlag test: make it a CMakeOnly test
|
| | |
|
|/ |
|
|
|
|
|
| |
This allows easy spotting of modules that output crappy messages and the
like.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit 183b9509 (Follow all dependencies of shared library private
dependencies, 2011-12-14) we honor LINK_INTERFACE_LIBRARIES when
following dependent shared libraries. The link interface properties may
form a cycle if set incorrectly by a project. Furthermore, the property
LINK_DEPENDENT_LIBRARIES may form a cycle if set incorrectly by hand
(though CMake should never generate one). In either case, do not follow
the cycle forever when following the dependent shared library closure.
We only need to add dependency edges to the constraint graph once.
Add "LinkInterfaceLoop" test to cover this case.
|
|/
|
|
|
| |
Now that we think that CheckSymbolExists really works for all cases it is time
to prove that. If this code fails too many other things will break.
|
|
Some tests only need to run CMake to configure and generate a build
tree, but not actually perform the build. Add a new "Tests/CMakeOnly"
directory dedicated for this purpose. Add a helper script to drive each
test by creating a fresh build tree and running CMake on it. Add macro
"add_CMakeOnly_test" to help create tests using the script.
|