36461 Commits

Author SHA1 Message Date
Brad King
ddeabf05d8 CMake 3.9.4 v3.9.4 2017-10-04 07:44:08 -04:00
Brad King
d70ef7eff6 Merge branch 'FindBoost-fix-policy-scope' into release-3.9
This has no corresponding merge-request because the branch was
made as a direct fixup specific to 3.9.
2017-09-27 06:13:53 -04:00
Brad King
ed44b56a12 FindBoost: Finish reverting "Simplify search in lists" for 3.9
In commit v3.9.2~3^2 (FindBoost: Revert "Simplify search in lists.",
2017-09-05) we forgot to also revert commit commit v3.9.1~15^2
(FindBoost: pop policy stack before returning, 2017-07-24) which had
been made as a fixup to the original commit.

Fixes: #17309
2017-09-27 06:09:21 -04:00
Brad King
7486607c87 CMake 3.9.3 v3.9.3 2017-09-20 07:53:03 -04:00
Brad King
8dae0ab6d1 Merge branch 'CTest-crash-missing-glob' into release-3.9
Merge-request: !1289
2017-09-19 11:50:20 -04:00
Rolf Eike Beer
6db6301205 CTest: fix crash if source file for coverage cannot be found
The opened XML elements were not closed, so an assert was triggered when the
file was finally closed. If CMake is built with assertions disabled then an
invalid XML file will be produced.
2017-09-19 17:37:29 +02:00
Brad King
d44202ef05 Merge branch 'backport-FindBoost-1.65' into release-3.9
Merge-request: !1280
2017-09-18 08:59:30 -04:00
Roger Leigh
ee1f890332 FindBoost: Add support for Boost 1.65.0 and 1.65.1 to CMake 3.9
Backport the changes from commit fa114e7d70 (FindBoost: Add Boost 1.65
dependencies, 2017-08-22) and commit dbba53a5aa (FindBoost: Add version
1.65.1, 2017-09-06) to CMake 3.9.

Fixes: #17289
2017-09-18 08:57:18 -04:00
Brad King
c727459da9 Merge branch 'revert-vim-no-tabs' into release-3.9
Merge-request: !1273
2017-09-18 08:44:55 -04:00
Maarten de Vries
0d543589b9 vim: Remove default setting of expandtab
An update from vim-cmake-syntax by commit v3.9.0-rc1~167^2^2
(vim-cmake-syntax 2017-05-02, 2017-05-02) brought in a change to set
`expandtab` in CMake language files.  This should be a per-project or
per-user choice instead, so drop the setting.
2017-09-18 08:41:53 -04:00
Brad King
badc892ff8 Merge branch 'backport-autogen-target-depends' into release-3.9
Merge-request: !1257
2017-09-13 15:08:08 -04:00
Sebastian Holtermann
b494308dab Autogen: Tests: Backport tests for _autogen target dependencies 2017-09-13 15:07:46 -04:00
Sebastian Holtermann
d0f1581719 Autogen: Backport autogen target dependency as file dependency fix
Target dependencies of the origin target were mistakenly forwarded to
the _autogen target as *file* dependencies.  This patch introduces
proper distinction between *target* and *file* dependencies of the
_autogen target.

This patch also changes when PRE_BUILD is used for AUTOGEN in the Visual
Studio generator. Formerly PRE_BUILD was disabled when the origin target
depended on *any* other target. Now PRE_BUILD is only disabled if a
dependency of the _autogen target to an additional *file* is detected.

Fixes: #17278, #17205
2017-09-13 15:04:31 -04:00
Brad King
f95dceccb5 Merge branch 'bootstrap-twice-in-source' into release-3.9
Merge-request: !1258
2017-09-13 10:37:31 -04:00
Brad King
a3deae7199 bootstrap: Fix running multiple times in-source
Since commit v3.9.0-rc1~281^2 (Use quotes for non-system includes,
2017-04-11) we include `cmConfigure.h` via `""` instead of `<>`.
This breaks the `bootstrap` script when run more than once in an
in-source build.  In that case `cmConfigure.h` is generated next
to the source files that include it, so `""`-style includes prevent the
`Bootstrap.cmk/cmConfigure.h` file from being included during bootstrap.

Fix this by teaching the bootstrap script to remove any `cmConfigure.h`
that may have been generated by an earlier run in an in-source build.

Fixes: #17082
2017-09-13 10:37:14 -04:00
Brad King
9f66fe9a01 Merge branch 'backport-vs-fix-config-map' into release-3.9
Merge-request: !1256
2017-09-13 09:56:23 -04:00
Brad King
c5b5bb270f VS: Do not consider MAP_IMPORTED_CONFIG_<CONFIG> on non-imported targets
Since commit v3.9.0-rc1~309^2 (include_external_msproject: Honor
MAP_IMPORTED_CONFIG_<CONFIG>, 2017-04-04) we accidentally honor
`MAP_IMPORTED_CONFIG_<CONFIG>` while generating the `.sln` file entries
for normal targets.  This causes `devenv.com`-driven builds to use the
mapping incorrectly for normal targets.  Check that a target really
comes from `include_external_msproject` before considering the map.

Furthermore, when we do use the map, we should only take the first entry
if more than one configuration is specified.  Otherwise we end up giving
VS a configuration name with a `;` in it.

Fixes: #17276
2017-09-13 09:37:30 -04:00
Brad King
ffa164736e CMake 3.9.2 v3.9.2 2017-09-07 12:14:26 -04:00
Brad King
53f15b730a Merge branch 'backport-genex-SOURCES-test' into release-3.9 2017-09-07 12:12:04 -04:00
Brad King
1167360b99 Tests: Fix RunCMake.GeneratorExpression to run in CMake 3.9
CMake 3.9 does not have CMP0070, so port away from it for that branch.
2017-09-07 12:08:34 -04:00
Brad King
80420d3c01 Merge branch 'backport-irsl-vs15-future' into release-3.9
Merge-request: !1240
2017-09-06 11:47:50 -04:00
Brad King
1dd2c08b19 InstallRequiredSystemLibraries: Add support for future VS 2017 toolchains
Assume that all cl 19.xx versions will use the same runtime DLL pattern.

Suggested-by: Tomasz Słodkowicz <slodki@users.noreply.github.com>
2017-09-06 11:36:47 -04:00
Brad King
55c4b6818e Merge branch 'FindBoost-fix-policy-scope' into release-3.9
Merge-request: !1238
2017-09-05 14:10:32 -04:00
Brad King
ade45fa342 FindBoost: Revert "Simplify search in lists."
Revert commit v3.9.0-rc1~41^2 (FindBoost: Simplify search in lists,
2017-04-23).  It regressed the module by exposing issue #17257, but the
fix for that issue is not suitable for inclusion in a patch release.
It is simplest to revert the commit until the larger problem can be
addressed.

Fixes: #17252
2017-09-05 14:04:51 -04:00
Brad King
dfc11d71bd Merge branch 'android-ndk-r16' into release-3.9
Merge-request: !1237
2017-09-05 12:54:45 -04:00
Brad King
5a1a1177bf Android: Update for NDK r16
Since NDK commit 90ec78ffd96b87cd75d82575587ead14d6494df1 (Remove Clang
toolchain path from setup.mk, 2017-05-31) the `setup.mk` files for Clang
no longer hold the path to the `toolchains/llvm` directory.  It has been
the same since NDK r11, so use that as the default.

Fixes: #17253
2017-09-05 12:52:09 -04:00
Brad King
27816fa741 Merge branch 'csharp_fix_initial_flags' into release-3.9
Merge-request: !1232
2017-09-05 09:58:53 -04:00
Michael Stürmer
a3388900f8 VS: Initialize CSharp flags consistently
Use the same environment variable for the initial flags that we
use for the compiler id.

Fixes: #17250
2017-09-05 09:58:43 -04:00
Brad King
741eca9c6c Merge branch 'findopenmp-found' into release-3.9
Merge-request: !1233
2017-09-05 09:54:55 -04:00
Christian Pfeiffer
91fbda8247 FindOpenMP: Restore OpenMP_FOUND result variable
The overhaul in commit v3.9.0-rc1~207^2~1 (FindOpenMP: Complete
overhaul, 2017-04-24) documented this variable but accidentally left it
unset.

Fixes: #17251
2017-09-05 09:54:48 -04:00
Brad King
2ce84615f1 Merge branch 'backport-vs-csharp-ref-no-asm' into release-3.9
Merge-request: !1203
2017-09-05 09:43:24 -04:00
Michael Stürmer
7e57e6ae12 VS: Do not reference output assemblies if not possible for CSharp target
Since commit v3.9.0-rc4~4^2 (Vs: allow CSharp targets to be linked to
CXX targets, 2017-06-20) CSharp targets get `ProjectReference` entries
to their dependencies.  This causes VS to also reference the
dependency's output assembly by default, which is incorrect for
non-managed targets.

Fix this by setting `ReferenceOutputAssembly` to `false` for targets
that can't provide output assemblies.  Unmanaged C++ targets (shared
libs & executables) can still be referenced and a warning will be shown
in the IDE but the build will not break anymore.

Fixes: #17172
2017-09-05 09:41:40 -04:00
Brad King
2820de210b Merge branch 'fix-genex-SOURCES' into release-3.9
Merge-request: !1218
2017-09-01 10:24:12 -04:00
Brad King
068cc545d9 Genex: Fix TARGET_PROPERTY value of SOURCES
Refactoring in commit v3.8.0-rc1~445^2~2 (cmTarget: Move sanity checks
and computed property access to callers, 2016-10-13) exposed a typo in
commit v3.8.0-rc1~445^2~3 (cmGeneratorTarget: Implement
cmTargetPropertyComputer interface, 2016-10-13).  Together they broke
the `$<TARGET_PROPERTY:mytgt,SOURCES>` generator expression in the case
that the `SOURCES` target property is populated in part by the
`target_sources` command.  Add the missing `;`-separator.

Fixes: #17243
2017-09-01 10:23:37 -04:00
Brad King
2990799227 Merge branch 'fix-find-package-mode' into release-3.9
Merge-request: !1208
2017-08-29 15:33:24 -04:00
Brad King
18454ea44d cmake: Fix --find-package mode with imported targets
The change in commit v3.9.0-rc1~116^2~6 (cmakemain: use script role for
-P, 2017-05-11) accidentally left project commands out of find-package
mode, causing packages that provide imported targets to break.

Fixes: #17124
2017-08-29 15:30:07 -04:00
Brad King
05840793fd Merge branch 'cpack-dmg-iwyu' into release-3.9
Merge-request: !1206
2017-08-29 11:26:59 -04:00
Brad King
8c51dbdd9b cmCPackDragNDropGenerator: Add missing include
We use `std::sort` and so must include `<algorithm>`.

Issue: #17233
2017-08-29 11:24:36 -04:00
Brad King
e498dad3f2 Merge branch 'revert-xcode-9-new-buildsystem-support' into release-3.9
Merge-request: !1183
2017-08-24 11:43:06 -04:00
Brad King
9ecee256f8 Xcode: Revert addition of "outputPaths" to custom command build phase
The change in commit v3.9.0~3^2 (Xcode: Add "outputPaths" to custom
command script build phase, 2017-07-13) was meant to support Xcode 9's
new build system.  However, without matching "inputPaths", Xcode will
not re-run the build phase if its outputs have already been generated.
This broke the old Xcode build system too.

Revert the change for now so at least the old Xcode build system works.
Further investigation will be needed to add proper support for Xcode 9's
new build system.

Fixes: #17178
2017-08-24 10:56:48 -04:00
Brad King
6fd0c72115 Merge branch 'ninja-cl-intl' into release-3.9
Merge-request: !1179
2017-08-23 11:36:35 -04:00
Brad King
de9840d1b8 Ninja: Fix support for MSVC with non-English output
With MSVC the Ninja generator extracts the `cl -showIncludes` prefix.
When MSVC is configured to have non-English output, e.g. via
`VSLANG=2052` in the environment, then `cl` prints the prefix encoded
for the current code page, which is not necessarily UTF-8 encoding.
Currently we fail to convert the prefix to our internal UTF-8 encoding,
but assume it is UTF-8 later.

While writing `rules.ninja`, the Ninja generator converts our internal
UTF-8 encoding to the current code page.  The `msvc_deps_prefix =` line
needs to be encoded as the current code page so that `ninja` can match
in the output from `cl -showIncludes` during the build.

Prior to commit v3.9.0-rc1~47^2 (codecvt: Re-implement do_out and
do_unshift, 2017-05-25), the non-UTF-8 prefix extracted above was
written without noticing its incorrect internal encoding.  The
`rules.ninja` file was successfully written, but possibly with a mangled
`msvc_deps_prefix`.  Since that commit the output stream correctly
rejects the non-UTF-8 byte sequence and writing `rules.ninja` fails.

Fix this by correctly converting the `cl -showIncludes` output from the
current code page to our internal UTF-8 encoding.

Fixes: #17191
2017-08-23 11:10:41 -04:00
Brad King
02645aa6ae Merge branch 'InstallRequiredSystemLibraries-vs15.3' into release-3.9
Merge-request: !1168
2017-08-22 07:30:30 -04:00
Brad King
3f17ccce1c Merge branch 'revert-macos-hidpi-qt-dialog' into release-3.9
Merge-request: !1167
2017-08-22 07:30:20 -04:00
Brad King
286c75f7f0 macOS: Revert default Hi-DPI support in applications
This reverts commit v3.9.0-rc1~287^2 (macOS: Enable Hi-DPI support in
applications by default, 2017-04-08).  It breaks iOS applications that
do not use their own `MACOSX_BUNDLE_INFO_PLIST` because `NSApplication`
is only for macOS apps.  Until more complete support for iOS is added
to CMake (e.g. with a different default plist file) we must allow
our default plist file to work for both macOS and iOS.

Fixes: #17179
2017-08-22 07:29:20 -04:00
Brad King
23cf9e152f InstallRequiredSystemLibraries: Find VS 2017 Update 3 redist directory
Add compiler version 19.11 to our table.

Fixes: #17184
2017-08-21 11:59:33 -04:00
Brad King
b45d8432c2 InstallRequiredSystemLibraries: Factor redist name into variable
Store the `VC###` component of the `Microsoft.VC###.CRT` directory name
in a variable set based on the toolchain version.  Its naming convention
is changed by VS 15.3.
2017-08-21 11:59:31 -04:00
Brad King
f78228dfd5 Merge branch 'debian_clang_binutils' into release-3.9
Merge-request: !1127
2017-08-15 14:53:58 -04:00
Sylvain Joubert
630235bd9e Clang: Find version-suffixed LLVM/Clang binutils
Debian renames all LLVM/Clang binaries with a version suffix to allow
multiple versions to be installed at the same time.  While there is a
version-agnostic package that adds a symlink to provide the standard
binary names, if only the versioned packages are installed, binaries
must be found as `binary-x.y`.  In any case, using the same version of
the `binutils` as the compiler seems better.
2017-08-15 14:51:44 -04:00
Brad King
d4b8a6b9d6 Merge branch 'cuda-device-link-ccbin' into release-3.9
Merge-request: !1138
2017-08-15 14:47:21 -04:00