Commit Graph

42474 Commits

Author SHA1 Message Date
Zsolt Parragi
1a281a1acd RC: Pass output file in a way that llvm-rc 7 and below understand
Prior to LLVM 8.0, `llvm-rc` does not recognize `/fo` without a space
after it.  Add the space unconditionally because MS `rc` accepts it too.

Issue: #18957
2019-02-27 08:39:02 -05:00
Zsolt Parragi
fa339ced67 CMakeVersion.rc: Avoid preprocessor definitions to support llvm-rc
`llvm-rc` does not support them as of version 8.
2019-02-27 08:31:46 -05:00
Kitware Robot
eb08e68b77 CMake Nightly Date Stamp 2019-02-21 00:01:07 -05:00
Craig Scott
0ffdcba178 Merge topic 'readme-build-out-of-source'
943a50da55 README: Suggest bootstrapping out-of-source for development

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Bartosz <gang65@poczta.onet.pl>
Merge-request: !2993
2019-02-20 16:39:22 -05:00
Brad King
b76b83efd3 Merge topic 'cray-cleanup'
d59159afdb Cray: clean up CrayPrgEnv and CrayLinuxEnvironment modules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2945
2019-02-20 09:05:57 -05:00
Brad King
e0fbb7bf08 Merge topic 'list-prepend-and-pop-subcommands'
a84e509844 list: add sub-commands PREPEND, POP_BACK, POP_FRONT

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2980
2019-02-20 09:04:58 -05:00
Brad King
c2f6da3399 Merge topic 'configurefile-stdstring'
0281f9a4ca cmMakefile::ConfigureFile: Accept `std::string` parameters

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2982
2019-02-20 09:03:48 -05:00
Brad King
b38023f958 Merge topic 'optimize-cmuuid-ctor'
8a95808f8f cmUuid: Hide UUID group info in implementation

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2976
2019-02-20 09:02:51 -05:00
Brad King
bb6d46d7e4 Merge topic 'ninja-swift-partial'
c048cb75fc Ninja: add properties for Swift partial module and doc

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2985
2019-02-20 09:01:58 -05:00
Brad King
8732a2b3ba Merge topic 'once-is-enough'
c489c3e715 Ninja: remove duplicate local variable (NFC)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2986
2019-02-20 09:01:00 -05:00
Brad King
462a320c8d Merge branch 'release-3.14' 2019-02-20 08:56:58 -05:00
Brad King
7abe332ced Merge topic 'autogen_cache_binary_checks'
b5befac154 Autogen: Use output caching GetExecutableTestOutput
a4e01d6707 Autogen: Add output caching GetExecutableTestOutput

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2990
2019-02-20 08:55:25 -05:00
Brad King
fcdd6efb72 Merge topic 'vs-win-sdk'
4dab8e69bd VS: Tell VS 2019 to use Windows SDK 8.1 explicitly when needed
35bf9ded3b VS: Factor out a method to set the Windows SDK version internally

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2989
2019-02-20 08:54:36 -05:00
Brad King
85d779442b Merge topic 'asm-no-slash-question'
b186329d3d Use -? instead of /? to test compiler for MSVC-like command-line support

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2984
2019-02-20 08:53:41 -05:00
Brad King
943a50da55 README: Suggest bootstrapping out-of-source for development
Building in-source and running the test suite in-source both leave
many artifacts that we (purposely) do not cover via `.gitignore`.
For developing CMake we typically use out-of-source builds, so
suggest this in the README.
2019-02-20 08:00:03 -05:00
Kitware Robot
18ff514b52 CMake Nightly Date Stamp 2019-02-20 00:01:08 -05:00
Brad King
0794dd3018 Merge branch 'autogen_cache_binary_checks' into release-3.14
Merge-request: !2990
2019-02-19 13:29:48 -05:00
Sebastian Holtermann
b5befac154 Autogen: Use output caching GetExecutableTestOutput
Use the output caching cmQtAutoGenGlobalInitializer::GetExecutableTestOutput
method to avoid identical calls to moc, uic and rcc.

Closes #18947
2019-02-19 13:11:44 -05:00
Sebastian Holtermann
a4e01d6707 Autogen: Add output caching GetExecutableTestOutput
This adds the cmQtAutoGenGlobalInitializer::GetExecutableTestOutput method
which caches the output of the called executable and returns the cached value
on any subsequent call.
2019-02-19 13:11:44 -05:00
Alex Turbov
a84e509844 list: add sub-commands PREPEND, POP_BACK, POP_FRONT 2019-02-19 09:42:36 -05:00
Brad King
4f5bb64c56 Merge branch 'vs-win-sdk' into release-3.14
Merge-request: !2989
2019-02-19 09:33:34 -05:00
Brad King
4dab8e69bd VS: Tell VS 2019 to use Windows SDK 8.1 explicitly when needed
VS 2019 does not default to the 8.1 SDK as VS 2017 and VS 2015 did.
When `CMAKE_SYSTEM_VERSION` is 8.1 or lower, select the 8.1 SDK
explicitly.

Fixes: #18927
2019-02-19 09:31:50 -05:00
Brad King
35bf9ded3b VS: Factor out a method to set the Windows SDK version internally 2019-02-19 09:31:50 -05:00
Chuck Cranor
d59159afdb Cray: clean up CrayPrgEnv and CrayLinuxEnvironment modules
CrayPrgEnv:
  - add a new function __cmake_craype_linktype() that determines what
    link mode the Cray compiler wrapper will use in a more sophisticated
    way than just MATCHing for static/dynamic on the command line.

  - add a new function __cmake_craype_setupenv() that does a
    once-per-cmake-run setup that does the following:
       1. does a basic check of the wrapper's configuration.  Running
          cmake and then changing module and/or linktype configuration
          may cause build problems (since the data in the cmake cache
          may no longer be correct after the change).  We look for this
          and warn the user about it.
       2. uses the "module" provided PKG_CONFIG_PATH environment variable
          to add additional prefixes to the system prefix path.  This
          function used to be done by CrayLinuxEnvironment using the
          compiler implicit include/link paths but that is intended
          only for cross-compiling on Cray front-end nodes.  Since
          CrayPrgEnv runs on both front-end and compute nodes, we
          migrate this function here.

CrayLinuxEnvironment:
  - No need to set variables like CMAKE_SHARED_LIBRARY_PREFIX to values
    that have already been properly established by CMakeGenericSystem.cmake.
    Remove redundant sets of CMAKE_SHARED_LIBRARY_PREFIX,
    CMAKE_SHARED_LIBRARY_SUFFIX, CMAKE_STATIC_LIBRARY_PREFIX,
    CMAKE_STATIC_LIBRARY_SUFFIX, CMAKE_FIND_LIBRARY_PREFIXES, and
    CMAKE_DL_LIBS.

  - No need to add $ENV{SYSROOT_DIR}/usr/include to CMAKE_SYSTEM_INCLUDE_PATH
    when we already added $ENV{SYSROOT_DIR}/usr to CMAKE_SYSTEM_PREFIX_PATH.

  - Remove __cray_list_intersect(), __list_clean_dupes(), and buggy
    code that adds compiler implicit includes/libs to
    CMAKE_SYSTEM_INCLUDE_PATH and CMAKE_SYSTEM_LIBRARY_PATH.  This
    function has migrated to CrayPrgEnv.cmake, as noted above.

See discussion in issue #17413 for additional details.
2019-02-19 06:50:22 -07:00
Gregor Jasny
8a95808f8f cmUuid: Hide UUID group info in implementation 2019-02-19 08:49:41 -05:00
Brad King
da84643988 Merge branch 'asm-no-slash-question' into release-3.14
Merge-request: !2984
2019-02-19 07:58:13 -05:00
Brad King
7574e16096 Merge branch 'release-3.14' 2019-02-19 07:57:42 -05:00
Brad King
2bff8513f2 Merge topic 'modernize-for-loops-c-arrays'
706b93fa55 Modernize: C-arrays and loops over them

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2951
2019-02-19 07:56:41 -05:00
Craig Scott
9cab31cc79 Merge topic 'readme-msys2'
55ad9304ed README: Explain how to bootstrap via MSYS2 on Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Bartosz <gang65@poczta.onet.pl>
Merge-request: !2983
2019-02-19 07:56:06 -05:00
Brad King
2dd2079152 Merge topic 'fix-legacy-implicit-includes'
890bae524c Do not explicitly report "standard" include directories as implicit
5c171ca898 Restore unconditional use of "standard" include directories
9502276f82 Prefix implicit include directories with sysroot on construction

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2981
2019-02-19 07:54:57 -05:00
Brad King
bc34282da6 Merge topic 'FindBoost-layout-tagged'
bee6597ac5 FindBoost: Find boost libraries built with --layout=tagged

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2961
2019-02-19 07:53:47 -05:00
Brad King
13f020198f Merge branch 'fix-legacy-implicit-includes' into release-3.14
Merge-request: !2981
2019-02-19 07:50:07 -05:00
Brad King
7814796e07 Merge branch 'FindBoost-layout-tagged' into release-3.14
Merge-request: !2961
2019-02-19 07:49:26 -05:00
Brad King
b186329d3d Use -? instead of /? to test compiler for MSVC-like command-line support
MS-style command-line tools accept either `/` or `-` for command-line
options.  Prefer `-` over `/` so that non-MS tools do not treat it as a
path.

Fixes: #18941
2019-02-19 07:29:27 -05:00
Brad King
55ad9304ed README: Explain how to bootstrap via MSYS2 on Windows
Inspired-by: Bartosz Kosiorek <bartosz.kosiorek@tomtom.com>
2019-02-19 07:10:59 -05:00
Kitware Robot
2a1f661791 CMake Nightly Date Stamp 2019-02-19 00:01:06 -05:00
Vitaly Stakhovsky
0281f9a4ca cmMakefile::ConfigureFile: Accept std::string parameters 2019-02-18 20:48:19 -05:00
Brad King
890bae524c Do not explicitly report "standard" include directories as implicit
In commit 1293ed8507 (ParseImplicitIncludeInfo: keep implicit incl.
consistent when rerunning cmake, 2019-01-30, v3.14.0-rc1~26^2) we did
not account for `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES`.  This
variable lets platform modules or toolchain files specify directories
that are to be explicitly passed as standard include directories.  These
include directories are used by the test project from which we extract
implicit include directories so they appear in the parsed results
whether or not the compiler really considers them implicit.  Exclude
these entries from the computed implicit include directories since they
are not actually implied by the compiler when we invoke it with
"standard" include directories passed explicitly.

Instead teach the build system generators to treat the "standard"
directories as implicit for purposes of excluding them from appearing
earlier in the compiler command line due to `include_directories` and
`target_include_directories` calls.

Issue: #18936, #18944
2019-02-18 17:12:14 -05:00
Brad King
5c171ca898 Restore unconditional use of "standard" include directories
`CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` is meant to unconditionally
add explicitly specified include directories to compile lines.  In
commit 5f34bdc7f9 (cmLocalGenerator: Refactor
`GetIncludeDirectoriesImplicit` method, 2019-01-25, v3.14.0-rc1~65^2~1)
a condition was accidentally added to exclude implicit include
directories.  Drop that condition.

Fixes: #18936
2019-02-18 17:10:07 -05:00
Brad King
9502276f82 Prefix implicit include directories with sysroot on construction
Since commit 7cd65c97fa (Add CMAKE_SYSROOT variable to set --sysroot
when cross compiling., 2013-04-13, v3.0.0-rc1~342^2) we have prefixed
the value of `CMAKE_SYSROOT` to implicit include directories.  This was
done because we hard-coded `/usr/include` as an implicit include
directory without accounting for the sysroot.  Instead we should prefix
the hard-coded paths when they are constructed.  Update the
`Platform/UnixPaths` module to do this as `Platform/Darwin` already
does.

Since commit 5990ecb741 (Compute implicit include directories from
compiler output, 2018-12-07, v3.14.0-rc1~108^2) the values of the
`CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` variables are computed from
a real compiler invocation so they already account for the sysroot
prefix.  In commit 6fc3382944 (Update logic for sysroot in detected
implicit include directories, 2019-02-13, v3.14.0-rc2~6^2) we attempted
to apply the prefix conditionally, but that is incorrect because the
compiler's real implicit include directories are not all under the
sysroot.  Instead assume that all implicit include directories in
`CMAKE_<LANG>_IMPLICIT_INCLUDE_DIRECTORIES` already have the sysroot
prefix if needed.  Code that constructs the value must be responsible
for that because it is the only place that knows.
2019-02-18 17:09:26 -05:00
Saleem Abdulrasool
c489c3e715 Ninja: remove duplicate local variable (NFC)
Remove the second reference to the generator target.
2019-02-18 12:09:20 -08:00
Saleem Abdulrasool
c048cb75fc Ninja: add properties for Swift partial module and doc
When building a swift object, we emit a partial swiftmodule and swiftdoc
that must be merged at the end.  However, in order to do that, we need
to enumerate the swiftmodules and swiftdocs.  As a result, the path must
be known to CMake.  Rather than hardcoding the rules into CMake, create
a source property that we can query.  This will allow us to create a
final placeholder to emit the merge rule.

Issue: #18800
2019-02-18 11:15:47 -08:00
Yves Frederix
bee6597ac5 FindBoost: Find boost libraries built with --layout=tagged
Pick up libraries of the form `boost_system-mt-x64`, which do not have
the version suffix.

Fixes: #18908
2019-02-18 10:53:42 -05:00
Brad King
75b45956e0 Merge branch 'release-3.14' 2019-02-18 10:22:55 -05:00
Brad King
566652b0c8 Merge topic 'file_symlink_docs'
0f5a9f7934 Help: Clarify and improve readability of link-related file subcommands

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2974
2019-02-18 10:22:35 -05:00
Brad King
926a97e975 Merge branch 'file_symlink_docs' into release-3.14
Merge-request: !2974
2019-02-18 09:22:13 -05:00
Brad King
0923246b2e Merge topic 'require-xcode-5'
afb325018e Xcode: Require at least Xcode 5

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2975
2019-02-18 09:20:16 -05:00
Brad King
bafd0ffa98 Merge branch 'release-3.14' 2019-02-18 09:11:21 -05:00
Brad King
0f2eb9ac6f Merge topic 'get_filename_component_docs'
2cc145928c Help: Remove outdated statement about get_filename_component()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2973
2019-02-18 09:09:55 -05:00
Brad King
786edf9ab4 Merge topic 'externalproject_docs'
f2072a6554 Help: Clarify ExternalProject_Add()'s LOG_MERGED_STDOUTERR behavior
f2820bce15 Release notes: Make ExternalProject dot points consistent

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2978
2019-02-18 09:09:02 -05:00