| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
405dc7d19c Tests/CXXModules/scan_properties: use `ixx` extension
029ddc3410 cmVisualStudio10TargetGenerator: always specify scanning
6c9614cbf4 Tests/CXXModules: add a test case for VS generation without flags
34f4423851 cmVisualStudio10TargetGenerator: fix typo in flag name
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9104
|
| |
| |
| |
| |
| |
| |
| | |
Set that sources should not be scanned on a target-wide basis and then
enable on a per-TU basis as needed.
Fixes: #25519
|
| |
| |
| |
| |
| | |
It is case insensitive, so this only matches the official flag name and
still works.
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
17fd7fe2ae Tests/CXXModules: test Visual Studio synthetic target error
badb6ab120 VS: Explicitly disallow C++ modules provided by imported targets
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8895
|
| |
| |
| |
| |
| |
| |
| | |
The `-ifcOnly` flag is understood by MSBuild, but there are unresolved
questions about how to integrate with with CMake's model.
See: #25328
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Offer the capability, through variable `CMAKE_LINKER_TYPE`, as well as
the target property `LINKER_TYPE` to specify which linker must be used.
The implementation of this capability is specified by variables specific
to the language and linker type: `CMAKE_<LANG>_USING_LINKER_<TYPE>`.
Some definitions are provided as part of `CMake`.
For example, to select the `LLVM` linker rather than the standard one,
the type `LLD` should be specified through the variable `CMAKE_LINKER_TYPE`.
And, on `Apple`, `Linux` and some environments on `Windows`, the variable
`CMAKE_<LANG>_USING_LINKER_LLD` has value `-fuse-ld=lld`. And for `Windows`
environments based on `MSVC`, where the linker is used directly, the tool
`lld-link.exe` will be used rather than `link.exe`.
Fixes: #19174, #24254, #24990
|
|
|
|
|
|
|
|
|
|
|
| |
Now that scanning support is no longer experimental, the logic for
whether or not to scan C++ 20 sources is now important because all
projects are now exposted to the logic. Make the scanning rules explicit
in the documentation and rework the queries to localize all of the
associated logic.
A policy to handle the ultimate fallback logic will be implemented in a
following commit.
|
|
|
|
|
|
|
|
|
| |
When given objects via `target_link_libraries(consumer PRIVATE producer)` the VisualStudio solution adds the objects
under as `<Object>` entries in the solution.
This works for host side linking but isn't handled by
the cuda msbuild extensions. So to work around this we
manually add the objects as additional link items.
|
|\
| |
| |
| |
| |
| |
| |
| |
| | |
24a9b00f83 Merge branch 'cxxmodules-non-compiled-source-release' into cxxmodules-non-compiled-source
458e3974a8 cxxmodules: detect and message about non-compiled sources
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8773
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
cxxmodules-non-compiled-source
* cxxmodules-non-compiled-source-release:
cxxmodules: detect and message about non-compiled sources
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously an internal error was raised which ended up causing an
internal exception to be thrown. This is a typo situation that should
fall into an explicit error.
Fixes: #25207
|
|\ \ \
| |/ /
|/| |
| | |
| | |
| | |
| | | |
6ebff6ebf8 VS: Avoid unnecessary CUDA device linking for OBJECT libraries
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8794
|
| |/
| |
| |
| |
| |
| |
| | |
Without `CudaLink` fields, MSBuild tries to perform a device link step
for object libraries with CUDA_SEPARABLE_COMPILATION on them even when
not needed. This commonly was encountered when generating PTX or
OPTIX-IR output.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
571b5e1f2c cxxmodules: improve error messages for C++ module setup
8b4d32c18b cmStandardLevelResolver: add query for the effective standard level
17ddc4ac76 cmStandardLevelResolver: compare with static string literals
6f1dae2b01 cmStandardLevelResolver: use `cmStrCat` where possible
0d45d40e13 cmStandardLevelResolver: use character literals where possible
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8755
|
| |/
| |
| |
| |
| |
| |
| | |
Make it clear that:
- the quoted string is a target name; and
- C++ sources that export modules is the important detail.
|
| | |
|
| |
| |
| |
| |
| | |
There's no need to have this API on `cmSystemTools` with only a single
consumer.
|
| |
| |
| |
| |
| |
| |
| | |
The latter call is no longer post-bootstrap only since 596439b1bb
(cmCustomCommandGenerator: Add option to transform depfile, 2020-10-05)
via !5325. Convert callers to just use `cmCryptoHash` directly and
remove the bootstrap guard.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit df58dbb0e9 (VS: Add CMake input files to ZERO_CHECK,
2023-03-19, v3.27.0-rc1~157^2), projects that specify the same file both
as input to `configure_file` and as the `MAIN_DEPENDENCY` of a custom
command fail to configure. Revert the change pending further
investigation. Add a test case demonstrating the problem.
Issue: #24557
Fixes: #25149
|
| |
| |
| |
| |
| |
| |
| |
| | |
After b665966933 (cmComputeLinkInformation: track `OBJECT` library
dependencies, 2023-07-22), introduced in !8645 as a fix for #25112,
`OBJECT` libraries were tracked in a separate member to reduce the risk
of further regressions. This commit prepares consumers to handle
`OBJECT` libraries once they start appearing as link items.
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
d58253d155 clang-tidy: fix `performance-faster-string-find` lints
a19ec77200 clang-tidy: fix `readability-static-accessed-through-instance` lints
3d03629f20 cmWIXRichTextFormatWriter: remove identity cast
1df29567ac clang-tidy: fix `modernize-use-equals-default` lints
32fe862b8c clang-tidy: fix `readability-container-size-empty` lints
7eaab9a957 clang-tidy: fix `modernize-raw-string-literal` lints
ffa49c23aa clang-tidy: fix `readability-else-after-return` lints
4489e9a85c clang-tidy: fix `modernize-use-auto` lints
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !8668
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| |
| | |
`include-what-you-use` diagnostics, in practice, are specific to
the environment's compiler and standard library. Update includes
to satisfy IWYU for our CI job under Debian 12.
|
|\ \
| |/
| |
| |
| |
| |
| |
| | |
b9c99830c5 VS: Fix C++ modules in source files with the same name
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8596
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When multiple source files in a single target have the same name, we
already set `ObjectFileName` explicitly to avoid a `.obj` collision. For
C++ module sources, set `Module{Output,Dependencies}File` to avoid
`.ifc` and `.module.json` collisions.
Fixes: #25038
|
|\ \
| |/
| |
| |
| |
| |
| | |
d90a61d671 VS: Make C++ module BMIs public by default for shared libraries
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8549
|
| |
| |
| |
| |
| | |
Enable the `AllProjectBMIsArePublic` option for shared libraries in the
VS project files when building with C++20 modules support.
|
|/
|
|
|
| |
Remove code that is not used since commit 8d6f015d59 (Drop Visual Studio
10 2010 generator, 2022-09-26, v3.25.0-rc1~78^2).
|
|
|
|
|
| |
There's no backing implementation for header units anyways, so just
remove it for now.
|
|
|
|
|
|
|
|
| |
VS 17.6 now implements `ScanSourceforModuleDependencies` using the same
`cl /scanDependencies` scanner that our Ninja generator uses. It can
distinguish module internal partitions from module interface units based
on their content. Switch from `CompileAsCppModule` to `CompileAsCpp`
for `CXX_MODULES` sources so that MSBuild can scan and classify them.
|
| |
|
|
|
|
|
|
|
|
|
| |
Add all cmake input files to the `ZERO_CHECK` project. Place files
under `CMAKE_SOURCE_DIR` in a folder structure matching the directory
structure. This way they are easier to find, and Visual Studio does not
close them when reloading the project.
Fixes: #24557
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| | |
2def6a874b CUDA: Add support for CUBIN, FATBIN, and OPTIXIR compilation
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !8259
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In commit 33c15ae2b9 (VS: Build custom commands concurrently when
possible, 2023-01-19, v3.26.0-rc1~56^2) we added `BuildInParallel` to
custom commands in `.vcxproj` files, but that had to be reverted by
commit abb1c12162 (VS: Revert "Build custom commands concurrently when
possible", 2023-03-07, v3.26.0-rc6~3^2) because some projects may have
custom commands that accidentally rely on serial execution in MSBuild.
Add a policy to use `BuildInParallel` for custom commands in projects
that have been updated to set the policy to `NEW`.
Fixes: #18405
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | | |
d3c4c6d630 VS: Import default C++ props file before toolset-specific props file
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8294
|
| |/
| |
| |
| |
| |
| |
| | |
This avoids overwriting toolset-specific settings like `VCRedistDir`
with default settings.
Fixes: #22420
|
|\ \
| |/
|/|
| |
| |
| |
| | |
abb1c12162 VS: Revert "Build custom commands concurrently when possible"
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !8297
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since commit 33c15ae2b9 (VS: Build custom commands concurrently when
possible, 2023-01-19, v3.26.0-rc1~56^2) we add `BuildInParallel` to
custom commands in `.vcxproj` files. However, this can break existing
projects that implicitly rely on serial execution of custom commands.
For example, custom commands in our FindCUDA module run MSVC (via nvcc)
with a common `vc*.pdb` file, and therefore cannot run in parallel.
Revert use of `BuildInParallel` while leaving most of the infrastructure
for it in place. It can be restored later with an option or policy.
Fixes: #24576
Issue: #18405
|
| | |
|
|/
|
|
| |
Fixes #24416
|
|
|
|
|
|
|
|
| |
The Ninja and Makefile generators honor `target_compile_options` and
friends for ASM_NASM `.asm` sources. Teach the VS generator to
honor them too for consistency.
Issue: #24289
|
|
|
|
|
|
|
|
| |
The Ninja and Makefile generators honor `target_compile_options` and
friends for ASM_MARMMASM `.asm` sources. Teach the VS generator to
honor them too for consistency.
Issue: #24289
|