summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudio10TargetGenerator.h
Commit message (Collapse)AuthorAgeFilesLines
* VS: Revert "Add CMake input files to ZERO_CHECK"Brad King2023-08-021-4/+0
| | | | | | | | | | | 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
* VS: Make C++ module BMIs public by default for shared librariesAndreas Weis2023-06-221-0/+1
| | | | | Enable the `AllProjectBMIsArePublic` option for shared libraries in the VS project files when building with C++20 modules support.
* VS: Add CMake input files to ZERO_CHECKAlexander Neundorf2023-04-251-0/+4
| | | | | | | | | 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
* VS: Fix wrong appxManifest if OUTPUT_NAME != target nameSergey Markelov2023-02-161-0/+1
| | | | Fixes #24416
* VS: Do not concurrently build custom commands with generated MAIN_DEPENDENCYBrad King2023-01-251-1/+6
| | | | | | | | | | | | | | | | | | | | | Since commit 33c15ae2b9 (VS: Build custom commands concurrently when possible, 2023-01-19) several tests have failed intermittently with the VS generator. It seems that if the `BuildInParallel` setting is attached to a generated input: <CustomBuild Include="generated_input.txt"> <BuildInParallel Condition="...">true</BuildInParallel> <Command Condition="...">copy geneated_input.txt output.txt</Command> ... </CustomBuild> then MSBuild does not wait for the input to be generated before running the command. This occurs when using `add_custom_command`'s `MAIN_DEPENDENCY`, so avoid using `BuildInParallel` in that case. Issue: #18405
* VS: Build custom commands concurrently when possibleIvan Zinkevich2023-01-231-1/+2
| | | | | | Enable the `BuildInParallel` setting in VS project files when supported. Fixes: #18405
* clang-tidy: fix `readability-redundant-access-specifiers` lintsBen Boeckel2022-11-291-1/+0
|
* ASM_MARMASM: Add support for Microsoft ARM assembler languageIlia K2022-11-091-0/+4
| | | | | | https://learn.microsoft.com/en-us/cpp/assembler/arm/arm-assembler-reference Fixes: #23999
* Merge topic 'vs-fuzzer'Brad King2022-07-271-0/+1
|\ | | | | | | | | | | | | feeb9ae4ba VS: Add support for (lib)fuzzer /fsanitize=fuzzer flag Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !7471
| * VS: Add support for (lib)fuzzer /fsanitize=fuzzer flagFredrik Claesson2022-07-131-0/+1
| |
* | VS: Revert "Write ZERO_CHECK.proj for VS19 and above"Brad King2022-07-221-10/+0
|/ | | | | | | | | | | | | | | Revert commit a334f1b906 (VS: Write ZERO_CHECK.proj for VS19 and above, 2021-12-24, v3.24.0-rc1~607^2) and a supporting change from commit 7219988b00 (VS: Exclude ZERO_CHECK.proj from .sln for include_external_msproject, 2022-07-15, v3.24.0-rc4~1^2). The change was made to support `dotnet` tooling in addition to `msbuild`. However, not having `ZERO_CHECK` in the `.sln` breaks common interactive workflows. Revert the change for now. Later it can be re-introduced behind some kind of option that enables `dotnet` support. Fixes: #23726 Issue: #20227
* VS: Write ZERO_CHECK.proj for VS19 and aboveSumit Bhardwaj2022-02-211-0/+10
| | | | | | | | | For VS 19 and above, switch the format of project file to `VsProjectType::proj` for ZERO_CHECK target. The `ZERO_CHECK.proj` consists of primitive MSBuild commands only and has no dependency on any other targets or props files. This proj file is written as a `ProjectReference` for other targets, but is not written to the sln file.
* VS: Revert "Write ZERO_CHECK.proj for VS19 and above"Brad King2022-02-171-7/+0
| | | | | | | | Revert commit 925da7d428 (VS: Write ZERO_CHECK.proj for VS19 and above, 2021-12-24). Although its commit message was mistakenly not updated, it implemented the change for VS 2017 and below too. Since it was merged, I've discovered several subtle failures in nightly testing with VS 2017. Revert the change pending further investigation.
* VS: Write ZERO_CHECK.proj for VS19 and aboveSumit Bhardwaj2022-02-121-0/+7
| | | | | Use VsProjectType::proj as the file format for ZERO_CHECK and write ZERO_CHECK.proj as a msbuild dependency for other projects.
* Merge topic 'vs-package-restore'Brad King2022-01-241-0/+1
|\ | | | | | | | | | | | | | | | | | | 9aa7831f05 Presets: add resolve packages setting to build presets. b2f8f0bb87 cmGlobalVisualStudio10Generator: Auto restore NuGet packages. 193b8fca52 cmBuildOptions: Split build arguments into separate object. 6a10103493 Help: Update preset schema description for version 3 entries. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !6761
| * cmGlobalVisualStudio10Generator: Auto restore NuGet packages.Carsten Rudolph2022-01-221-0/+1
| |
* | VS: Add support for ASAN -fsanitize=address flagHanaa Elghobashi2022-01-201-0/+1
|/ | | | Fixes: #21081
* Refactor VsProjectType to its own headerSumit Bhardwaj2021-12-231-5/+2
| | | | | Move VsProject to its own header so that we can consolidate IsManaged and IsCSharp.
* VS: Add DOTNET_SDK property to generate SDK-style C# projectsSumit Bhardwaj2021-12-211-0/+3
| | | | | | | | Changes in cmVisualStudio10TargetGenerator::Generate to write .Net SDK-style project for VS generators VS 19 and above. Also adds documentation and tests. Issue: #20227
* cmVisualStudio10TargetGenerator: Factor out helper for classic MSBuild projectSumit Bhardwaj2021-12-151-0/+7
| | | | | | | | | In preparation for generating .Net SDK style project, refactor cmVisualStudio10TargetGenerato::Generate to split the functionality to write classic MSBuild project file. This commit only introduces a helper function and moves the functionality there. A later commit will add WriteSdkStyleProjectFile, the call to it, and the rest of the .Net SDK-style changes.
* cmVisualStudio10TargetGenerator: Change VsProjectType to be enum classSumit Bhardwaj2021-12-011-1/+2
|
* Source: Fix possible IWYU warnings in Windows generatorsNAKAMURA Takumi2021-11-191-2/+2
|
* VS: Honor VS_SETTINGS source file property on all sourcesSteven Boswell2021-09-091-1/+2
| | | | | | 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.
* cmVisualStudio10TargetGenerator: Factor out helper to write VS_SETTINGSSteven Boswell2021-09-091-4/+7
|
* VS: Add support for add_custom_command DEPFILEBrad King2021-06-091-2/+6
| | | | | | | | Transform the depfile into MSBuild `AdditionalInputs` content. Add MSBuild Targets to update `AdditionalInputs` and the `.tlog` files for future builds without actually modifying the `.vcxproj` file. Fixes: #20286
* Modernize: Use #pragma once in all header filesKitware Robot2020-09-031-4/+1
| | | | | | | | | | | | | | | | #pragma once is a widely supported compiler pragma, even though it is not part of the C++ standard. Many of the issues keeping #pragma once from being standardized (distributed filesystems, build farms, hard links, etc.) do not apply to CMake - it is easy to build CMake on a single machine. CMake also does not install any header files which can be consumed by other projects (though cmCPluginAPI.h has been deliberately omitted from this conversion in case anyone is still using it.) Finally, #pragma once has been required to build CMake since at least August 2017 (7f29bbe6 enabled server mode unconditionally, which had been using #pragma once since September 2016 (b13d3e0d)). The fact that we now require C++11 filters out old compilers, and it is unlikely that there is a compiler which supports C++11 but does not support #pragma once.
* Visual Studio: Add Android supportKyle Edwards2020-06-241-0/+2
|
* cmVisualStudio10TargetGenerator: Adopt Windows Store and Phone infrastructureBrad King2020-05-181-1/+10
| | | | | Move support for Resx, Xaml, Certificate, and AppManifest file handling out of cmGeneratorTarget.
* Merge topic 'cmprop-source'Brad King2020-04-151-1/+1
|\ | | | | | | | | | | | | | | e64fa5f1b6 cmSourceFile::GetProperty: return cmProp fc223f9860 cmGlobalXCodeGenerator: Fix genex interpreter overloads Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4603
| * cmSourceFile::GetProperty: return cmPropVitaly Stakhovsky2020-04-141-1/+1
| |
* | Add support to indicate UTF-8 custom command pipe output encodingJustin Goshi2020-04-131-0/+2
|/ | | | | | | | | | | | | | | | | Adds a flag to indicate that pipe output from a custom command should be interpreted as UTF-8 encoded. This change does not introduce a public way to set the flag, but generators that create internally-generated commands know if they are calling cmake, which uses UTF-8 pipes. MSBuild added support for interpreting output of PreBuildEvent, PreLinkEvent, PostBuildEvent, and CustomBuildStep as UTF-8. This change will appear in Visual Studio 16.6 Preview 3. It is opt-in, and you need to add the StdOutEncoding tag. MSBuild treats these as property bags so if we emit the tag for earlier versions of Visual Studio it would be safely ignored. This change emits the StdOutEncoding tag and sets it to UTF-8 whenever the custom command UTF-8 pipe flag is set. This fixes globalization issues when the output from cmake contained characters that required MSBuild to interpret as UTF-8 before displaying them.
* Merge topic 'vs-non-built-file-item-metadata'Brad King2020-03-301-0/+10
|\ | | | | | | | | | | | | | | | | | | | | 0723e04f7a VS: Add documentation for VS_SETTINGS and VS_SOURCE_SETTINGS_<tool>. 2ca1102f83 VS: Test VS_SETTINGS and VS_SOURCE_SETTINGS_<tool> properties. f00e1b816d VS: Add VS_SOURCE_SETTINGS_<tool> target property 2ce42f281f VS: Add VS_SETTINGS source file property 53116d3942 VS: Use unordered_map to write HLSL settings. Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !4498
| * VS: Add VS_SOURCE_SETTINGS_<tool> target propertyMatt Davies2020-03-201-0/+1
| | | | | | | | | | | | | | VS_SOURCE_SETTINGS_<tool> is a list of key value pairs that get written as item metadata for any file associated with <tool> for that target. The entire value of VS_SOURCE_SETTINGS_<tool> is evaluated as a generator expression. VS_SETTINGS can override settings specified in this property.
| * VS: Add VS_SETTINGS source file propertyMatt Davies2020-03-201-2/+4
| | | | | | | | | | | | VS_SETTINGS is a list of key value pairs that get written as item metadata for the associated non-built file. The entire value of VS_SETTINGS is evaluated as a generator expression.
| * VS: Use unordered_map to write HLSL settings.Matt Davies2020-03-201-0/+7
| |
* | VS10Generator: avoid many string allocationsRolf Eike Beer2020-03-241-2/+0
|/
* CSharp: Add support for source groups with out-of-source buildsKinan Mahdi2020-02-281-1/+1
| | | | | | | This also fixes support for multiple sources of the same name in different directories. Add a test for both problems. Issue: #19505
* cmVisualStudio10TargetGenerator: use std::string for tagVitaly Stakhovsky2019-11-101-1/+1
|
* VS: Add VS_DOTNET_DOCUMENTATION_FILE propertyCharly Mourglia2019-10-151-0/+1
| | | | | | | Add a `VS_DOTNET_DOCUMENTATION_FILE` target property to tell VS generators to add a `DocumentationFile` setting in `.csproj` files. Fixes: #19784
* Merge topic 'vs-16.4-custom-commands'Brad King2019-09-251-1/+1
|\ | | | | | | | | | | | | 0578239d3a VS: Tell VS 16.4 not to verify SYMBOLIC custom command outputs Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3860
| * VS: Tell VS 16.4 not to verify SYMBOLIC custom command outputsBrad King2019-09-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | VS 16.4 introduces an additional check on `CustomBuild` rules that warns if the outputs of the command are not created. However, CMake supports marking outputs with the `SYMBOLIC` property to indicate that they will not actually be generated. That property is used by Makefile and Ninja generators but has not been needed by the VS generators before. Teach the VS generator to disable `VerifyInputsAndOutputsExist` in custom build rules that have a symbolic output. Fixes: #19737
* | clang-tidy: Replace typedef with usingRegina Pfeifer2019-09-041-9/+9
|/ | | | | | | | Automate the conversion with perl -i -0pe 's/typedef ([^;]*) ([^ ]+);/using $2 = $1;/g' then manually fix a few places.
* VS: Fix mapping of `-Qspectre-` flagBrad King2019-07-301-1/+1
| | | | | | | | | | | | 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
* Merge topic 'vs-add-package-reference'Brad King2019-05-311-0/+3
|\ | | | | | | | | | | | | | | 42e14d90b1 VS: Added support for VS package references for nuget Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: Leonid Pospelov <pospelovlm@yandex.ru> Merge-request: !3389
| * VS: Added support for VS package references for nugetKinan Mahdi2019-05-301-0/+3
| |
* | Merge topic 'vs-depends-dedup'Brad King2019-05-311-1/+2
|\ \ | |/ |/| | | | | | | | | | | | | 42bc67bd43 VS: De-duplicate custom command dependencies d03a6fc857 VS: Clarify name of custom commands AdditionalInputs variable fcedf8e552 VS: Isolate custom command input/output generation scopes Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3388
| * VS: Clarify name of custom commands AdditionalInputs variableFrans van Dorsselaer2019-05-301-1/+2
| |
* | Merge topic 'vs-project-import'Brad King2019-04-161-0/+1
|\ \ | | | | | | | | | | | | | | | | | | d145d72e70 VS: add target property VS_PROJECT_IMPORT_<propspath> Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !3143
| * | VS: add target property VS_PROJECT_IMPORT_<propspath>Leonid Pospelov2019-04-151-0/+1
| |/ | | | | | | Fixes: #18998
* | cmVisualStudio10TargetGenerator: Remove uses of const_castLeonid Pospelov2019-04-121-1/+1
|/