Commit Graph

21348 Commits

Author SHA1 Message Date
Brad King 27431de162 VS: Fix standalone Windows7.1SDK toolset selection
Since commit v3.7.0-rc1~142^2~1 (VS: Explicitly default to v100 toolset
in Visual Studio 2010, 2016-07-21) we prefer to always set a platform
toolset explicitly so that `CMAKE_VS_PLATFORM_TOOLSET` can be reported.
However, the `v100` default for the VS 10 generator is not appropriate
for all environments.  We fixed support for VS 2010 Express Edition in
commit v3.7.0-rc1~142^2 (VS: Do not default to missing v100 64-bit
toolset on VS 2010 Express, 2016-09-09).

Fix support for the standalone Windows7.1SDK toolset environment by
recognizing the `PlatformToolset` environment variable that it sets to
`Windows7.1SDK` and using this as our default toolset instead.

Closes: #16483
2016-12-07 11:02:54 -05:00
Brad King db3499df5d CMake 3.7.1 2016-11-30 09:54:05 -05:00
Brad King f75d936a04 Merge branch 'vs15-rename-generator' into release 2016-11-29 11:05:29 -05:00
Roman Wüger d639620e14 VS: Rename VS 15 generator to 'Visual Studio 15 2017'
The final name of this VS version was announced:

 https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-2017-rc/

Add the year to the generator name accordingly.  For convenience, map
the name without the year to the name with the year.
2016-11-29 10:46:36 -05:00
Brad King ca7a52fc59 Merge branch '16449-revert-xcode-system-includes' into release 2016-11-28 13:57:56 -05:00
Gregor Jasny 543dcb0ada Revert "Xcode: Obey SYSTEM keyword for includes (#15687)"
Revert commit v3.7.0-rc1~266^2 (Xcode: Obey SYSTEM keyword for includes,
2015-08-31).  It worked for C, C++, and Swift but not for GNU Assembly
files for which Xcode has no property to set flags.

Closes: #16449
2016-11-28 13:42:46 -05:00
Brad King 37966a5799 Merge branch 'vs-15-preview-5' into release 2016-11-18 11:43:43 -05:00
Brad King afb4a224be Merge branch 'cmake-server-fix-16423' into release 2016-11-14 11:24:56 -05:00
Tobias Hunger 516a2cd360 server-mode: Reset GlobalGenerator before configure
This is what cmake-gui also does to avoid CMake crashing on repeated
attempts to configure it.

Fixes #16423.
2016-11-14 11:06:37 -05:00
Tobias Hunger d0a707b3d0 server-mode: Prevent possible crash when watching directories
The `filename` passed by libuv may be `nullptr`, so handle that
explicitly.

Fixes: #16422
2016-11-14 10:18:44 -05:00
Brad King 5cfc2e926a CMake 3.7.0 2016-11-11 09:24:18 -05:00
Brad King e4232b82e6 QtAutogen: Do not re-generate AUTORCC outputs on every build
Refactoring in commit v3.6.0-rc1~134^2~10 (Autogen: Split out moc file
generation code to dedicated method, 2016-04-18) removed the
unconditional creation of the `<target>_automoc.cpp` file.  Now it is
generated only when `AUTOMOC` is enabled.  However, if this file is not
created then our internal `GenerateAll` setting is enabled on every
build, causing `AUTORCC` to re-generate its file(s) every time.  Fix the
`GenerateAll` setting to be used only for when autogen settings change.
The old logic was left from when we had only automoc.

Closes: #16413
2016-11-09 11:22:07 -05:00
Brad King adf5f253ec CMake 3.7.0-rc3 2016-11-04 08:30:22 -04:00
Brad King a316f5fd6d Merge branch 'cmake-server-handshake-improvements' into release 2016-10-28 08:27:21 -04:00
Tobias Hunger 42ccbee11c server-mode: Handle generator toolset and platform in handshake 2016-10-28 13:46:15 +02:00
Tobias Hunger d792491c40 cmake-server: Better error reporting during handshake
Catch more problematic input during handshake and report failure.

These were caught before when trying to configure, but it is way better
to get these reports early.
2016-10-27 14:18:42 -04:00
Brad King 4ec0329bf1 Merge branch 'cmake-server-message-quoting' into release 2016-10-24 14:36:50 -04:00
Brad King 9b8dc79cc8 cmake-server: Change message wrapper to avoid ambiguity with content
Change our message wrapper from

    [== CMake Server ==[ ... ]== CMake Server ==]

to

    [== "CMake Server" ==[ ... ]== "CMake Server" ==]

to guarantee that no JSON content can ever contain the ending string
(because it would be encoded as `]== \"CMake Server\" ==]`).
2016-10-24 14:36:13 -04:00
Alexis Murzeau 42db2ebc75 Ninja: Use binary dir for `$subdir/all` targets
The targets added by commit v3.6.0-rc1~240^2~2 (Ninja: Add `$subdir/all`
targets, 2016-03-11) use as `$subdir` the relative path from the top of
the source tree to the current source directory.  This is not correct
when using `add_subdirectory(test test_bin)`.  Instead we need to use
the relative path from the top of the binary tree to the current binary
directory as was done for related targets by commit v3.7.0-rc1~268^2
(Ninja: Add `$subdir/{test,install,package}` targets, 2016-08-05).
2016-10-24 09:49:23 -04:00
Brad King 876da11858 CMake 3.7.0-rc2 2016-10-19 08:53:08 -04:00
Brad King 074999171c Merge branch 'cmake-server-pipe-mode-fix' into release 2016-10-18 13:12:02 -04:00
Tobias Hunger 9112c43ebc server-mode: Fix named pipe mode
Do not treat a pointer itself as a `uv_stream_t`, but instead the
pointed-to `uv_pipe_t`.  It is unclear how this ever worked before in
local testing.

While at it, remove duplicate setup code and improve an error message.
2016-10-18 10:55:01 -04:00
Brad King a975b21cec Merge branch 'ninja-framework-POST_BUILD' into release 2016-10-13 14:09:43 -04:00
Brad King 20278872e3 Ninja: Fix POST_BUILD commands on macOS Frameworks
The condition added by commit v2.8.12~179^2 (OS X: Fix regression
handling frameworks for Ninja, 2013-07-16) for excluding use of
versioning symlinks on macOS Frameworks must match that used for
POST_BUILD selection.  Otherwise we place the POST_BUILD commands after
a symlink step that is never added.

Closes: #16363
2016-10-13 14:04:12 -04:00
Brad King 2d6fba6780 Merge branch 'backport-LINK_WHAT_YOU_USE-allow-OFF' into release 2016-10-13 13:38:28 -04:00
Jamie Snape 933e54d3cc Honor LINK_WHAT_YOU_USE when set to OFF
Explicitly setting variable CMAKE_LINK_WHAT_YOU_USE or property
LINK_WHAT_YOU_USE to OFF should not cause LWYU to run.  Fix the
property lookup to use GetPropertyAsBool.
2016-10-13 13:32:22 -04:00
Brad King f6386a768e Merge branch 'ninja-rc-regression' into release 2016-10-13 13:15:46 -04:00
Ben Boeckel 9977899df2 Ninja: Fix RC language depfile generation with cmcldeps
In commit v3.7.0-rc1~275^2 (Ninja: Use full path for all source files,
2016-08-05), the source path was changed to use an absolute path.
Inside of `cmcldeps` for `.rc` file compilation, it uses a separate
argument for the path to the source file.  This ended up causing
`cmcldeps` to transform the following call:

    cmcldeps.exe RC source.rc ... C:/full/path/to/source.rc

into:

    ... C:/full/path/to//Tc source.rc

which is invalid.  Update the source filename to use the full path to
the source file so that the path is replaced properly.
2016-10-13 13:03:57 -04:00
Brad King d0255d55e1 Merge branch 'cmake-gui-fix-extra-generator-names' into release 2016-10-11 08:42:16 -04:00
Brad King bf86012ada cmake-gui: Fix "extra" generator entries in drop-down list
Refactoring in commit v3.7.0-rc1~291^2~1 (Refactor extra generator
registration to use factories, 2016-07-20) accidentally switched
the order of the "extra - base" generator names to "base - extra".
Switch it back.  While this could affect all callers of the
`GetRegisteredGenerators` method, only cmake-gui actually used this
particular field.

Closes: #16359
2016-10-11 08:39:44 -04:00
Brad King 271170144a Merge branch 'vs15-separate-flag-table' into release 2016-10-10 11:46:20 -04:00
Brad King b1d67ae8a5 VS: Split flag table between v140 and v141 toolsets
In commit v3.7.0-rc1~156^2~1 (VS: Update v140 flag tables from VS 15
MSBuild files, 2016-09-02) we extended the v140 flag table with values
from the v141 toolset that comes with VS 15.  However, the v140 toolset
that comes with VS 14 does not have all of these entries and so the
flags just need to be passed without special mapping.  In order to
support both toolsets, split our CL flag table into separate copies for
each version and switch off the toolset name.

Closes: #16352
2016-10-10 11:43:39 -04:00
Brad King 9f240cff8a Merge branch 'update-kwsys' into release 2016-10-08 05:28:15 -04:00
Brad King c22f3cf715 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-10-07 (dfe9b386)
2016-10-08 05:25:35 -04:00
Brad King 5d8da06d60 Merge branch 'android-export-has-cpp' into release 2016-10-07 15:03:15 -04:00
Brad King dda6775c94 Android: Record use of C++ by static libs in exported Android.mk files
When a `PREBUILT_STATIC_LIBRARY` uses C++ in its sources then the `.a`
file will have a link-time dependency on the C++ runtime libraries.
Android NDK r14 will add a way to give this information to the NDK build
system by adding a `LOCAL_HAS_CPP` setting to the `Android.mk` file.
Add this for exported static libraries that use C++.
2016-10-07 15:02:42 -04:00
Brad King fbc1a30b87 Merge branch 'codelite-global-setting' into release 2016-10-07 09:01:30 -04:00
Stephen Kelly 80574a38e6 Codelite: Consume the CMAKE_CODELITE_USE_TARGETS setting globally 2016-10-07 09:01:07 -04:00
Brad King 02b7d278c8 VS: Update VS 15 generator for Preview 5
The `PlatformToolset` is now `v141` instead of `v140`.

Closes: #16347
2016-10-06 16:46:53 -04:00
Stephen Kelly f59e877929 cmGlobalGenerator: Add API to get settings from top-level cmMakefile
At generate-time, definitions are sometimes read from a nearby cmMakefile,
making the value directory-specific because they are read once per
directory.  Often however, the intention is more
often to create a 'global' setting, such that the user writes for
example:

 set(CMAKE_IMPORT_LIBRARY_SUFFIX something)

once at the top level of their project.

Many of these are also set by internal platform files, such as
CMAKE_EXTRA_LINK_EXTENSIONS.

The set() definitions are not really suitable for 'global' settings
because they can be different for each directory, and code consuming the
settings must assume they are different for each directory, and read it
freshly each time with new allocations.

CMake has other variable types which are global in scope, such as global
properties, and cache variables.  These are less convenient to populate
for users, so establish a convention and API using the value as it is at
the end of the top-level CMakeLists file.
2016-10-06 18:41:06 +02:00
Brad King 1bc8a66d07 Merge branch 'fix-VS-resources-pri-path' into release 2016-10-05 09:23:57 -04:00
Roman Wüger 646d01da95 VS: Use absolute target-specific directory for `resources.pri`
The change in commit v3.7.0-rc1~219^2 (VS: Use target-specific directory
for `resources.pri`, 2016-08-25) incorrectly specifies a relative path
for the `ProjectPriFullPath` value.  Fix it to use an absolute path.

Issue: #16106
2016-10-05 09:21:58 -04:00
Brad King fb2a399528 Merge branch 'qtifw-https-cmake.org' into release 2016-10-04 11:40:25 -04:00
Brad King 5ffeb9bc13 Merge branch 'cmake-server-improve-shutdown' into release 2016-10-04 11:40:20 -04:00
Brad King eb1a57d7e7 QtIFW: Reference cmake.org via https in cmake.org.html 2016-10-04 11:40:01 -04:00
Tobias Hunger 68277e16c4 server-mode: Improve shutdown behavior
Add a signal handler to trigger shutdown and be more paranoid about
libuv doing things asynchronously.  This should fix test cases not
shutting down properly.
2016-10-04 09:15:32 -04:00
Brad King 46f3306f6a CMake 3.7.0-rc1 version update 2016-10-03 09:08:04 -04:00
Brad King bed8d6b887 Merge topic 'cmake-server-teardown-file-monitor'
1b43f9d1 cmake-server: Stop the file monitor on client disconnect
2016-10-03 09:01:51 -04:00
Kitware Robot 2d4aeb1ff1 CMake Nightly Date Stamp 2016-10-03 00:01:02 -04:00
Kitware Robot 52fb3d78d3 CMake Nightly Date Stamp 2016-10-02 00:01:04 -04:00