Commit Graph

41383 Commits

Author SHA1 Message Date
Stephan Szabo 21d26a9ecd VS: in Clang/C2 toolset, setup correct compiler settings
Original header commit v3.6.0-rc1~279^2~10
2018-11-28 07:43:29 -08:00
Stephan Szabo 44dc9fc48a VS: Fix /analyze:log flag mapping (#14858)
Original header commits:
 v11/v12 commit v3.1.0-rc1~695^2
 v140/v141 commit v3.1.0-rc1~358^2~3

Fix the VS 11 and VS 12 flag table entries for this flag.  It requires
a value in the following argument.  Also drop the general "/analyze:"
flag table entry so that such flags will be passed through as plain
additional options.  This is necessary because some such options have
following values and some do not but not all have .vcxproj elements
to hold the values.
2018-11-28 07:43:29 -08:00
Stephan Szabo aba364d190 VS: Fix CSharp support for win32res: and win32icon: flags
Original header commit v3.13.0-rc2~6^2

Add a missing `:` to these entries in the flag table.  The user
value is always required and must come after the `:`.
2018-11-28 07:43:29 -08:00
Stephan Szabo b9fe2785f2 Vs: remove /nowin32manifest from C# flags to enable default VS behavior
Original header commit v3.10.0-rc1~494^2

if /nowin32manifest is specified, it will be preferred over any
occurring /win32manifest:<file> parameter
2018-11-28 07:43:29 -08:00
Stephan Szabo 6c6c13297c MSVC: Add support for ARM64 architecture
The v141_Link.json already appeared to have the option included, so
onlyh adding the change to v14_LIB.json.

Original header commit v3.10.0-rc1~132^2

Visual Studio 15.4 adds support for this architecture.
2018-11-28 07:43:29 -08:00
Stephan Szabo 454b47ba0b VS: Fix MANIFESTUAC link flag map to .vcxproj elements
Original header commit v3.10.0-rc1~97^2

Add special parsing of the flags given in `/MANIFESTUAC:"..."` in order
to map them correctly to `.vcxproj` elements.

Keep the old incorrect flag table entries for `uiAccess` and `level`
flags for compatibility even though they do not really exist.

Fixes: #16563
2018-11-28 07:43:29 -08:00
Stephan Szabo 57a78b5526 VS: Fix support for '/guard:cf' linker flag
Original header commit v3.9.0-rc6~12^2

Although `$(VCTargetsPath)/1033/link.xml` for v140 and v141 toolsets
contains an entry for `LinkControlFlowGuard`, it does not work when used
in a `.vcxproj` file.  Drop our link flag table entries for these
toolsets so that the flag will be passed via `AdditionalOptions`.
2018-11-28 07:43:28 -08:00
Stephan Szabo f77320c12a VS: Add v140 and v141 flag table entries for /DEBUG:NONE and /DEBUG:FULL
DEBUG:FULL was already added for v141 from the generation.

Original header commit v3.9.0-rc6~15^2
2018-11-28 07:43:28 -08:00
Stephan Szabo a5d9aa5063 VS: Map the link /debug to its IDE property
Fix issues with "GenerateDebugInformation". These
are mostly from the following commits, but also
include a related fix to the v140/v141 file.

Original header commits:
 v10-v14 commit v3.5.0-rc1~71^2
 v140/v141 commit v3.9.0-rc6~15^2~1
2018-11-28 07:43:28 -08:00
Stephan Szabo 1d00fd7702 VS: Fix /MANIFESTUAC:NO linker option mapping
Original header commits:
 v10/v11/v12 commit v3.0.0-rc5~3^2
 v140 commit v3.1.0-rc1~358^2~3

There are no versions of /MANIFESTUAC:NO where addition values are
appended.  Remove both of the MANIFESTUAC:NO entries from our flag
tables and replace them with one which would set EnableUAC to false and
immediately stop processing the /MANIFESTUAC:NO option.
2018-11-28 07:43:28 -08:00
Stephan Szabo 3133fa5094 VS: Manually fix MASM flag table entries
Original header commit v3.1.0-rc1~154^2~5

Drop '"[value]"' placeholders.
2018-11-28 07:43:28 -08:00
Stephan Szabo 66704e4271 VS: Add NASM fwin/felf switches
The generated NASM file from the xml does not contain the fwin/felf
switches that don't seem to directly exist in the xml file.
2018-11-28 07:43:27 -08:00
Stephan Szabo fc58a40e76 VS: Manually fix generated NASM flag table
Drop '"[value]"' placeholders.
2018-11-28 07:43:27 -08:00
Stephan Szabo 7fd339b1e5 VS: Add CUDA flag table entry for -maxrregcount
Original header commit v3.12.0-rc2~10^2
2018-11-28 07:43:27 -08:00
Stephan Szabo f61e097554 VS: Add more CUDA flag table entries
Original header commit v3.9.0-rc1~431^2~2
2018-11-28 07:43:27 -08:00
Stephan Szabo c17809bcd7 VS: Select CUDA code generation architectures
Original header commit v3.9.0-rc1~431^2~4

Parse the `-gencode=`, `-arch`, and `-code` flags and generate a
`CodeGeneration` field in the project file.
2018-11-28 07:43:27 -08:00
Stephan Szabo 73ce99cbfe VS: Select the CUDA runtime library
Original header commit v3.9.0-rc1~431^2~5

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.
2018-11-28 07:43:26 -08:00
Stephan Szabo f044bbbf08 VS: Place CUDA host compiler options in proper project file fields
Original header commit v3.9.0-rc1~431^2~6

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.
2018-11-28 07:43:26 -08:00
Stephan Szabo 7faa4d59a8 Add placeholder CUDA json flag tables
Generate json flag tables from initial placeholder headers

Original header commit v3.9.0-rc1~431^2~10

The CUDA Toolkit's VS integration defines abstractions for both options
to `nvcc` and options to pass through `-Xcompiler` to the host MSVC.
We need a separate flag table to parse each set of flags into the
corresponding abstractions.  Add empty placeholders for these tables.
2018-11-28 07:43:26 -08:00
Stephan Szabo 6e947179a8 Add json flag tables for C#
Generate initial json flag tables for C# based on the initial
headers.

Original header commit v3.8.0-rc1~230^2

Add these (currently unused) tables in preparation for `.csproj`
generation support.  Populate the tables for every version with a set of
initial values that work well for me with VS 12 and VS 14.  Later we may
need to generate them more thoroughly from MSBuild `.xml` files.
2018-11-28 07:43:26 -08:00
Stephan Szabo 2f37ce5e86 Add initial NASM flag table json
Generated from the nasm.xml provided by CMake.

python cmConvertMSBuildXMLToJSON.py -t v10 ...\Templates\MSBuild\nasm.xml
2018-11-28 07:43:26 -08:00
Stephan Szabo a84461160c Add CL, LIB, Link, MASM, RC flag json
Adding flag json files generated from MSVC xml files.

python cmConvertMSBuildXMLToJSON.py -t v10 "...\MSBuild\Microsoft.Cpp\v4.0\1033\cl.xml"
python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V110\1033\cl.xml"
python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V120\1033\cl.xml"
python cmConvertMSBuildXMLToJSON.py -t v140 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V140\1033\cl.xml"
python cmConvertMSBuildXMLToJSON.py -t v141 "C:\...\Common7\IDE\VC\VCTargets"\1033\cl.xml"

python cmConvertMSBuildXMLToJSON.py -t v10 "c:\...\MSBuild\Microsoft.Cpp\v4.0\1033\rc.xml
python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v110\1033\rc.xml
python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v120\1033\rc.xml
python cmConvertMSBuildXMLToJSON.py -t v14 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v140\1033\rc.xml

python cmConvertMSBuildXMLToJSON.py -t v10 "c:\...\MSBuild\Microsoft.Cpp\v4.0\1033\lib.xml
python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v110\1033\lib.xml
python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v120\1033\lib.xml
python cmConvertMSBuildXMLToJSON.py -t v14 "c:\...\MSBuild\Microsoft.Cpp\v4.0\v140\1033\lib.xml

python cmConvertMSBuildXMLToJSON.py -t v10 "c:\...\MSBuild\Microsoft.Cpp\v4.0\1033\link.xml"
python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V110\1033\link.xml"
python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V120\1033\link.xml"
python cmConvertMSBuildXMLToJSON.py -t v140 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V140\1033\link.xml"
python cmConvertMSBuildXMLToJSON.py -t v141 "C:\...\Common7\IDE\VC\VCTargets"\1033\link.xml"

python cmConvertMSBuildXMLToJSON.py -t v10 "c:\...\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\masm.xml"
python cmConvertMSBuildXMLToJSON.py -t v11 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\masm.xml"
python cmConvertMSBuildXMLToJSON.py -t v12 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\masm.xml"
python cmConvertMSBuildXMLToJSON.py -t v14 "c:\...\MSBuild\Microsoft.Cpp\v4.0\V140\BuildCustomizations\masm.xml"
2018-11-28 07:43:25 -08:00
Stephan Szabo 8279302110 Convert cmIDEFlagTable to use owned strings
Convert from char* to std::string in flag tables.
Change termination condition from nullptr to empty string in command flag.
Update tables to store empty strings.
2018-11-28 07:43:25 -08:00
Stephan Szabo 139b39985f Update XML->JSON generation script
Update generation script to write a newline to generated json.
Update generation script to remove / or - at start of switches in xml
Update generation script to put separators on switch as in headers
2018-11-28 07:43:24 -08:00
Brad King 1763f04281 Merge topic 'test-WriteBasicConfigVersionFile'
f3a381115f Tests: Simplify RunCMake.WriteBasicConfigVersionFile
0dbcc1afbf Tests: Factor out RunCMake.WriteBasicConfigVersionFile test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2612
2018-11-15 10:41:07 -05:00
Brad King 20aab1a4e7 Merge topic 'configure_file-canonical-deps'
6199637e95 configure_file: canonicalize input and output path in dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2586
2018-11-15 10:40:33 -05:00
Brad King 59fc717c25 Merge topic 'deprecate-findqt'
0f5c1b404b find_package(): Add policy to remove the FindQt module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: noo mook <noomook2519@gmail.com>
Merge-request: !2554
2018-11-15 10:39:55 -05:00
Brad King 64df9ef33a Merge topic 'autogen_info_write'
e0c26406aa Autogen: Sort tests
83bbfb1d53 Autogen: Add a definitions test to the MocOnly test
01d5e5c460 Autogen: Add and use cmQtAutoGenInitializer::InfoWriter class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2610
2018-11-15 08:38:12 -05:00
Brad King f21bad80a2 Merge topic 'test-XcodeProject-timeout'
ca355d92d8 Tests: Add option for custom RunCMake.XcodeProject timeout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2614
2018-11-15 08:37:32 -05:00
Brad King b3d1d6d895 Merge topic 'doc-developer-to-source-guide'
a82282a08c Help/dev: Factor out a CMake Documentation Guide for developing the docs
bfbc5241e9 Help: Fix policy markup example in cmake-developer(7)
3e5a047f1a Help: Drop compile features section from cmake-developer(7) manual
06cc050c1f Help/dev: Drop 'size_t' preference from source code guide

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2615
2018-11-15 08:36:52 -05:00
Brad King bd2c17d614 Merge topic 'macro3'
22cca9b810 Help: describe differences between macro and function.
b90ae70a3b Help: in macro vs function example, use lowercase names.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2616
2018-11-15 08:36:02 -05:00
Kitware Robot 44a5400d10 CMake Nightly Date Stamp 2018-11-15 00:01:04 -05:00
Joachim Wuttke (l) 22cca9b810 Help: describe differences between macro and function. 2018-11-14 21:56:23 +01:00
Brad King a786062db2 Merge topic 'WIN32'
254a849864 Help: Spell out MFC
b173c641c4 Help: Add links to variables

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2613
2018-11-14 15:18:15 -05:00
Kyle Edwards 0f5c1b404b find_package(): Add policy to remove the FindQt module
Removing FindQt.cmake gives Qt upstream a path forward to export its
own QtConfig.cmake files which can be found by find_package()
without having to explicitly specify CONFIG. Projects that still
want to use Qt3/4 can call find_package(Qt[34]), include(FindQt),
or add FindQt.cmake to their CMAKE_MODULE_PATH.
2018-11-14 15:05:06 -05:00
Brad King a82282a08c Help/dev: Factor out a CMake Documentation Guide for developing the docs
Remove this content from the `cmake-developer(7)` manual because it
is relevant only to developers working on CMake itself.  Move it to
a guide in the developer documentation.
2018-11-14 14:38:13 -05:00
Joachim Wuttke (l) b90ae70a3b Help: in macro vs function example, use lowercase names.
Follow our own advise not to change cases.

Omit the leading underscore.
2018-11-14 20:33:12 +01:00
Brad King bfbc5241e9 Help: Fix policy markup example in cmake-developer(7) 2018-11-14 14:29:13 -05:00
Brad King 3e5a047f1a Help: Drop compile features section from cmake-developer(7) manual
We no longer add granular compile features.  Only language standard
meta features like `cxx_std_##`` need to be added, and these can
be done by following existing patterns.
2018-11-14 14:29:13 -05:00
Brad King 06cc050c1f Help/dev: Drop 'size_t' preference from source code guide
We now use `std::size_t` in several places and it is fully supported by
C++11 compilers.  Drop the recommendation to prefer plain `size_t`.
2018-11-14 14:28:57 -05:00
Sebastian Holtermann e0c26406aa Autogen: Sort tests 2018-11-14 19:21:03 +01:00
Sebastian Holtermann 83bbfb1d53 Autogen: Add a definitions test to the MocOnly test 2018-11-14 19:21:03 +01:00
Sebastian Holtermann 01d5e5c460 Autogen: Add and use cmQtAutoGenInitializer::InfoWriter class
The new ``cmQtAutoGenInitializer::InfoWriter`` class provides an
interface to write strings/vectors/sets/maps in CMake format
into a file.  Its use replaces various `cmJoin` calls that
failed to address escaping of semicolons in list elements.

Closes #18554
2018-11-14 19:21:03 +01:00
Joachim Wuttke (o) 254a849864 Help: Spell out MFC
And shorten text that was hard to understand and redundant.
2018-11-14 17:50:45 +01:00
Joachim Wuttke (o) b173c641c4 Help: Add links to variables 2018-11-14 17:50:45 +01:00
Brad King ca355d92d8 Tests: Add option for custom RunCMake.XcodeProject timeout
The test has many cases and can take a long time on busy machines.
2018-11-14 11:50:36 -05:00
Brad King f3a381115f Tests: Simplify RunCMake.WriteBasicConfigVersionFile 2018-11-14 10:46:39 -05:00
Brad King 0dbcc1afbf Tests: Factor out RunCMake.WriteBasicConfigVersionFile test
The `WriteBasicConfigVersionFile` section of the `FindPackageTest`
is independent of the rest.
2018-11-14 10:46:08 -05:00
Brad King 117272412e Merge topic 'GNUInstallDirs-FreeBSD-info'
f835f189ae GNUInstallDirs: Update FreeBSD "info" destination to share/info
4c0d97dd98 GNUInstallDirs: Split "info" and "man" default logic
1b8f0ca515 Tests: Split GNUInstallDirs expectations for FreeBSD

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Rolf Eike Beer <eike@sf-mail.de>
Merge-request: !2588
2018-11-14 08:59:19 -05:00
Kitware Robot aa4ab1f904 CMake Nightly Date Stamp 2018-11-14 00:01:04 -05:00