777ceaea94 cmMakefile: Delay custom command creation
4e37508c85 cmLocalGenerator: Refactor to use cmMakeSingleCommandLine
96e5042e46 cmCustomCommand: Explicitly pass backtrace on construction
3dc084ebc1 cmMakefile: Explicitly pass backtrace to GetCustomCommandTarget
e8360afbf7 cmPluginAPI: Correct typo in documentation of FinalPass
bf76a6b801 cmMakefile: Delay CheckTargetProperties and FinalPass to generate time
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3865
Move custom command creation to cmLocalGenerator and dispatch custom
commands in cmMakefile to generate time. Generators add custom commands
using the new methods provided by cmLocalGenerator.
Issue: #12877
Fix logic added by commit 81566557d5 (ObjC: Initialize ObjC/XX standard
properties from C/C++ counterparts, 2019-11-09) to account for cases
when the CXX standard is not explicitly set. Also, do not copy the
`*_STANDARD_REQUIRED` and `*_EXTENSIONS` properties unless we copied the
`*_STANDARD` property.
48d1456b3d UnityBuild: Resolve full paths of unity source includes
ec2f130aa9 cmFileAPI: Resolve full path in PCH source comparison
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4029
48d1456b3d UnityBuild: Resolve full paths of unity source includes
ec2f130aa9 cmFileAPI: Resolve full path in PCH source comparison
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4029
Fix a warning from clang-scanbuild:
warning: Value stored to 'chunk' during its initialization is never read
for (size_t itemsLeft = filtered_sources.size(), chunk = batchSize,
^~~~~ ~~~~~~~~~
Simply remove the initializer.
Since commit b80557c7bd (file(GENERATE): Evaluate early to allow
generating source files, 2014-11-04, v3.2.0-rc1~398^2) we create the
`cmSourceFile` instances marked with a `GENERATED` source file property
before tracing source dependencies. Move it to even earlier so that
steps in `cmGlobalGenerator::AddAutomaticSources` can operate on all
sources. This also avoids the accidental `O(n^2)` calls for `n` local
generators that we had previously.
This is also needed since commit 83c1657ff7 (Unity build: Generate
sources during Compute step, 2019-10-03) to support `file(GENERATE)`
outputs as sources in a target with `UNITY_BUILD` enabled.
If the target has C files, it will get a C PCH file.
The same for C++ files. The linker language is no
longer used to determine which language to use for
PCH.
Fixes: #19790
The unity build sources need to be added for all generators. Create
them during `cmGlobalGenerator::Compute` to avoid duplicating the calls
in every generator. We already handle Qt autogen there too.
Issue: #19789
dd0f304613 Objective C/C++: Add compiler standard detection
b515af782b Help: Add release note for Objective-C/C++ language support
9e66397c28 Languages: Add support for Objective-C++
80f120a85f Languages: Add support for Objective-C
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3811
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>
cmGeneratorExpression::Evaluate is a shortcut when only the evaluated string is
needed or an instance of cmCompiledGeneratorExpression cannot be cached.
Fixes: #19686
The quiet flag is false for all but one call to Evaluate. Make the quiet flag
a setter of cmCompiledGeneratorExpression to be able to remove it from the
Evaluate function signature.
Provide a standardized way to handle the C++ "standard" headers
customized to be used with current CMake C++ standard constraints.
Offer under directory `cm` headers which can be used as direct
replacements of the standard ones. For example:
#include <cm/string_view>
can be used safely for CMake development in place of the `<string_view>`
standard header.
Fixes: #19491
The precompile header file will be added to the list of files,
and be part of the newly "Precompile Header File" source group.
Also make sure the sources have the header as dependency.
Set the MinTypeNameLength option to an impossibly high value in order
to limit the diagnostics to iterators. Leave new expressions and cast
expressions for later.