Commit Graph

24488 Commits

Author SHA1 Message Date
Brad King 22e4837442 Merge topic 'fix-CMAKE_DISABLE_SOURCE_CHANGES-top-dir'
60cb75e4a1 Fix CMAKE_DISABLE_SOURCE_CHANGES recognition of top of build tree

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2001
2018-04-25 08:57:08 -04:00
Brad King 5a6c629289 Merge topic 'vs-dedup-custom-commands'
f59c33a763 VS: Generate a custom command only in the least dependent target
d58d4daa6b cmVisualStudio10TargetGenerator: Use cmLocalVisualStudio10Generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1889
2018-04-25 08:56:16 -04:00
Brad King e5d15848ca Merge topic 'vs-hlsl-object-name'
8d1ccbc693 VS: Add VS_SHADER_OBJECT_FILE_NAME source file property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1997
2018-04-25 08:53:54 -04:00
Brad King 52c11e4f64 Merge topic 'file_install_always_out_of_date_fix'
6dcd1bfa39 file(INSTALL): Preserve file time when writing NTFS alternate stream

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1992
2018-04-25 08:52:15 -04:00
Kitware Robot 7e4e14219d CMake Nightly Date Stamp 2018-04-25 00:01:06 -04:00
Jeremiah van Oosten 8d1ccbc693 VS: Add VS_SHADER_OBJECT_FILE_NAME source file property 2018-04-24 11:29:16 -04:00
Brad King 195400cab7 Merge topic 'Genex-TARGET_GENEX_PROPERTY'
4d15046edd Genex: Add $<TARGET_GENEX_EVAL:...> and $<GENEX_EVAL:...>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1984
2018-04-24 11:06:19 -04:00
Brad King b928be62fa Merge topic 'reorder-sys-includes'
76ad2ecb50 Order SYSTEM include directories after non-system directories

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1968
2018-04-24 11:05:12 -04:00
Marc Chevrier 60cb75e4a1 Fix CMAKE_DISABLE_SOURCE_CHANGES recognition of top of build tree
The change in commit v3.11.0-rc1~480^2 (UseJava: add_jar OUTPUT_DIR
option used only for jar generation, 2017-10-12) added code of the form
`file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR})`.  This exposed an existing
bug in `CMAKE_DISABLE_SOURCE_CHANGES` in which it does not recognize
that the top of the build tree itself is in the build tree.  Fix that
now.

Fixes: #17933
2018-04-24 10:42:00 -04:00
Kitware Robot 3db4092329 CMake Nightly Date Stamp 2018-04-24 00:01:03 -04:00
Ephi Sinowitz 76ad2ecb50 Order SYSTEM include directories after non-system directories
An effect of the `-isystem` flag is to search the directory after those
specified via `-I` flags.  Make behavior more consistent on compilers
that do not have any `-isystem` flag by explicitly moving system include
directories to the end.
2018-04-23 11:47:52 -04:00
Yves Frederix 6dcd1bfa39 file(INSTALL): Preserve file time when writing NTFS alternate stream
When cross-compiling on a Windows host, we use a `:cmake_mode_t` NTFS
alternate stream to store the file mode for use during packaging.
Writing to this stream changes the file modification time, so save and
restore the original modification time since we are not modifying the
real file content.

Fixes: #17922
2018-04-23 11:37:36 -04:00
Brad King f9b3b5a773 Merge topic 'fortran-submodule-depends'
b1f95e5b14 Fortran: Extend submodule test with great-grandchild
402735314e Fortran: Add support for submodule dependencies
62538b2c4c Fortran: Refactor to treat .mod extension as part of module name

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Izaak Beekman <contact@izaakbeekman.com>
Merge-request: !1989
2018-04-23 10:28:50 -04:00
Brad King 97ecefa73b Merge topic 'grammar_typo_fixes'
8e841a473f Cleanup: Fix typos and grammar in docs and code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1996
2018-04-23 10:22:00 -04:00
Brad King ba234392b1 Merge topic 'add_compile_definitions'
cb83314e65 add_compile_definitions: add new command

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1988
2018-04-23 10:16:24 -04:00
Marc Chevrier 4d15046edd Genex: Add $<TARGET_GENEX_EVAL:...> and $<GENEX_EVAL:...>
Fixes: #17884
2018-04-23 11:13:52 +02:00
Fujii Hironori f59c33a763 VS: Generate a custom command only in the least dependent target
If a custom command is assigned to multiple targets, generate the build
rule only in the least-dependent `.vcxproj` file.  Otherwise MSBuild
will run the command on the first build of a dependent target even if
its dependencies already brought the command up to date (in order to
populates its build log).

Generate targets in least-to-most-dependent order, and assign a custom
command to the least dependent target.

Added cmLocalVisualStudio10Generator::GenerateTargetsDepthFirst to call
cmVisualStudio10TargetGenerator::Generate in least-dependent order.

Moved SourcesVisited from cmVisualStudio10TargetGenerator to
cmLocalVisualStudio10Generator to avoid attaching a custom command to
multiple targets among the local generator.

Fixes: #16767
2018-04-23 13:31:28 +09:00
Kitware Robot 1f372ac4e5 CMake Nightly Date Stamp 2018-04-23 00:01:12 -04:00
Craig Scott 8e841a473f Cleanup: Fix typos and grammar in docs and code
No functional changes, just docs, comments and error messages.
2018-04-23 07:48:03 +10:00
Kitware Robot 1fa4e8abca CMake Nightly Date Stamp 2018-04-22 00:01:04 -04:00
Kitware Robot 1a207ccc99 CMake Nightly Date Stamp 2018-04-21 00:01:06 -04:00
Brad King 402735314e Fortran: Add support for submodule dependencies
Since commit v3.7.0-rc1~73^2~1 (Fortran: Add support for submodule
syntax in dependency scanning, 2016-09-05) we support parsing Fortran
sources that use submodule syntax, but it left addition of `.smod`
dependencies to future work.  Add it now.

The syntax

    submodule (module_name) submodule_name

means the current source requires `module_name.mod` and provides
`module_name@submodule_name.smod`.  The syntax

    submodule (module_name:submodule_name) nested_submodule_name

means the current source requires `module_name@submodule_name.smod`
provides `module_name@nested_submodule_name.smod`.

Fixes: #17017
2018-04-20 10:57:31 -04:00
Brad King 62538b2c4c Fortran: Refactor to treat .mod extension as part of module name
When tracking module names internally, include the `.mod` extension.
This will later be useful to distinguish them from `.smod` extensions
for submodules.
2018-04-20 10:56:54 -04:00
Marc Chevrier cb83314e65 add_compile_definitions: add new command
This command manages preprocessor definitions at directory level and
supports generator expressions.

Fixes: #15374
2018-04-20 09:28:13 -04:00
Brad King fe0082875a Merge topic 'vs-sdk-dirs'
6ec3e880e7 VS: Add variables to set SDK directories in vcxproj files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1965
2018-04-20 07:52:02 -04:00
Brad King 293bb0f475 Merge topic 'ninja-simplify-paths'
5650ba1d6a Ninja: Drop unnecessary ident encoding logic for paths

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1983
2018-04-20 07:49:57 -04:00
Kitware Robot 38d854dccf CMake Nightly Date Stamp 2018-04-20 00:01:09 -04:00
Bastien Schatt 6ec3e880e7 VS: Add variables to set SDK directories in vcxproj files
Create `CMAKE_VS_SDK_*_DIRECTORIES` variables to tell the VS generator
how to populate fields in `.vcxproj` files that specify SDK directories.

Fixes: #17908
2018-04-19 09:39:34 -04:00
Brad King 3c6388553a Merge topic 'CheckIncludeFile-required-libs'
a61ae3fb80 CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES
391a5837ee cmake_policy: Add undocumented PARENT_SCOPE option to GET
3c47ac5b25 OpenWatcom: Add workaround for lack of error on missing library

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1978
2018-04-19 08:23:08 -04:00
Brad King 5650ba1d6a Ninja: Drop unnecessary ident encoding logic for paths
The only uses of `EncodeIdent` are surrounding `EncodePath`, but the
special ident encoding is not needed for path contexts in a ninja build
manifest.
2018-04-19 08:17:39 -04:00
Kitware Robot 67752aece3 CMake Nightly Date Stamp 2018-04-19 00:01:04 -04:00
Brad King a61ae3fb80 CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES
Other check modules honor this variable, so include file checks should
too.  Add policy `CMP0075` to enable the behavior in a compatible way.

This change was originally made by commit v3.11.0-rc1~108^2
(CheckIncludeFiles: Honor CMAKE_REQUIRED_LIBRARIES, 2017-12-24) but it
was reverted by commit v3.11.1~9^2 (Revert "CheckIncludeFiles: Honor
CMAKE_REQUIRED_LIBRARIES", 2018-04-04) because the behavior change could
affect checks in existing projects in an incompatible way.

Fixes: #9514
2018-04-18 08:09:56 -04:00
Brad King 391a5837ee cmake_policy: Add undocumented PARENT_SCOPE option to GET
Policies affecting the behavior of CMake-provided macros and functions
need to be able to get the policy setting as of the call site rather
than the definition site.  Add an undocumented option to do this.
2018-04-18 08:09:56 -04:00
Brad King 3c47ac5b25 OpenWatcom: Add workaround for lack of error on missing library
The OpenWatcom tools do not fail to link when a library is missing if no
symbols were needed from it.  This can break `try_compile` checks.
Teach `cmGlobalGenerator::Build` to pretend that the build tool returned
non-zero if the output contains the corresponding warning.
2018-04-18 08:09:56 -04:00
Kitware Robot 4591cdd72c CMake Nightly Date Stamp 2018-04-18 00:01:05 -04:00
Brad King fbe6cd1596 CMake 3.11.1 2018-04-17 08:33:46 -04:00
Brad King 8c2d87dc01 Merge topic 'list-TRANSFORM'
dca2347980 list: Add TRANSFORM sub-command
cdae12f8f8 string() Refactoring: creates an helper for REGEX REPLACE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1938
2018-04-17 07:38:28 -04:00
Brad King d41e767f2b Merge topic 'vs-conditional-reference-assembly'
c8e98974d8 VS: Disallow ReferenceOutputAssembly in ProjectReference if not possible

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1956
2018-04-17 07:32:11 -04:00
Kitware Robot 6930216013 CMake Nightly Date Stamp 2018-04-17 00:01:04 -04:00
Fujii Hironori d58d4daa6b cmVisualStudio10TargetGenerator: Use cmLocalVisualStudio10Generator
Change the type of a member variable `LocalGenerator` from
`cmLocalVisualStudio7Generator` to `cmLocalVisualStudio10Generator`.
2018-04-17 11:03:17 +09:00
Marc Chevrier dca2347980 list: Add TRANSFORM sub-command
Issue: #17823
2018-04-16 17:11:53 +02:00
Brad King 5099af044f Merge topic 'vs-cuda-pdb'
134e795fa9 VS: Add workaround for CUDA compiler PDB location

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1960
2018-04-16 09:14:05 -04:00
Brad King 64a5b55088 Merge topic 'fix-explicit-CMakeLists.txt'
0a122393d7 Merge branch 'backport-fix-explicit-CMakeLists.txt'
8480c2afc0 Restore support for explicitly referenced CMakeLists.txt sources

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1959
2018-04-16 09:09:45 -04:00
Marc Chevrier cdae12f8f8 string() Refactoring: creates an helper for REGEX REPLACE 2018-04-16 15:04:14 +02:00
Kitware Robot 912c2a6c7f CMake Nightly Date Stamp 2018-04-16 00:01:04 -04:00
Kitware Robot d244a8ab5b CMake Nightly Date Stamp 2018-04-15 00:01:07 -04:00
Kitware Robot dfeeaa37ae CMake Nightly Date Stamp 2018-04-14 00:01:07 -04:00
Bastien Schatt c8e98974d8 VS: Disallow ReferenceOutputAssembly in ProjectReference if not possible
Explicitly turn off `ReferenceOutputAssembly` in `ProjectReference`
elements naming other project files whose types do not produce
assemblies.  We already do this for `C#` but it makes sense for other
languages too.

Fixes: #17906
2018-04-13 13:11:09 -04:00
Brad King 134e795fa9 VS: Add workaround for CUDA compiler PDB location
The CUDA Toolkit Visual Studio Integration does not honor the
`ClCompile.ProgramDataBaseFileName` field when telling `nvcc` how to
invoke `cl`.  Work around this problem by passing `-Xcompiler=-Fd...`
ourselves through `AdditionalOptions`.

Fixes: #17647
2018-04-13 12:56:36 -04:00
Brad King 48d7aa2868 Merge topic 'update-kwsys'
5ebbf2807b Merge branch 'upstream-KWSys' into update-kwsys
e488f73873 KWSys 2018-04-12 (9da3e5bc)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1953
2018-04-13 09:55:40 -04:00