Steven Boswell
f21158cdfe
VS: Honor VS_SETTINGS source file property on all sources
...
Extend the feature added by commit 2ce42f281f (VS: Add VS_SETTINGS
source file property, 2020-03-18, v3.18.0-rc1~449^2~3) to support
all source file types.
2021-09-09 14:19:28 -04:00
NAKAMURA Takumi
9e9ab61e2f
cmGlobalGenerator: Process targets in a stable order
...
`cmMakefile::Targets` is meant for efficient lookup but does not
have a stable order. Use `cmMakefile::OrderedTargets` instead.
2021-07-08 15:16:46 -04:00
Kinan Mahdi
31bbcd1905
VS: Fix CSharp sources inside build directory
...
Fixes : #22104
2021-05-03 11:25:42 -04:00
Brad King
c257c25419
add_custom_{command,target}: Add genex support to OUTPUT and BYPRODUCTS
...
Move rejection of `#`, `<`, and `>` characters in outputs and byproducts
to a generate-time check. This removes the front-end check that
disallowed generator expressions. The generators have already been
updated to handle them.
Fixes : #12877
2020-12-11 08:24:21 -05:00
Brad King
c814172e84
Merge topic 'csharp-source_group-bugfix'
...
8d87cfdbf3 VS: Fix regression in C# source links
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !5314
2020-10-06 06:47:19 -04:00
Kinan Mahdi
8d87cfdbf3
VS: Fix regression in C# source links
...
Fix logic used since commit ac6b18cd90 (CSharp: Add support for source
groups with out-of-source builds, 2020-02-18, v3.18.0-rc1~645^2).
Add a check of the physical file location for C# source groups.
2020-10-05 12:49:14 -04:00
Mark Jansen
7bda9a7fc7
VS: Make ImportLibary generation optional
...
Fixes : #21180
2020-09-30 12:11:54 -04:00
Brad King
b325484928
VS: Fix C language standard in target with C++ sources
...
Add C-language standard to target-wide C++ settings.
Fixes : #21195
2020-09-29 07:26:36 -04:00
Brad King
4391913133
Add INTERFACE libraries to generated buildsystem if they have SOURCES
...
INTERFACE libraries were created with the intention of collecting usage
requirements for use by other targets via `target_link_libraries`.
Therefore they were not allowed to have SOURCES and were not included in
the generated buildsystem. In practice, this has become limiting:
* Header-only libraries do have sources, they just do not compile.
Developers should be able to edit those sources (the header files)
in their IDE.
* Header-only libraries may need to generate some of their header
files via custom commands.
Some projects work around these limitations by pairing each interface
library with an `add_custom_target` that makes the header files and
custom commands appear in the generated buildsystem and in IDEs.
Lift such limitations by allowing INTERFACE libraries to have SOURCES.
For those with sources, add a corresponding build target to the
generated buildsystem.
Fixes : #19145
2020-08-07 08:46:32 -04:00
Jean-Christophe Fillion-Robin
207373802e
Fix typos identified using codespell
...
See https://github.com/codespell-project/codespell#readme
The following command was used:
```
codespell -q6 --skip="\
.git,\
*.json,\
./Copyright.txt,\
./Help/command/foreach.rst,\
./Help/prop_test/REQUIRED_FILES.rst,\
./Help/variable/CTEST_COVERAGE_COMMAND.rst,\
./Modules/CMakeCheckCompilerFlagCommonPatterns.cmake,\
./Modules/CMakeRCInformation.cmake,\
./Modules/Internal/CPack/NSIS.template.in,\
./Modules/FindMatlab.cmake,\
./Modules/MatlabTestsRedirect.cmake,\
./Modules/Platform/Windows-Clang.cmake,\
./Modules/Platform/Windows-Intel-Fortran.cmake,\
./Modules/Platform/Windows-MSVC.cmake,\
./Source/CMakeVersion.cmake,\
./Source/cmConvertMSBuildXMLToJSON.py,\
./Source/cmCreateTestSourceList.cxx,\
./Source/cmGlobalVisualStudio10Generator.cxx,\
./Source/cmExportBuildFileGenerator.cxx,\
./Source/cmExportInstallAndroidMKGenerator.cxx,\
./Source/cmExportInstallFileGenerator.cxx,\
./Source/cmExportSet.cxx,\
./Source/cmExportTryCompileFileGenerator.cxx,\
./Source/cmFindPackageCommand.cxx,\
./Source/cmInstallCommand.cxx,\
./Source/cmGeneratorExpressionLexer.cxx,\
./Source/cmLocalVisualStudio7Generator.cxx,\
./Source/cmOrderDirectories.cxx,\
./Source/cmTarget.cxx,\
./Source/kwsys/*,\
./Source/QtDialog/CMakeSetupDialog.ui,\
./Source/CPack/WiX/cmWIXRichTextFormatWriter.cxx,\
./Source/CTest/cmParseCoberturaCoverage.h,\
./Tests/CMakeTests/ImplicitLinkInfoTest.cmake.in,\
./Tests/RunCMake/CPack/tests/DMG_SLA/English.license.rtf,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.license.txt,\
./Tests/RunCMake/CPack/tests/DMG_SLA/German.menu.txt,\
./Tests/RunCMake/GoogleTest/xml_output.cpp,\
./Tests/RunCMake/Make/TargetMessages*,\
./Utilities/*,\
" \
-L "\
dependees,\
endwhile,\
fo,\
filetest,\
helpfull,\
nd,\
objext,\
stoll,\
supercedes,\
superceded,\
vas,\
varn,\
"
```
2020-07-22 12:44:47 -04:00
Kinan Mahdi
3fd07d30bf
VS: Enable DOTNET_TARGET_FRAMEWORK properties all target types
...
This makes them compatible with `VS_PACKAGE_REFERENCES` and, in
particular, fixes nuget package references in combination with install
targets.
Fixes : #20764
2020-06-05 08:01:59 -04:00
Robert Maynard
9f4eb352fe
Unity Builds: Support explicit specification of sources to groups
...
Instead of having CMake determine which files should go into each
unity file, the user can now use explicitly state the mapping.
2020-05-07 11:13:34 -04:00
Julien Jemine
197b4cbe18
VS: Add option for per-target PlatformToolset
...
Add a `VS_PLATFORM_TOOLSET` target property to set `PlatformToolset` in
the `.vcxproj` file for specific targets. Document that this is safe
only when the named toolset uses the same underlying compiler as the
primary toolset.
Fixes : #17429
2020-04-29 07:35:57 -04:00
Matt Davies
2ca1102f83
VS: Test VS_SETTINGS and VS_SOURCE_SETTINGS_<tool> properties.
2020-03-26 16:01:42 +00:00
Brad King
b78a68f98b
Merge topic 'csharp-out-of-source-groups'
...
ac6b18cd90 CSharp: Add support for source groups with out-of-source builds
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4374
2020-02-28 14:15:56 -05:00
Kinan Mahdi
ac6b18cd90
CSharp: Add support for source groups with out-of-source builds
...
This also fixes support for multiple sources of the same name in
different directories. Add a test for both problems.
Issue: #19505
2020-02-28 11:42:01 -05:00
Alexander Boczar
7c944da757
VS: Add target property to explicitly control solution deployment
...
Add a `VS_SOLUTION_DEPLOY` property to control solution deploy mark.
Fixes : #20346
2020-02-25 10:24:23 -05:00
Brad King
0bf9589bf1
Merge topic 'csharp-no-valued-macros'
...
effd4d0569 CSharp: Do not pass definitions with values
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4267
2020-01-27 10:03:26 -05:00
Sumit Bhardwaj
effd4d0569
CSharp: Do not pass definitions with values
...
The Microsoft C# tooling does not accept definitions with values.
Filter them out.
Fixes : #19817
2020-01-24 14:43:37 -05:00
Brad King
786b56942b
Merge topic 'vs-dotnet-standard-core'
...
ae1e1909a1 VS: Add support for .NET Standard and .NET Core
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4240
2020-01-24 10:55:26 -05:00
Joerg Bornemann
ae1e1909a1
VS: Add support for .NET Standard and .NET Core
...
Fixes : #20105
2020-01-24 09:11:05 -05:00
Cristian Adam
a55df20499
Multi-Ninja: Add precompile headers support
...
Fixes : #19789
2020-01-17 23:17:35 +01:00
Brad King
6e6f5afd03
Merge topic 'unity-lang-filename'
...
274a6f3699 Unity Build: include language in generated source file name
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4223
2020-01-15 13:37:33 -05:00
Cristian Adam
274a6f3699
Unity Build: include language in generated source file name
...
Fixes : #20206
2020-01-14 18:48:08 +01:00
Brad King
37a30f228a
Merge topic 'fix-vs-winrt-by-default'
...
557ea4614e VS: Change CMAKE_VS_WINRT_BY_DEFAULT to not implicitly enable WinRT
7bcef355bf Vs: Add test for VS_WINRT_BY_DEFAULT
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4127
2019-12-17 11:11:24 -05:00
Petr Polezhaev
557ea4614e
VS: Change CMAKE_VS_WINRT_BY_DEFAULT to not implicitly enable WinRT
...
Original behaviour would unconditionally enable WinRT for all projects
so source file flag generation code can acknowledge WinRT being present
and disable it for C language source files. An unintentional result of
that approach is that WinRT is enabled for ALL projects, including C++
projects/source files with no way to disable it
Instead use `CMAKE_VS_WINRT_BY_DEFAULT` as a hint that the platform is
WinRT-by-default and set global `CompileAsWinRT` flag to `false` unless
it was explicitly requested by either `WINRT_COMPONENT` option or `/ZW`
compilation option - similar to what Windows Phone/Windows Store
platform logic does
In case WinRT compilation is enabled for a project by either of
aforementioned methods, C language source file override logic will still
kick in and disable CompileAsWinRT for C source files
Fixes : #20063
2019-12-16 13:46:59 -05:00
Brad King
fe7626da54
Merge topic 'pch-force-include'
...
c5c218fa0d PCH: Append pch header file to list of forced include files
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !4135
2019-12-16 10:04:03 -05:00
Petr Polezhaev
7bcef355bf
Vs: Add test for VS_WINRT_BY_DEFAULT
2019-12-16 15:00:44 +03:00
Cristian Adam
c5c218fa0d
PCH: Append pch header file to list of forced include files
...
Fixes : #20088
2019-12-13 15:21:27 +01:00
Brad King
cb165b8b79
Merge topic 'source_group-tree'
...
3c0ca5a9d9 source_group: ensure that passed file is not a directory
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !3979
2019-11-05 11:30:27 -05:00
Mateusz Janek
3c0ca5a9d9
source_group: ensure that passed file is not a directory
...
Fixes : #19769
2019-11-04 13:37:41 -05:00
Brad King
b34b4c5eac
Merge topic 'vs-vctargetspath'
...
e7d57bc3c3 VS: Propagate CMAKE_VS_GLOBALS into custom targets
45b4b4b930 VS: Propagate CMAKE_VS_GLOBALS into compiler id projects
548e9051a4 VS: Add support to override VCTargetsPath through toolset
99e83d4235 cmake: Teach --build mode to load CMAKE_GENERATOR_TOOLSET
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !3817
2019-10-18 09:01:48 -04:00
Alexander Boczar
45b4b4b930
VS: Propagate CMAKE_VS_GLOBALS into compiler id projects
...
Issue: #19708
2019-10-17 10:18:52 -04:00
Alexander Boczar
548e9051a4
VS: Add support to override VCTargetsPath through toolset
...
Fixes : #19708
2019-10-15 13:28:45 -04:00
Charly Mourglia
89ff3ee779
VS: Add VS_DOTNET_DOCUMENTATION_FILE property
...
Add a `VS_DOTNET_DOCUMENTATION_FILE` target property to tell VS
generators to add a `DocumentationFile` setting in `.csproj` files.
Fixes : #19784
2019-10-15 11:44:55 -04:00
Cristian Adam
e6e189e02b
PCH: Report error when setting COMPILE_PDB_NAME property
...
Reusable precompile headers require specific COMPILE_PDB_NAME property
values. Report error if the user tries to set a different value.
2019-10-01 18:33:40 +02:00
Brad King
ac4d6d4a9d
Merge topic 'unity-build'
...
7786a05c70 Unity build: Add XCode support
1353802af3 Unity build: Add unit tests
8dfeb5d278 Unity build: Add support for Visual Studio generator
7114c141e2 Unity build: Add support for Ninja and Makefile generators
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Stanislav Ershov <digital.stream.of.mind@gmail.com >
Acked-by: Evgeniy Dushistov <dushistov@mail.ru >
Acked-by: Viktor Kirilov <vik.kirilov@gmail.com >
Merge-request: !3611
2019-09-05 08:36:06 -04:00
Cristian Adam
383bf3b5e7
Precompile Headers: Fix Visual Studio 10 unit test
...
The unit test is more roboust, problems like c: vs C:
or having relative paths of cmake_pch.cxx instead of absolute
paths.
2019-09-03 15:50:42 +02:00
Cristian Adam
1353802af3
Unity build: Add unit tests
2019-08-30 20:39:32 +02:00
Brad King
fa36e2151d
Merge topic 'precompile-headers'
...
8da78d4efe Precompile headers: Update documentation
5772930164 Precompile headers: Add unit tests
519606704e Precompile headers: Add support for Visual Studio generators
28be170fbc Precompile headers: Add support for Xcode generator
b8626261e9 Precompile headers: Add methods to generate PCH sources
375d01c680 PCH: add example/test
9b6797e71d PCH: add target_precompile_headers command
0467a2f91b PCH: add PRECOMPILE_HEADERS to special properties
Acked-by: Kitware Robot <kwrobot@kitware.com >
Acked-by: Daniel Pfeifer <daniel@pfeifer-mail.de >
Acked-by: Ivan171 <heavenandhell171@gmail.com >
Acked-by: Stanislav Ershov <digital.stream.of.mind@gmail.com >
Acked-by: Steve Mokris <smokris@softpixel.com >
Acked-by: Evgeniy Dushistov <dushistov@mail.ru >
Acked-by: Danila Malyutin <flashmozzg@gmail.com >
Acked-by: Viktor Kirilov <vik.kirilov@gmail.com >
Acked-by: Lucas Zhao <zhaopf6@163.com >
Merge-request: !3553
2019-08-29 09:38:21 -04:00
Cristian Adam
5772930164
Precompile headers: Add unit tests
2019-08-28 11:47:51 -04:00
Daniel Eiband
8909a450a6
VS: Add support for generator expressions to VS_CONFIGURATION_TYPE
...
Generator expressions in target property VS_CONFIGURATION_TYPE might be used to
set the ConfigurationType to Utility for certain configurations to not build
the target while still linking to the target in other configurations.
Fixes : #19613
2019-08-26 15:22:43 +02:00
Mateusz Janek
bb6e95ca6d
source_group: Improved generated filters tests
2019-08-16 14:55:47 +02:00
Brad King
cb88632790
Merge topic 'vs-spectre-off'
...
f9b7c660d7 VS: Fix mapping of `-Qspectre-` flag
Acked-by: Kitware Robot <kwrobot@kitware.com >
Merge-request: !3629
2019-07-31 11:41:37 -04:00
Brad King
f9b7c660d7
VS: Fix mapping of -Qspectre- flag
...
The mapping for this flag was added by commit 43aa632f57 (VS: Populate
`-Qspectre-` flag table entry for v142, 2019-01-24, v3.14.0-rc1~74^2~7).
However, it did not do anything because the special logic added by
commit bb60ed6e72 (VS: Add flag table entry for -Qspectre, 2018-10-08,
v3.13.0-rc1~4^2) to move the `SpectreMitigation` element from
`ClCompile` to the top level only handled the presence of the setting
and not its value. Extend the special logic to carry the value too.
Fixes : #19535
2019-07-30 11:17:28 -04:00
Artalus
f4ed56ab63
Fix elseif() in place of else()
2019-07-03 11:57:53 +03:00
Matt Weir
cd92f8f8bf
VS: Add VS_DPI_AWARE target property
...
Enables setting the visual studio project property for Manifests,
controlling the DPI Aware setting.
2019-06-26 09:55:49 -04:00
Kinan Mahdi
42e14d90b1
VS: Added support for VS package references for nuget
2019-05-30 10:22:44 -04:00
Luca Cappa
2a9ff9703e
MSVC: Add support for /JMC (Just My Code)
2019-05-14 13:27:18 -04:00
Brad King
61f70e81a7
MSVC: Document and test behavior of empty MSVC_RUNTIME_LIBRARY
...
Extend tests added by commit fb3370b6a1 (MSVC: Add abstraction for
runtime library selection, 2019-04-10) to cover an empty value for
the property. It should result in no specific setting.
Issue: #19108
2019-04-22 08:48:44 -04:00