| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was
honored only for the Intel compiler on Linux and otherwise ignored. In
order to add support for more compilers incrementally without changing
behavior in the future, add a new policy whose NEW behavior enforces the
`INTERPROCEDURAL_OPTIMIZATION` property. Add flags for supported
compilers and otherwise produce an error.
|
|\ \ \
| |/ /
|/| /
| |/
| |
| |
| |
| |
| |
| |
| | |
fff34934 MSVC: Restore _DEBUG preprocessor definition in RC debug builds
79a91538 RC: Add missing CMAKE_RC_FLAGS_<CONFIG> entries to cache
c77194ec VS: Honor preprocessor definitions in RC flags
1449f6f6 cmVisualStudio10TargetGenerator: De-duplicate preprocessor defs
8a619e8c cmIDEOptions: Add GetDefines method
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !640
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The VS generators use the C (or CXX) preprocessor definitions for
the Windows Resource Compiler tool. This causes definitions parsed
out of `CMAKE_RC_FLAGS[_<CONFIG>]` variables to be dropped. Fix
the implementation to preserve both.
Issue: #16745
|
| |\ |
|
|\ \ \
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
075f6454 Support WINDOWS_EXPORT_ALL_SYMBOLS with `.def` files
21c4ec4f cmGlobalVisualStudioGenerator: Simplify __create_def command generation
24361a45 bindexplib: Add support for parsing and integrating `.def` files
845c4824 bindexplib: Add method for parsing and integrating `.def` files
4f90e793 bindexplib: Revise coding style of CMake-specific methods
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !581
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The `WINDOWS_EXPORT_ALL_SYMBOLS` target property exports all symbols
found in object files explicitly given to the linker. However, the
linker may also find additional symbols in dependencies and copy them
into the linked binary (e.g. from `msvcrt.lib`). Provide a way to
export an explicit list of such symbols by adding a `.def` file as a
source file.
Fixes: #16473
|
|\ \ \ \
| |/ / /
|/| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
65481a60 CUDA: Work around VS limitation in CudaOnly.WithDefs test
8cae24a1 VS: Add more CUDA flag table entries
6ca4f222 VS: Add support for the CUDA_SEPARABLE_COMPILATION property
94255511 VS: Select CUDA code generation architectures
253594d0 VS: Select the CUDA runtime library
4def02a3 VS: Place CUDA host compiler options in proper project file fields
29f07b08 VS: Do not pass CUDA compile options to C compiler
b966f489 VS: Do not use absolute paths to CUDA sources
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !566
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Parse the `-gencode=`, `-arch`, and `-code` flags and generate a
`CodeGeneration` field in the project file.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Parse the `-cudart=` option and add a corresponding `CudaRuntime`
field to the generated project file. Also add a matching `.lib`
to the list of libraries linked.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The CUDA Toolkit's VS integration provides abstractions for host
compiler options for `nvcc` to pass through `-Xcompiler` to the host
MSVC. Populate our secondary flag table and use it to remove flags from
the `AdditionalCompilerOptions` in favor of their abstractions.
Unfortunately a bug in the CUDA 8.0 VS integration prevents us from
passing anything in `AdditionalCompilerOptions` reliably. After taking
out the flags that have dedicated abstractions, drop the rest.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The CUDA Toolkit's VS integration does not properly compute the
intermediate files directory location when the path to the source
file is absolute.
|
| | | |
| | | |
| | | |
| | | | |
Generate the `CudaCompile` elements in `.vcxproj` files.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use `cmGeneratorTarget::ModuleDefinitionInfo` to combine the
implementation of `WINDOWS_EXPORT_ALL_SYMBOLS` with that of using a
`.def` file as a source. Only one of these could be used within a
single target before anyway.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Create a `ModuleDefinitionInfo` structure for each configuration of a
target to hold corresponding information about the selected module
definition file (`.def` source).
|
|/ / /
| | |
| | |
| | | |
Add a `cmGeneratorTarget::GetModuleDefinitionSources` method.
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | | |
506207f9 VS: add test for VS_CSHARP_* source file property
a202749c VS: add CSharpUtilities module
9588d0a2 VS: add VS_CSHARP_<tagname> sourcefile property
|
| | | |
|
|\ \ \
| | |/
| |/|
| | |
| | | |
2cb165e8 VS: Fix .vcxproj indentation
|
| |/
| |
| |
| |
| |
| | |
In commit v3.8.0-rc1~87^2~1 (VS: added support for C#, 2017-01-09) we
removed what looked like a no-op streaming operation but in fact it
is responsible for applying indentation. Restore the line.
|
| |
| |
| |
| |
| |
| | |
Store unknown flags directly in a flag map entry for `AdditionalOptions`
instead of having a separate member for them. This avoids duplicating
the output generation logic for the entry.
|
| |
| |
| |
| |
| |
| |
| | |
Make the VS generator consistent with the Ninja and Makefile generators
that place the libraries listed in this variable after other libraries
on the link command line. These system libraries never depend on the
project libraries.
|
| |
| |
| |
| |
| |
| | |
Parse the value as a command line string just as the MS CRT would.
This makes the VS generator behavior consistent with how the string
is used by the Ninja and Makefile generators.
|
|/
|
|
| |
Fixes: #16469
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mainly <Link> and <DependentUpon> tags are added to connect generated
and manually edited files. Special file extensions that are take care
of are:
- .Designer.cs
- .xaml.cs
- .settings
- .resx
- .xaml
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
66bd8a3c cmVisualStudio10TargetGenerator: Prepare to handle C# projects
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Generalize some internal infrastructure to prepare for generating
either `.vcxproj` or `.csproj` files.
- Add member string for project file extension
- Add member enum for project type
- Add member flag for in-source build
- Add member flag for managed build
- Rename PathToVcxproj to PathToProjectFile
|
|/ |
|
|
|
|
|
|
| |
Add a `VS_USER_PROPS_CXX` target property to set the user props file of
the generated `.vcxproj` file to be something other than the default
`$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props`.
|
|
|
|
|
|
|
|
|
| |
When opening projects in Visual Studio that specify an older toolset
version, a prompt is displayed the first time asking the user whether to
upgrade the projects. This is meant for project files that are
maintained manually and updated through the IDE. For CMake-generated
projects this does not make sense, so add content to tell VS not to
upgrade.
|
|\
| |
| |
| |
| | |
883bd34a VS: Treat libraries ending in `.targets` as msbuild imports
|
| |
| |
| |
| |
| |
| |
| | |
Generate `<Import Project="..." .../>` to import the `.targets` files
into `.vcxproj` files.
Closes: #16340
|
| |
| |
| |
| |
| |
| | |
This allows users to specify different genex-based compile flags for
each file in a target, e.g. compiling just a single file with `Od/Ox` in
release builds on Visual Studio.
|
|/
|
|
|
| |
Move `Get*FlagTable` methods to the global generator and have each VS
generator version pre-populate its default flag table.
|
| |
|
|\
| |
| |
| |
| |
| | |
d079e71c VS: Provide an option to use x64 host tools
779939a0 Help: Document VS and Xcode toolset selection
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Visual Studio provides toolchains that are themselves built for 32-bit
or 64-bit host architectures. By default it uses the 32-bit tools, but
it can be told to prefer the 64-bit tools on 64-bit hosts. Extend the
`CMAKE_GENERATOR_TOOLSET` specification to provide a way to request
use of the 64-bit host tools.
Closes: #15622
|
|\ \
| |/
|/|
| |
| | |
b1d67ae8 VS: Split flag table between v140 and v141 toolsets
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In commit v3.7.0-rc1~156^2~1 (VS: Update v140 flag tables from VS 15
MSBuild files, 2016-09-02) we extended the v140 flag table with values
from the v141 toolset that comes with VS 15. However, the v140 toolset
that comes with VS 14 does not have all of these entries and so the
flags just need to be passed without special mapping. In order to
support both toolsets, split our CL flag table into separate copies for
each version and switch off the toolset name.
Closes: #16352
|
|/
|
|
|
|
|
|
| |
The change in commit v3.7.0-rc1~219^2 (VS: Use target-specific directory
for `resources.pri`, 2016-08-25) incorrectly specifies a relative path
for the `ProjectPriFullPath` value. Fix it to use an absolute path.
Issue: #16106
|
|\
| |
| |
| |
| | |
3f300b84 VS: Recognize VS/LLVM toolset names as Clang
|
| |
| |
| |
| |
| |
| | |
Update the toolset name matching added by commit v3.6.0-rc1~279^2~10
(VS: in Clang/C2 toolset, setup correct compiler settings, 2016-02-18)
to match VS/LLVM toolset names too.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool. Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience. Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.
Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices. It also references version control
history for more precise information. Therefore we no longer need to spell
out the list of Contributors in each source file notice.
Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing". The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.
Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically. Manually fix up shebang lines and trailing
newlines in a few files. Manually update the notices in a few files that the
script does not handle.
|
| |
|
| |
|