Commit Graph

41371 Commits

Author SHA1 Message Date
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
Frank Benkstein 6199637e95 configure_file: canonicalize input and output path in dependencies
Represent the input file path internally in canonical form.  Otherwise
multiple `configure_file` calls that share the same input file but specify
it relative to different directories (e.g. via `../`) result in multiple
copies of the dependency on the rule to re-run CMake.  This causes the
Ninja generator to emit duplicate phony build statements for these
dependencies, which generates an error with `-w dupbuild=err`, which
will be default in Ninja 1.9.

Also canonicalize the output path for consistency.

Add a test case.

Fixes: #18584
2018-11-13 15:01:17 -05:00
Brad King 64bc4bda74 Merge topic 'deprecate-modules2'
df780bcc01 Help: Move deprecated modules to appropriate section.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2603
2018-11-13 14:25:58 -05:00
Brad King dc551c2b0d Merge topic 'macro+function-invocation'
abb5945bd0 Help: Document that function invocation is case-insensitive
357cdee3a1 Help: Document that macro invocation is case-insensitive

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2607
2018-11-13 14:25:10 -05:00
Joachim Wuttke (l) abb5945bd0 Help: Document that function invocation is case-insensitive 2018-11-13 13:47:26 -05:00
Joachim Wuttke (l) 357cdee3a1 Help: Document that macro invocation is case-insensitive 2018-11-13 13:47:24 -05:00
Brad King 3603b3964b Merge topic 'macro'
dcf11cbcdc Help: Mention endmacro argument as legacy only.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2606
2018-11-13 13:40:55 -05:00
Tobias C. Berner f835f189ae GNUInstallDirs: Update FreeBSD "info" destination to share/info
FreeBSD ports commit r484628 (Install texinfo files (GNU info) into
${PREFIX}/share/info, 2018-11-10) changed the "info" destination
from "info" to "share/info".  The commit included a patch to their
distribution of CMake to fix the `GNUInstallDirs` module too.
Apply a similar logic change to our upstream version of the module.

We already made a similar change for GNU/kFreeBSD in commit
v3.13.0-rc2~8^2 (GNUInstallDirs: Don't use BSD info and man paths on
GNU/kFreeBSD, 2018-10-21).

Fixes: #18585
2018-11-13 13:35:50 -05:00
Brad King 4c0d97dd98 GNUInstallDirs: Split "info" and "man" default logic
The conditions may soon differ.
2018-11-13 13:35:35 -05:00
Brad King 1b8f0ca515 Tests: Split GNUInstallDirs expectations for FreeBSD 2018-11-13 13:35:19 -05:00
Brad King 9fee704227 Merge topic 'SelectLibraryConfigurations'
fe15a1029c Help: Revise documentation of SelectLibraryConfigurations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2608
2018-11-13 10:46:54 -05:00
Brad King fb93f7f230 Merge topic 'env2'
26a70449cc Help: Describe environment variables as such.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2609
2018-11-13 10:46:07 -05:00
Brad King 06ef9edd51 Merge topic 'DeployQt4'
3a7f02197b Help: Downcase function names in DeployQt4 doc.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2600
2018-11-13 10:41:20 -05:00