Commit Graph

21338 Commits

Author SHA1 Message Date
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
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
Brad King f564e4ab01 Merge topic 'autogen-fix-cmake-error'
a189d019 QtAutogen: Use cmSystemTools::Error instead of std::cerr
2016-10-01 08:20:36 -04:00
Brad King 8202816a36 Merge topic 'autogen-empty-qrc'
bcafc399 QtAutogen: Add test for empty qrc file
98b11f25 QtAutogen: Allow .qrc files that do not contain any file reference
2016-10-01 08:20:33 -04:00
Brad King de486a6895 Merge topic 'aux_source_directory-sort'
50b27de4 aux_source_directory: Sort results to make it deterministic
2016-10-01 08:20:30 -04:00
Kitware Robot 541394f30a CMake Nightly Date Stamp 2016-10-01 00:01:04 -04:00
Brad King 1b43f9d12d cmake-server: Stop the file monitor on client disconnect
When the client disconnects we need to remove all events from our loop.
Prior to the introduction of the file monitor we only needed to remove
the client pipes.  Now we need to remove the file monitor events too.

Without this the event loop may continue to block on file monitor
events.  If one does eventually come in then the event handler may try
to report it to the disconnected client and crash because our internal
structures for writing to the client have been freed.

This addresses a failure of the `Server` test on some machines.
2016-09-30 15:05:42 -04:00
Junghyun Kim 50b27de421 aux_source_directory: Sort results to make it deterministic
The change in commit v3.6.0-rc1~54^2 (file: Sort GLOB results to make it
deterministic, 2016-05-14) makes sense for `aux_source_directory` too.

Signed-off-by: Junghyun Kim <jh0822.kim@samsung.com>
2016-09-30 10:30:15 -04:00
Sebastian Holtermann a189d019dd QtAutogen: Use cmSystemTools::Error instead of std::cerr
We can use std::cerr only in the build-time tool, not during CMake
generation.
2016-09-30 10:12:59 -04:00
Sebastian Holtermann 98b11f252c QtAutogen: Allow .qrc files that do not contain any file reference 2016-09-30 10:02:48 -04:00
Brad King 8491a539cf Merge topic 'cmake-server-filewatcher'
4e34f042 server-mode: Watch CMakeLists.txt files
26250002 server-mode: Report watched files to client
0d96e193 server-mode: Add infrastructure to watch the filesystem
2016-09-30 08:07:29 -04:00
Brad King 9c932109a2 Merge topic 'cmake-server-enable-more'
957e72c0 Utilities/Release: Use python 3 for server mode test on Linux binary
64934f20 Utilities/Release: Enable server mode in all binaries
ec0bf638 bootstrap: Add options to enable/disable server mode explicitly
523f8ec8 server-mode: Add option to enable/disable test case explicitly
6b97a5ef server-mode: Add option to enable/disable the mode explicitly
a8334961 server-mode: Rename variable CMake_{HAVE => ENABLE}_SERVER_MODE
97b6e17c server-mode: Enable from bootstrapped CMake build
2016-09-30 08:07:26 -04:00