Commit Graph

33125 Commits

Author SHA1 Message Date
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
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
Brad King b90aa96c78 Merge topic 'update-libuv'
f9cab9e3 Merge branch 'upstream-libuv' into update-libuv
66ac1feb libuv 2016-09-27 (8221f9b3)
2016-09-30 08:07:23 -04:00
Brad King dd0ba564e4 Merge topic 'update-kwsys'
6fe45e98 Merge branch 'upstream-KWSys' into update-kwsys
0ab471ad KWSys 2016-09-29 (6cfcbede)
2016-09-30 08:07:20 -04:00
Kitware Robot 7246e0c2ef CMake Nightly Date Stamp 2016-09-30 00:01:05 -04:00
Tobias Hunger 4e34f04250 server-mode: Watch CMakeLists.txt files
Watch CMakeLists.txt files (and similar) from the Server
2016-09-29 22:34:10 +02:00
Tobias Hunger 262500028c server-mode: Report watched files to client
* Add a command to report watched files and directories to clients.
2016-09-29 21:47:05 +02:00
Tobias Hunger 0d96e19329 server-mode: Add infrastructure to watch the filesystem
Enable the server to watch for filesystem changes. This patch includes
* The infrastructure for the file watching
* makes that infrastructure available to cmServerProtocols
* Resets the filesystemwatchers on "configure"
2016-09-29 21:47:05 +02:00
Brad King f9cab9e38d Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2016-09-27 (8221f9b3)
2016-09-29 14:19:51 -04:00
libuv upstream 66ac1febc4 libuv 2016-09-27 (8221f9b3)
Code extracted from:

    https://github.com/libuv/libuv.git

at commit 8221f9b305c09205be575d8d34a5c493ba03d392 (v1.x).
2016-09-29 14:19:50 -04:00
Brad King 957e72c0c5 Utilities/Release: Use python 3 for server mode test on Linux binary
The machine that builds the Linux binary has python 3 and 2.6, but the
latter is too old for the server mode test script.
2016-09-29 13:55:15 -04:00
Brad King 64934f2069 Utilities/Release: Enable server mode in all binaries
Add the CMake_ENABLE_SERVER_MODE option explicitly to the configuration
of all binary builds.  We want to know the mode is available if the
build succeeds.
2016-09-29 13:55:15 -04:00
Brad King ec0bf63823 bootstrap: Add options to enable/disable server mode explicitly 2016-09-29 13:55:15 -04:00
Brad King 523f8ec82c server-mode: Add option to enable/disable test case explicitly
Add a `CMake_TEST_SERVER_MODE` option that can be set in testing builds
to enable/disable server mode tests explicitly.  This will allow testing
in combination with `CMake_TEST_EXTERNAL_CMAKE` or for server mode to be
built on systems that have a python version that cannot run the test.
2016-09-29 13:40:21 -04:00
Brad King 6b97a5efc6 server-mode: Add option to enable/disable the mode explicitly
Provide a way for scripts building CMake to enable server mode
explicitly and assume the risk of a build failure if it is not
supported.  This will allow such scripts to ensure that server
mode is available if the build succeeds.  It also allows scripts
to explicitly disable server mode even if it would be supported.
2016-09-29 13:38:47 -04:00
Brad King a833496199 server-mode: Rename variable CMake_{HAVE => ENABLE}_SERVER_MODE
The latter is a better name for making it a public-facing option.
2016-09-29 13:20:10 -04:00
Brad King 97b6e17c33 server-mode: Enable from bootstrapped CMake build
CMake is frequently built from source via bootstrap.
There is no reason we cannot support server mode.
2016-09-29 13:12:49 -04:00
Brad King 6fe45e989d Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-09-29 (6cfcbede)
2016-09-29 10:56:37 -04:00
KWSys Upstream 0ab471adf1 KWSys 2016-09-29 (6cfcbede)
Code extracted from:

    http://public.kitware.com/KWSys.git

at commit 6cfcbedeb253b64e6d07f436f1ac0f0b488bbc9b (master).

Upstream Shortlog
-----------------

Brad King (1):
      6cfcbede SystemTools: Include strings.h on MinGW for strcasecmp
2016-09-29 10:56:36 -04:00
Brad King 5d29506811 Merge topic 'cmake_parse_arguments-PARSE_ARGV-multi-value'
66c70cd9 cmake_parse_arguments: Add additional unit tests
41291b20 cmake_parse_arguments: Fix PARSE_ARGV multi-value argument handling
2016-09-29 08:09:48 -04:00
Brad King 48cd0f7405 Merge topic 'cmake-server-commands'
71a50587 server-mode: Add project data for unit tests
7b1e60f2 server-mode: Report CMakeCache entries
84553a6e server-mode: Add command to retrieve build system files
ead71873 server-mode: Report information relevant for a codemodel
2016-09-29 08:09:45 -04:00
Brad King 26b30c58d0 Merge topic 'FindCxxTest-no-unix-interp'
32ee69c5 FindCxxTest: Do not run cxxtestgen through interpreter unless necessary
2016-09-29 08:09:42 -04:00
Brad King b53a12c29c Merge topic 'vs-clang-llvm-support'
3f300b84 VS: Recognize VS/LLVM toolset names as Clang
2016-09-29 08:09:39 -04:00
Brad King 7cea3479d6 Merge topic 'fix-explicit-RC'
9c5238df project: Fix support for explicit RC language
40c04821 Tests: Decide earlier whether to test resources
2016-09-29 08:09:36 -04:00
Brad King 4f719f2304 Merge topic 'suppress-pgi-warnings'
f4162856 CompileFlags: Tell PGI compiler not to issue warning diagnostics
09a6bd82 CTestCustom: Suppress PGI IPA warnings
2016-09-29 08:09:33 -04:00
Brad King 11c5871c1c Merge topic 'cpack-rpm-test-source-newline'
af35ddc8 Tests: Add newline to RunCMake.CPack_RPM SOURCE_PACKAGE case
2016-09-29 08:09:30 -04:00
Kitware Robot 0a61704f9f CMake Nightly Date Stamp 2016-09-29 00:01:10 -04:00
Brad King f416285631 CompileFlags: Tell PGI compiler not to issue warning diagnostics
When hosting CMake's own build with the PGI compiler there are several
warnings that cannot easily be fixed or suppressed.  We have enough code
quality tools and warnings from other compilers that it is unlikely a
PGI-only warning is useful.
2016-09-28 16:03:14 -04:00
Brad King 09a6bd820e CTestCustom: Suppress PGI IPA warnings 2016-09-28 16:00:17 -04:00
Brad King dfe7af3613 Merge topic 'CONTRIBUTING-use-gitlab'
03bd9895 CONTRIBUTING: Document contribution through the Kitware GitLab Instance
2cbfb5c7 CONTRIBUTING: Reference clang-format helper script for code style
2016-09-28 15:38:41 -04:00
Brad King 03bd9895e3 CONTRIBUTING: Document contribution through the Kitware GitLab Instance
Replace the instructions that routed patches to the mailing list with
new instructions routing them to our GitLab instance.
2016-09-28 15:28:06 -04:00
Matthew Woehlke 66c70cd9f1 cmake_parse_arguments: Add additional unit tests
Add additional unit tests for some corner cases in argument splitting.
2016-09-28 15:20:42 -04:00
Matthew Woehlke 41291b20f3 cmake_parse_arguments: Fix PARSE_ARGV multi-value argument handling
The `PARSE_ARGV` mode was recently added to help functions properly
parse their arguments even when those arguments may be quoted and
contain literal `;` in their values.  Fix the implementation to encode
`;`s in reported multi-value arguments and in `UNPARSED_ARGUMENTS` so
that `;`s in the individual values are preserved in the lists.  This
allows clients to access all their argument values correctly.
2016-09-28 14:18:20 -04:00
Tobias Hunger 71a505870c server-mode: Add project data for unit tests
Do some basic unit tests for "codemodel", "cmakeInputs" and "cache"
commands of the cmake server.

This just calls the commands right now and makes sure the server
thinks it can reply to the request. The data itself is currently not
validated.
2016-09-28 20:10:59 +02:00
Tobias Hunger 7b1e60f26e server-mode: Report CMakeCache entries
With this it would be possible to implement something like
cmake-gui using server-mode.
2016-09-28 18:32:55 +02:00
Tobias Hunger 84553a6e70 server-mode: Add command to retrieve build system files
Add a command to retrieve files that are input to cmake itself.
2016-09-28 18:32:54 +02:00
Tobias Hunger ead71873b2 server-mode: Report information relevant for a codemodel
Add "codemodel" command to report information relevant to feed a code
model.
2016-09-28 18:32:54 +02:00
Brad King 2cbfb5c7a4 CONTRIBUTING: Reference clang-format helper script for code style 2016-09-28 11:48:13 -04:00
Brad King 32ee69c562 FindCxxTest: Do not run cxxtestgen through interpreter unless necessary
On platforms that support shebang lines the `cxxtestgen` script should
be able to execute without an explicit interpreter.  Do this if possible
so that the proper interpreter specified by the shebang line is honored.
Ideally we shouldn't even need to find `python` in this case, but that
will be a larger change better made by a dedicated module maintainer.

Closes: #16331
2016-09-28 11:27:20 -04:00
Roman Wüger 3f300b84f3 VS: Recognize VS/LLVM toolset names as Clang
Update the toolset name matching added by commit v3.6.0-rc1~279^2~10
(VS: in Clang/C2 toolset, setup correct compiler settings, 2016-02-18)
to match VS/LLVM toolset names too.
2016-09-28 10:53:10 -04:00
Brad King 9c5238dfd6 project: Fix support for explicit RC language
The check added in commit v3.6.0-rc1~293^2 (Diagnose recursive
project/enable_language without crashing, 2016-03-07) broke support for
enabling `RC` explicitly along with other languages like `C`.  The
reason is that we enable all listed languages at once so the internal
`enable_language(RC)` that we do while enabling `C` or `CXX` on some
platforms triggers the recursion check if `RC` is explicitly listed.

Ideally we should refactor things to only enable one language at a time,
but for now it is simplest to just exclude `RC` from the explicit list
until other languages are enabled, and then enable it.

Closes: #16330
2016-09-28 10:34:57 -04:00
Brad King 40c0482153 Tests: Decide earlier whether to test resources
Provide a CMake_TEST_RESOURCES variable storing the decision.
2016-09-28 09:40:00 -04:00
Brad King af35ddc808 Tests: Add newline to RunCMake.CPack_RPM SOURCE_PACKAGE case
The `main.cpp` that this test generates needs a newline so that
compilers do not warn about a missing newline.  Otherwise the warning
causes RunCMake infrastructure to detect unexpected output.
2016-09-28 09:07:42 -04:00
Brad King 8f25f37676 Merge topic 'win64-binary-docs'
93300f36 Utilities/Release: Add html docs to Windows 64-bit binary
2016-09-28 09:01:26 -04:00
Brad King 93300f3623 Utilities/Release: Add html docs to Windows 64-bit binary
The 64-bit Windows binary is built in our second batch because it is
built on the same host as the 32-bit Windows binary.  When the
documentation generation was first added, it was not included in the
second batch because at the time that batch only included the Cygwin
binary.  Therefore the 64-bit Windows binary has been missing the
documentation since it was first created for CMake 3.6.

Since then the Cygwin binary was dropped so the second batch only
contains the 64-bit Windows binary.  Add the docs to it.

Closes: #16333
2016-09-28 08:55:29 -04:00
Brad King c1f97af640 Merge topic 'simplify-license-notices'
19671831 Help: Update cmake-developer(7) module license docs for new notice
756169ac Tests: Update ModuleNotices test for new notice
845d86bc Utilities/Scripts: Remove temporary script that filtered license notices
86578ecc Simplify CMake per-source license notices
b7180cfe Utilities/Scripts: Add temporary script to filter license notices
7feb4ecc Copyright.txt: Add notice of copyright by contributors
78f77f60 Utilities/KWStyle: Remove unused header check reference file
681e0429 Tests: Fix RunCMake.CTest output match to tolerate line number changes
2016-09-28 08:05:10 -04:00
Brad King 8021f64029 Merge topic 'GNUInstallDirs-more-BSD'
956054ae GNUInstallDirs: All *BSDs use ${PREFIX}/{man,info} for man and info pages
2016-09-28 08:05:04 -04:00
Brad King a71a172ebf Merge topic 'findjni'
59eb75d9 FindJNI: Add aarch32 path on arm
2016-09-28 08:05:01 -04:00
Brad King cd89d1998a Merge topic 'silent-nsis-installs'
cb8db285 CPack/NSIS: Fix silent NSIS installs
2016-09-28 08:04:58 -04:00