Commit Graph

24632 Commits

Author SHA1 Message Date
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
Michael Stürmer 16fec7e2fc cmVisualStudio10TargetGenerator: make some methods config aware 2018-04-23 07:31:23 +02:00
Michael Stürmer f3c6828876 cmVisualStudio10TargetGenerator: /clr compatible flags for managed tgt 2018-04-23 07:31:22 +02:00
Michael Stürmer f9042d807d remove TargetIsCSharpOnly() and use methods from cmGeneratorTarget 2018-04-23 07:31:21 +02:00
Michael Stürmer 709277640b cmExportFileGenerator: set IMPORTED_COMMON_LANGUAGE_RUNTIME for CSharp target 2018-04-23 07:31:20 +02:00
Michael Stürmer 2418232586 cmGeneratorTarget: change GetManagedType() result if language is CSharp 2018-04-23 07:31:19 +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
Brad King d00306636b Merge branch 'backport-fix-explicit-CMakeLists.txt' into release-3.11
Merge-request: !1959
2018-04-13 09:49:51 -04:00
Brad King 0a122393d7 Merge branch 'backport-fix-explicit-CMakeLists.txt' 2018-04-13 09:46:54 -04:00
Brad King 8480c2afc0 Restore support for explicitly referenced CMakeLists.txt sources
Since commit v3.11.0-rc1~467^2 (VS,Xcode: Add CMakeLists.txt sources
without mutating targets, 2017-10-18) we do not add `CMakeLists.txt` to
target sources but instead generate references to them directly.  This
broke projects that explicitly specify their `CMakeLists.txt` file as a
source file because the explicit entry is no longer consolidated with
the generated one.

Teach the relevant generators to avoid duplicating `CMakeLists.txt`
source references and add test cases.

Fixes: #17828
2018-04-13 09:41:06 -04:00
Kitware Robot 07604a767d CMake Nightly Date Stamp 2018-04-13 00:01:04 -04:00
Brad King 5ebbf2807b Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2018-04-12 (9da3e5bc)
2018-04-12 13:05:38 -04:00
Brad King 498be66fd7 Merge topic 'add_support_for_clr_targets'
312527de47 document COMMON_LANGUAGE_RUNTIME target properties
4b7a82b4ed cmVisualStudio10TargetGenerator: set /clr compiler flag from property
20e31fb4c9 cmExportFileGenerator: add target property for managed targets
411a22706a cmGeneratorTarget: add handling of managed assemblies to HasImportLibrary()
fb433ff283 cmGeneratorTarget: Make import library checks config-aware
4c1f33961f cmGeneratorTarget: add GetManagedType() and CheckManagedType() methods
6c517a9f8d cmGeneratorTarget: add HasLanguage() as wrapper for GetLanguages()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1916
2018-04-12 11:36:28 -04:00