Commit Graph

1458 Commits

Author SHA1 Message Date
Brad King
3e922ceb5e fileapi: add codemodel v2
Start with v2 to distinguish it from server-mode v1.

Issue: #18398
2018-12-12 06:40:10 -05:00
Brad King
5751a09092 jsoncpp: fix signed overflow when parsing negative value
Clang's ubsan (-fsanitize=undefined) reports:

    runtime error: negation of -9223372036854775808 cannot be represented in
    type 'Json::Value::LargestInt' (aka 'long'); cast to an unsigned type to
    negate this value to itself

Follow its advice and update the code to remove the explicit negation.
2018-12-11 12:50:21 -05:00
Regina Pfeifer
c2f6872c4e CTest: Remove submit method 'xmlrpc' 2018-11-29 00:29:12 +01:00
Brad King
9bb203ed0f Merge topic 'FindBoost-1.69'
5045cd82d0 FindBoost: Additional fixes for 1.69

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2601
2018-11-13 10:38:54 -05:00
Roger Leigh
5045cd82d0 FindBoost: Additional fixes for 1.69 2018-11-13 10:37:01 -05:00
Brad King
b83420e45d Merge topic 'update-curl'
c1ad5118de curl: backport upstream fix to 7.62.0 regression
03bf934fbe curl: Modernize tiny test code used for build inside CMake
2b3c1bb9b0 curl: Update build within CMake to account for 7.62 changes
636bcefeab Merge branch 'upstream-curl' into update-curl
9835e90750 curl 2018-10-30 (19667715)
9c6574795c curl: Update script to get curl 7.62.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2550
2018-11-05 07:43:41 -05:00
Brad King
c1ad5118de curl: backport upstream fix to 7.62.0 regression
Backport upstream curl commit 2c5ec339ea (Curl_follow: accept
non-supported schemes for "fake" redirects, 2018-11-01) to get
a fix to curl issue 3210, a regression in 7.62.0.
2018-11-02 08:14:12 -04:00
Brad King
03bf934fbe curl: Modernize tiny test code used for build inside CMake
Drop unused code.  Report the error message on failure.
Format the source file using clang-format.
2018-11-01 08:55:50 -04:00
Brad King
2b3c1bb9b0 curl: Update build within CMake to account for 7.62 changes 2018-10-31 09:50:04 -04:00
Brad King
636bcefeab Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2018-10-30 (19667715)
2018-10-31 09:46:23 -04:00
Brad King
9c6574795c curl: Update script to get curl 7.62.0 2018-10-31 09:40:47 -04:00
Brad King
53e65e8e0a curl: Do not call cmake_minimum_required inside CMake itself
Re-use the requirements from the top-level.
2018-10-25 11:49:59 -04:00
Brad King
89ab893469 Merge topic 'fix-no-testing'
a834bcaa91 Tests: Add missing BUILD_TESTING conditions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Dan Ibanez <daibane@sandia.gov>
Merge-request: !2520
2018-10-25 07:25:13 -04:00
Brad King
a834bcaa91 Tests: Add missing BUILD_TESTING conditions
We should not call `add_test` unless `BUILD_TESTING` is enabled.

Fixes: #18500
2018-10-24 15:51:17 -04:00
Brad King
5112a76a17 Merge topic 'update-curl'
0310024563 curl: Update build within CMake to account for 7.61 changes
b9d1107790 curl: Backport to work with CMake 3.1 again
e9e8dcee6b Merge branch 'upstream-curl' into update-curl
18812a9c3d curl 2018-09-04 (432eb5f5)
ded211ae46 curl: Update script to get curl 7.61.1

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2509
2018-10-23 10:20:56 -04:00
Brad King
887ba2dc5f Merge topic 'curl-ssize_t'
3dc484e531 curl: add missing type sizes for 'long long' and '__int64'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2513
2018-10-23 10:19:58 -04:00
Brad King
ec13ba36b5 Merge branch 'update-curl' into release-3.13
Merge-request: !2509
2018-10-22 12:55:14 -04:00
Brad King
8b5cd17000 Merge branch 'curl-ssize_t' into release-3.13
Merge-request: !2513
2018-10-22 12:55:05 -04:00
Brad King
3dc484e531 curl: add missing type sizes for 'long long' and '__int64'
When generating `curl_config.h`, add size information for `long long`
and `__int64` types.  These are needed as candidates for defining the
`ssize_t` type because on MSVC, `long` is not the same size as `size_t`.

This problem did not affect upstream curl because it computes the
`ssize_t` type in CMake code where all sizes are available.  CMake's
port computes it in preprocessor logic because universal binaries on
macOS do not know type sizes until compile time.

Fixes: #18477
2018-10-22 12:02:38 -04:00
Brad King
0310024563 curl: Update build within CMake to account for 7.61 changes
The_CURL_STATICLIB option was replaced by BUILD_SHARED_LIBS.

Drop our own CURL_STATICLIB compile definition because it is now
provided by curl's usage requirements.
2018-10-22 08:55:40 -04:00
Brad King
b9d1107790 curl: Backport to work with CMake 3.1 again
Curl 7.61.1 requires CMake 3.4 to build from source and also exposes
a dependency on OpenSSL imported targets.  Revert that part of the
changes imported from curl upstream.
2018-10-22 08:51:01 -04:00
Brad King
e9e8dcee6b Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2018-09-04 (432eb5f5)
2018-10-22 08:48:58 -04:00
Brad King
ded211ae46 curl: Update script to get curl 7.61.1 2018-10-22 08:23:52 -04:00
Brad King
29ec12fb4f Merge topic 'cmake-through-3.12'
95b4b9137a Declare support for CMake versions through 3.12 for own build

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2496
2018-10-19 09:58:27 -04:00
Craig Scott
7053dd301c Merge topic 'help-syntax-highlighting'
93f3f65516 Help: Revise docs of modules AddFileDependencies..CheckFunctionExists
fc7ee1ca45 Help: Override pygments CMakeLexer to support <..> and [..]
74b3eacdc7 Help: Use appropriate list types in FindPkgConfig

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2468
2018-10-19 06:31:55 -04:00
Joachim Wuttke (o)
fc7ee1ca45 Help: Override pygments CMakeLexer to support <..> and [..]
* The code snippets in the docs consist of CMake code mixed
  with syntax definition punctuation like < > [ ] ... Therefore
  a pure CMake lexer is inadequate. Here it is replaced by a
  CMake syntax definition parser.
* Fixed syntax definition snippets in FindPkgConfig.cmake to
  make best use of syntax highlighting. This source file is the
  hardest to support because it contains comparison operators
  <= = >=, which need special attention to avoid confusion
  with the placeholder indicators <...>.
* Fixed syntax in execute_process.rst (there were unbalanced
  brackets).
* Disabled syntax highlighting for long string examples in
  cmake-language.7.rst.
* No highlighting of removed syntax in CMP0049
* To inspect the outcome of this patch, see e.g. the pages
  * manual/cmake-buildsystem.7.html
  * module/ExternalProject.html
  * module/FindPkgConfig.html
  which are particularly rich in complex code snippets.
2018-10-19 07:25:34 +11:00
Brad King
56c85d9429 Merge topic 'rel-doc-qthelp'
1d5c8b81db Utilities/Release: Add qthelp docs to binary archives

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2497
2018-10-18 07:38:15 -04:00
Brad King
1d5c8b81db Utilities/Release: Add qthelp docs to binary archives
Fixes: #18465
2018-10-17 14:38:46 -04:00
Brad King
95b4b9137a Declare support for CMake versions through 3.12 for own build
CMake 3.12 introduced a `...<max>` syntax in the version given to
`cmake_minimum_required` to automatically set policies to NEW up
to that version.  Use it to avoid listing policies explicitly.

The syntax is compatible with older versions of CMake such that they use
the extended version string for the `CMAKE_MINIMUM_REQUIRED_VERSION`
variable (which we don't use) but otherwise ignore it.
2018-10-17 14:29:16 -04:00
Brad King
ab6bf9d0ad Utilities/Release: Update to openssl-1.1.1
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.
2018-10-08 10:42:12 -04:00
Brad King
94652e8733 CMake 3.13.0-rc1 version update 2018-10-03 12:53:38 -04:00
Brad King
a4b9e59568 Merge topic 'libuv-gnu-hurd'
3c0bfb596f libuv: do not require PATH_MAX to be defined

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2422
2018-10-03 08:03:47 -04:00
Brad King
3c0bfb596f libuv: do not require PATH_MAX to be defined
Some platforms (e.g. GNU/Hurd) do not define PATH_MAX.  Add a few other
variants and a fallback constant.  Also use alternatives where possible:

* For readlink(), use lstat() to read the length of the link first.
  If it is not a symlink, report EINVAL before trying to allocate.
  If the size reports as zero, fall back one of the PATH_MAX variants.

* For realpath(), POSIX 2008 allows us to pass a NULL buffer
  to tell it to malloc() internally.

This patch was inspired by downstream patches in Debian packaging
for issues 897061 and 909011.

Issue: #18337
2018-10-01 08:22:38 -04:00
Brad King
6a4b1006f9 Merge branch 'upstream-LibArchive' into update-libarchive
* upstream-LibArchive:
  LibArchive 2018-09-03 (5fe69dd0)
2018-09-26 09:53:15 -04:00
Brad King
710f37c47a libarchive: Update script to get 3.3.3 2018-09-26 09:52:01 -04:00
Brad King
97e1213a88 Merge branch 'libarchive-libressl-2.7' into update-libarchive 2018-09-26 09:51:12 -04:00
Brad King
e7e88e955b libarchive: Backport fix for build with LibreSSL 2.7
Backport libarchive commit v3.3.3~16^2 (fix build with LibreSSL 2.7,
2018-04-01).  LibreSSL 2.7 adds OpenSSL 1.1 API leading to conflicts on
method names.

Fixes: #18404
2018-09-26 09:47:53 -04:00
Brad King
830d4760db Utilities/Release: Build with gcc 8.2 on Linux
Also add a binutils-2.31 to CMAKE_PREFIX_PATH in the environment so that
tests that look for them with `find_program` can find a newer version.
This is needed for the build id support in readelf.
2018-09-25 16:53:11 -04:00
Brad King
366df05ac0 Merge topic 'rel-win-nightly'
bab868be13 Utilities/Release: Skip spurious ExternalData test for nightly binary

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2404
2018-09-20 09:37:24 -04:00
Brad King
bab868be13 Utilities/Release: Skip spurious ExternalData test for nightly binary
This test fails spuriously too often and prevents the nightly binary
from finishing.  Simply skip it for the nightly binary to allow it to
complete more regularly.
2018-09-19 10:59:21 -04:00
Gregor Jasny
7e33050558 libuv: Add kFreeBSD platform-specific files
Issue 18375
2018-09-18 20:22:55 +02:00
T.J. Corona
66f59bd7da cmake-gui: Update icons 2018-08-16 11:56:08 -04:00
Brad King
574666b6cb librhash: Avoid incorrect int8_t definition with PGI on Linux ppc64le
`sys/types.h` defines `int8_t` incorrectly as `char` which is unsigned.
Adjust ordering so `inttypes.h` defines it as `signed char` first.
2018-08-09 11:51:22 -04:00
Brad King
ea3456c844 Merge topic 'update-liblzma'
1e9c1d0c87 CTestCustom: Suppress scanbuild warning in liblzma
2461dd79e5 liblzma: Suppress MSVC warning parameter difference warning
9f77124ea8 liblzma: Drop checks for inline and restrict keywords
7a976ee742 Merge branch 'upstream-liblzma' into update-liblzma
352b8fa70d liblzma 2018-04-29 (b5be61cc)
021b54cab8 liblzma: Revise update script to get version 5.2.4
6b494f567a Merge branch 'upstream-liblzma' into update-liblzma
897b790d57 liblzma 2014-12-21 (265e5ffb)
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2264
2018-08-09 07:55:38 -04:00
Brad King
aefb8559dc IWYU: Fix workaround mapping for std::hash
It is provided by `functional`, not `utility`.  Fix the mapping added by
commit 276d3c7afe (IWYU: Add workaround mapping for std::hash,
2018-07-31).  Also generalize the workaround from commit v3.12.0-rc1~39^2~1
(IWYU: Define a macro to tell code it is preprocessing for iwyu,
2018-05-25) to allow local builds to configure specific flags.  This
is needed because iwyu behaves differently in different environments.
2018-08-07 12:04:58 -04:00
Brad King
2461dd79e5 liblzma: Suppress MSVC warning parameter difference warning
Some `.c` sources add `restrict` to their pointer types to tell
the optimizer that there is no aliasing.  These do not appear in
the corresponding `.h` declarations so MSVC warns.
2018-08-06 10:29:33 -04:00
Brad King
9f77124ea8 liblzma: Drop checks for inline and restrict keywords
We now require the compiler to support these, except for MSVC where
upstream liblzma already has special cases (in `common/sysdefs.h`).
2018-08-06 10:25:46 -04:00
Brad King
7a976ee742 Merge branch 'upstream-liblzma' into update-liblzma
* upstream-liblzma:
  liblzma 2018-04-29 (b5be61cc)
2018-08-06 10:24:55 -04:00
Brad King
021b54cab8 liblzma: Revise update script to get version 5.2.4 2018-08-06 10:24:21 -04:00
Brad King
78ec8b7552 liblzma: Avoid importing upstream makefiles 2018-08-06 10:23:06 -04:00
Brad King
83215720fb liblzma: Name sizeof size_t macro consistently with upstream 2018-08-06 10:23:01 -04:00
Brad King
6166adfdd4 liblzma: Revert "Port from C99 to C89/90"
Revert commit v3.1.0-rc1~255^2~5 (liblzma: Port from C99 to C89/90,
2014-07-13).  We now compile as C99 or above except on MSVC where
we will use another approach.
2018-08-06 10:22:56 -04:00
Brad King
0a3912112d liblzma: Revert "Avoid defining a 'restrict' macro"
Revert commit v3.1.0-rc1~255^2~2 (liblzma: Avoid defining a 'restrict'
macro, 2014-07-24).  We will use another approach to deal with the
'restrict' keyword.
2018-08-06 09:47:42 -04:00
Brad King
276d3c7afe IWYU: Add workaround mapping for std::hash
When using GCC 8's standard library IWYU thinks that `<system_error>`
must be included to get `std::hash`.  Add a mapping for `<utility>`.
2018-07-31 09:34:55 -04:00
Brad King
eb63a07eaa Utilities/Release: Explicitly enable ccmake on macOS and Linux
Since commit v3.12.0-rc1~325^2 (ccmake: Check for curses more robustly
before enabling, 2018-03-21) we may not enable ccmake by default when
using a non-system curses (e.g. the static curses we build on Linux for
our binaries).  Enable the option explicitly for our prebuilt binaries.
2018-07-02 11:36:15 -04:00
Kyle Edwards
2a2829cc75 Help: Add new section for CPack generators
The documentation for CPack generators previously lived in their
respective internal CMake modules. This setup was misleading,
because it implied that you should include the modules in your own
code, which is not the case. Moving the documentation into a
separate section does a better job of hiding the internal modules,
which are just an implementation detail. The generator documentation
has also been modified to remove any references to the module name.

The CPackIFW module is a special exception: since it has user-facing
macros, the documentation for these macros has been kept in the module
page, while all other documentation related to the IFW generator has
been moved into the new section.

To make it easier to find the new documentation, the old help pages
for the CPack*.cmake modules have not been deleted, but have been
replaced with a link to their respective help page in the new
documentation section.
2018-06-21 11:00:25 -04:00
Brad King
ef5e2e8a62 Merge branch 'sphinx-info' into release-3.12
Merge-request: !2146
2018-06-13 10:52:11 -04:00
Brad King
aa155de860 Merge topic 'sphinx-info'
276e369813 Utilities/Sphinx: Add option to build and install Info manual

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2146
2018-06-13 10:50:14 -04:00
Orivej Desh
276e369813 Utilities/Sphinx: Add option to build and install Info manual
Add option `SPHINX_INFO` to enable the Sphinx 'texinfo' builder and use
the `makeinfo` tool to convert it to a `.info` file.
2018-06-12 10:25:37 -04:00
Brad King
af63c8bd61 CMake 3.12.0-rc1 version update 2018-06-05 11:43:10 -04:00
luz.paz
be28106880 Fix misc. typos
Found via `codespell` and `grep`
2018-06-04 10:32:49 -04:00
Kitware Robot
d7204e649e Revise C++ coding style using clang-format-6.0
Run the `clang-format.bash` script to update all our C and C++ code to a
new style defined by `.clang-format`.  Use `clang-format` version 6.0.

* If you reached this commit for a line in `git blame`, re-run the blame
  operation starting at the parent of this commit to see older history
  for the content.

* See the parent commit for instructions to rebase a change across this
  style transition commit.
2018-06-01 09:53:42 -04:00
Brad King
523c443d13 clang-format.bash: update to clang-format-6.0
Update `.clang-format` with configuration to make the 6.0 format as
close as possible to what 3.8 produced before.  Then revise the style:

* Indent preprocessor directives (a feature new since 3.8)
* Add a newline and indentation before inheritance `:` and `,`

Rename the Git attribute identifying the format to include the
clang-format version number: `format.clang-format-6.0`.  This will aid
external infrastructure in knowing what version of the tool to run.
2018-06-01 09:52:02 -04:00
Brad King
86121ffd1c Utilities/Release: Update to openssl-1.1.0h
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.
2018-05-31 11:24:41 -04:00
Brad King
722056372e Merge topic 'update-curl'
3e913b819d Merge branch 'upstream-curl' into update-curl
d431136e02 curl 2018-05-15 (cb013830)
f3c73b878c curl: Update script to get curl 7.60.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2091
2018-05-21 09:53:06 -04:00
Brad King
3e913b819d Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2018-05-15 (cb013830)
2018-05-18 10:16:50 -04:00
Brad King
f3c73b878c curl: Update script to get curl 7.60.0 2018-05-18 10:15:46 -04:00
Brad King
8cfc45f6bd clang-format: Explicitly require version 3.8 of the tool
Versions of clang-format newer than 3.8 produce different output.
Our source code guide says that version 3.8 exactly must be used.
Update the comment in our `.clang-format` config file accordingly.
Add a check to our formatting script to verify the version.
Also update its tool search to look for the explicitly-named
3.8 variant first.
2018-05-18 09:19:10 -04:00
Daniel Franke
7a33cfc1bc regenerate-parsers.bash: Add script to automate parser generation
This depends on

- a suitable flex version in PATH (currently 3.0.4)
- a suitable version of 'sed' in PATH (e.g. GNU sed)
2018-05-16 11:47:44 -04:00
Daniel Franke
3d382a494f regenerate-lexers.bash: Add option to check timestamps 2018-05-16 11:47:41 -04:00
Daniel Franke
5cd9f5c965 regenerate-lexers.bash: Factor file names into variables 2018-05-16 11:47:37 -04:00
Brad King
65431c727b Merge topic 'update-libuv'
0d389d175a libuv: Revert local linux/sparc64 fix now that we have upstream fix
42fbb28516 Merge branch 'upstream-libuv' into update-libuv
c8b67ea119 libuv 2018-05-06 (bf605bd7)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2049
2018-05-08 08:34:51 -04:00
Brad King
d165fd1727 Merge topic 'doc-code-block-highlight'
8114b00b02 Utilities/Sphinx: Do not highlight unspecified code blocks as python

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2047
2018-05-08 08:28:19 -04:00
Brad King
0d389d175a libuv: Revert local linux/sparc64 fix now that we have upstream fix 2018-05-07 11:49:25 -04:00
Brad King
42fbb28516 Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2018-05-06 (bf605bd7)
2018-05-07 11:48:01 -04:00
Brad King
72814e46da Utilities/Sphinx: Make HTML links in parsed-literal blocks more obvious
Hyperlink text color does not stand out when used inside a literal block
because such blocks typically get syntax highlighting.  Update our CSS
style to make the links more distinct.

Suggested-by: Kyle Edwards <kyle.edwards@kitware.com>
2018-05-07 10:10:37 -04:00
Brad King
8114b00b02 Utilities/Sphinx: Do not highlight unspecified code blocks as python 2018-05-04 14:57:36 -04:00
Brad King
593c409a65 Merge topic 'ctest-libuv-linux-sparc64'
1c22fdf360 libuv: linux/sparc64: use fcntl to set and clear O_NONBLOCK

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2029
2018-05-03 08:13:16 -04:00
Brad King
1c22fdf360 libuv: linux/sparc64: use fcntl to set and clear O_NONBLOCK
Upstream libuv commits:

* node-v0.6.0~28 (linux: use ioctl(FIONBIO) to set O_NONBLOCK, saves a syscall, 2011-10-29)
* v1.11.0~11 (unix: use async-signal safe functions between fork and exec, 2016-12-12)

left an asymmetry in the way O_NONBLOCK is set and cleared.  Normally
ioctl/FIONBIO is used for both.  However, uv_spawn uses fcntl/O_NONBLOCK
to clear O_NONBLOCK between fork and exec.  This fails on Linux/sparc64
where setting via ioctl/FIONBIO actually sets two bits (in O_NDELAY)
that cause clearing via fcntl/O_NONBLOCK to be silently ignored (though
clearing via ioctl/FIONBIO or fcntl/O_NDELAY works).

Since CMake commit v3.11.0-rc1~117^2 (CTest: Re-implement test process
handling using libuv, 2017-12-10), CTest uses libuv.  On Linux/sparc64
child processes have been started with non-blocking output pipes.  This
can lead to write errors or lost output from children not prepared to
deal with `EAGAIN` on stdout or stderr.

Fix this for now by switching libuv back to fcntl/O_NONBLOCK to set and
clear O_NONBLOCK when compiled on Linux/sparc64.

LibUV-Issue: 1830
Fixes: #17941
2018-05-02 11:16:19 -04:00
Brad King
8acf46caf1 Utilities/Sphinx: Add role and directive for 'envvar' in CMake domain
This enables cross-reference syntax for CMake environment variables:

    :envvar:`SOMEVAR`

and definition of CMake environment variables via a directive:

    .. envvar:: SOMEVAR

It also adds environment variables defined by the directive and by
`Help/envvar/SOMEVAR.rst` documents to the index.

This `envvar` role and directive is defined in our `cmake` domain
and overrides the equivalent `envvar` role and directive provided
by Sphinx in its default domain.  This is okay because we build
CMake documents in the `cmakd` domain.

This follows up the work from commit v3.10.0-rc1~43^2 (Help: Document
CMake's environment variables, 2017-09-01) that originally added
`envvar` documentation.
2018-04-19 09:02:44 -04:00
Brad King
7e532abc78 Utilities/Sphinx: Fix QtHelp generator identifiers
Add missinge entry in `create_identifiers.py` helper.
2018-04-19 08:48:28 -04:00
Jean-Christophe Fillion-Robin
52b1419040 Utilities/Release: Remove extra colon from release scripts
The type of the `BUILD_QtDialog` cache entry is `BOOL`, not `BOOL:`.
2018-04-03 14:11:38 -04:00
Brad King
c5428d8db2 libuv: disable process affinity during CMake bootstrap
Avoid depending on platform-specific pthread features during bootstrap.
2018-03-05 09:21:31 -05:00
Brad King
24de561a1a libuv: unix,win: add uv_spawn option to set child CPU affinity mask
Implement it on Linux, FreeBSD, and Windows for now, and fail with
UV_ENOTSUP on other platforms.

Backported from upstream libuv PR 1527, scheduled for inclusion
in libuv 2.0.
2018-03-05 09:21:31 -05:00
Brad King
43d6e5a71f libuv: misc: add function to get CPU affinity mask size
Implement it on Linux, FreeBSD, and Windows for now, and return
UV_ENOTSUP on other platforms.

Backported from upstream libuv PR 1527, scheduled for inclusion
in libuv 2.0.
2018-03-05 09:21:31 -05:00
Brad King
51b287c40c CMake 3.11.0-rc1 version update 2018-02-05 11:16:50 -05:00
Brad King
cd8e31a1bf Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2018-01-23 (d6c21c8e)
2018-01-24 14:18:16 -05:00
Brad King
e9c8ea7557 curl: Update script to get curl 7.58.0 2018-01-24 14:14:04 -05:00
Brad King
63f263b27f Merge topic 'update-libuv'
6db7b352 libuv: Update build within CMake
b58d48c1 Merge branch 'upstream-libuv' into update-libuv
f4a26c74 libuv 2018-01-19 (63de1eca)
e8b57c22 libuv: Teach import script to add missing newlines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1666
2018-01-22 10:18:44 -05:00
Brad King
e720a34399 IWYU: Add more workaround mappings for internal bits
Extend our hack section of mappings to work around IWYU incorrectly
requiring:

* bits/stdint-uintn.h for stdint.h
* bits/stdint-intn.h for stdint.h
* bits/types/mbstate_t.h for wchar.h
2018-01-22 09:56:30 -05:00
Brad King
6db7b35236 libuv: Update build within CMake
Update our CMake build rules to account for upstream changes.
2018-01-19 13:03:12 -05:00
Brad King
b58d48c15f Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2018-01-19 (63de1eca)
2018-01-19 13:03:04 -05:00
Brad King
e8b57c2283 libuv: Teach import script to add missing newlines 2018-01-16 13:27:23 -05:00
Brad King
4cf08c96f8 Merge topic 'ctest-libuv'
b5e21d7d CTest: Re-implement test process handling using libuv
fcebff75 cmProcess: Use explicit enum for process exit exception
3dd2edf4 cmProcess: Use explicit enum for process state
5238e6db cmProcess: Remove unused ReportStatus method
c13b68e6 cmCTestRunTest: Modernize constructor and destructor decls
4d6b0903 cmCTestRunTest: Drop unused members
05da65bc cmCTestMultiProcessHandler: Factor out duplicate test finish logic
dd945345 cmCTestMultiProcessHandler: Add helper to make libuv use SA_RESTART
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1455
2018-01-11 15:33:03 -05:00
Brad King
8a53242df9 Merge branch 'upstream-KWIML' into update-kwiml
* upstream-KWIML:
  KWIML 2018-01-09 (9c2d6cae)
2018-01-09 08:51:59 -05:00
Brad King
4ffb0f8b45 libuv: unix: restart syscalls interrupted by our signal handler
BSD `signal(2)` semantics make some system calls (e.g. for `write`)
restartable when interrupted by a signal handler.  Use `SA_RESTART` to
enable these semantics everywhere that supports them.

This is required by C++ stream libraries that interpret `EINTR` as any
other error, set `badbit`, and stop writing.  I've observed this with
`libstdc++` during a `std::cout.flush()` call interrupted by `SIGCHLD`.
2018-01-08 12:55:00 -05:00
Brad King
b8e7af979d Merge topic 'ctest-chrono'
66419bc0 CTest: convert timeouts to std::chrono::duration
923b8fad IWYU: Add mappings for std::enable_if on chrono durations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1513
2017-12-05 08:12:52 -05:00
Wouter Klouwen
66419bc046 CTest: convert timeouts to std::chrono::duration
This commit continues the refactoring of CTest to adopt std::chrono.
After the last sets of changes that introduced std::chrono::steady_clock
and std::chrono::system_clock respectively, it makes sense to have all
the timeouts be stored as std::chrono::duration.

No functional change intended.
2017-12-04 10:43:14 -05:00
Brad King
5cb64508a3 Merge branch 'upstream-GitSetup' into update-gitsetup
* upstream-GitSetup:
  GitSetup 2017-10-26 (1639317d)
2017-11-30 14:55:34 -05:00
Brad King
cbd37fbec3 GitSetup: Restrict import to files we need 2017-11-30 14:55:16 -05:00
Brad King
923b8fadd5 IWYU: Add mappings for std::enable_if on chrono durations
IWYU incorrectly classifies this internal STL type as not internal, and
suggests including `<type_traits>` for it.  Work around the problem by
mapping the offending names to a file that we always include.

See include-what-you-use issue 434.
2017-11-28 10:50:44 -05:00
Brad King
e5fdbcc9da IWYU: Add more mappings for std::__decay_and_strip
IWYU incorrectly classifies this internal STL type as not internal, and
suggests including `<type_traits>` for it.  Work around the problem by
mapping the offending names to a file that we always include.

See include-what-you-use issue 434.
2017-11-21 14:22:40 -05:00
Brad King
b40d45cdb1 Utilities/Release: Update to openssl-1.1.0g
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.

Now that we require pthreads for libuv anyway, we can use OpenSSL 1.1
along with its dependency on pthreads.
2017-11-14 09:43:03 -05:00
Brad King
78aeb30075 Utilities/Release: Update to openssl-1.0.2m
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.
2017-11-14 09:36:07 -05:00
Brad King
313a565729 Utilities/Release: Build static executables on Windows
Switch to the MSVC static runtime library (and static UCRT).
Link Qt statically, including the Windows platform plugin.
Disable the Qt tests because they are incompatible with a
Qt using a static runtime library.
2017-11-14 07:26:36 -05:00
Brad King
a12830c2fd Utilities/Release: Remove unused setting in Linux build
CMake_INSTALL_DEPENDENCIES is not needed because we link both
Qt and the toolchain runtime library statically.
2017-11-14 07:26:36 -05:00
luzpaz
777e87ae00 Fix trivial typos in text
Some are user facing.

Found using

    codespell -q 3 --skip="./Utilities" -I .cmake-whitelist.txt`

whereby the whitelist contained:

    ans
    dum
    helpfull
    emmited
    emmitted
    buil
    iff
    isnt
    nto
    ot
    pathes
    substract
    te
    todays
    upto
    whitespaces
2017-11-03 10:25:05 -04:00
Brad King
48a58e91a6 Merge topic 'update-curl'
bb759148 curl: Update build within CMake to account for 7.56 changes
9e3ef40e Merge branch 'upstream-curl' into update-curl
de7c21d6 curl 2017-10-04 (3ea76790)
2fad0e20 curl: Update script to get curl 7.56.0

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1372
2017-10-11 08:14:44 -04:00
Brad King
bb7591487d curl: Update build within CMake to account for 7.56 changes 2017-10-10 11:15:20 -04:00
Brad King
9e3ef40edb Merge branch 'upstream-curl' into update-curl
* upstream-curl:
  curl 2017-10-04 (3ea76790)
2017-10-10 11:15:16 -04:00
Brad King
2fad0e20b6 curl: Update script to get curl 7.56.0 2017-10-10 11:14:42 -04:00
Brad King
05373ee1a2 CMake 3.10.0-rc1 version update 2017-10-05 09:55:23 -04:00
Matthias Maennich
574d694337 clang-format.bash: minor fixes to support MacOS
- sed on Mac does not support embedded sed statements, hence eliminating
  the non-matches via grep

- xargs on Mac does not support -d, but does support -0, hence replacing
2017-10-03 22:16:07 +02:00
Matthias Maennich
f0489856e3 Retire std::auto_ptr and its macro CM_AUTO_PTR
Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-26 00:07:19 +02:00
Brad King
96329d5dff libarchive: Do not use nanosecond file time APIs on macOS < 10.13
The SDK for macOS 10.13 adds `futimens` and `utimensat` so our checks
for these symbols may pass.  However, the symbols are not available at
runtime on older macOS versions.  Instead on macOS we can check for
availability based on the deployment target version.

Issue: #17101
2017-09-20 11:28:40 -04:00
Brad King
714ce72882 bootstrap: Make libuv available during bootstrap
On UNIX, build only the parts of libuv we need for the filesystem,
process, and poll abstractions using the POSIX poll() backend.  This
avoids many platform-specific conditions.  On Windows, build all of
libuv; there are no conditional alternatives anyway.
2017-09-17 11:10:18 -04:00
Brad King
73ed503ed5 jsoncpp: Drop doxygen comments not recognized by Clang
Some Clang versions warn with `-Wdocumentation-unknown-command` about
the `\internal` and `\snippet` command tag names.
2017-08-30 10:17:21 -04:00
Brad King
1a2b62b189 jsoncpp: Add initialization to pacify scanbuild
The scanbuild analysis cannot see that decodeUnicodeEscapeSequence
either initializes the `unicode` argument or returns `false` such
that the code following it runs only if `unicode` is initialized.
Add an explicit initialization to pacify it.
2017-08-30 10:17:17 -04:00
Brad King
c103a959d1 jsoncpp: Fix compilation on SunPro
The SunPro compiler does not support `#pragma pack`.
2017-08-30 10:17:13 -04:00
Brad King
0a0f71066f jsoncpp: Drop deprecation markup
Even though we disable warnings when building jsoncpp itself, including
its headers from other CMake sources may still cause warnings.
Additional work will be needed to port CMake to newer jsoncpp interfaces
while still supporting jsoncpp 1.0.0.  For now, just suppress the
markup.
2017-08-30 10:17:09 -04:00
Brad King
e09819557f Merge branch 'upstream-jsoncpp' into update-jsoncpp
* upstream-jsoncpp:
  jsoncpp 2017-08-27 (4cfae897)
2017-08-30 10:16:59 -04:00
Brad King
a7241206bf jsoncpp: Update script to get jsoncpp 1.8.2 2017-08-30 10:12:59 -04:00
Brad King
cb844d4119 jsoncpp: Drop unnecessary files from source list 2017-08-30 10:12:55 -04:00
Brad King
ee68d3eb8c jsoncpp: Add script to update from upstream 2017-08-30 10:12:10 -04:00
Brad King
fff28e30cd Merge topic 'no-crlf-blobs'
ebc91a44 Avoid CRLF newlines in Git repo blobs
c69b4c8d bzip2: Drop unused .dsp files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !1211
2017-08-30 10:02:05 -04:00
Brad King
c69b4c8dfe bzip2: Drop unused .dsp files 2017-08-30 06:56:49 -04:00
Matthias Maennich
168b97a5c5 Lexer: add a helper script to automate generating the lexers
note: this depends on
	- a suitable flex version in PATH (currently 2.6.4)
	- a suitable version of 'sed' in PATH (e.g. GNU sed)

Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-08-29 14:58:34 +02:00
Daniel Pfeifer
7f29bbe6f2 server: always enable server 2017-08-26 07:46:58 +02:00
Brad King
65ca67cef1 Merge topic 'boost-1.65'
fa114e7d FindBoost: Add Boost 1.65 dependencies
e66e8e89 BoostScanDeps: Special case python and numpy and variants

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1172
2017-08-24 09:34:22 -04:00
Daniel Pfeifer
cbcfb79f9c Use C++11 unordered containers 2017-08-22 23:05:27 +02:00
Roger Leigh
e66e8e8914 BoostScanDeps: Special case python and numpy and variants 2017-08-22 17:03:35 +01:00
Brad King
683dbfe14d Merge topic 'require-cmake-3.1'
fb0c3c56 Require CMake 3.1 to build CMake itself

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Ben Boeckel <ben.boeckel@kitware.com>
Acked-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !1126
2017-08-15 13:09:20 -04:00
Brad King
fb0c3c564c Require CMake 3.1 to build CMake itself
This simplifies some policy settings and use of third-party
libraries with imported targets.
2017-08-10 15:08:02 -04:00
Brad King
e3bcf72df8 Merge topic 'update-expat'
e4ea628b expat: Update CMake build for 2.2.3
44e5fb9c Merge branch 'upstream-expat' into update-expat
7e08602c expat 2017-08-02 (97c6bd01)
6276ec37 expat: Update script to get Expat 2.2.3

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1110
2017-08-08 09:22:25 -04:00
Brad King
e4ea628b42 expat: Update CMake build for 2.2.3 2017-08-07 10:22:13 -04:00
Brad King
44e5fb9c7e Merge branch 'upstream-expat' into update-expat
* upstream-expat:
  expat 2017-08-02 (97c6bd01)
2017-08-07 10:19:30 -04:00
Brad King
6276ec3726 expat: Update script to get Expat 2.2.3 2017-08-07 10:06:23 -04:00
Brad King
6bef326eb4 Merge topic 'update-libarchive'
c80d8cb2 libarchive: Fix inclusion of zlib, bzlib, and lzma for build within CMake
6df1bda1 Merge branch 'upstream-LibArchive' into update-libarchive
11f3dcb0 LibArchive 2017-07-09 (98a69539)
b6674431 libarchive: Update script to get 3.3.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1071
2017-08-02 11:45:35 -04:00
Brad King
b162e5c0f0 Merge topic 'sphinx-pre-1.2'
2a68ff7f Utilities/Sphinx: Restore compatibility with Sphinx pre-1.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1089
2017-08-02 11:41:44 -04:00
Björn Esser
2a68ff7fd7 Utilities/Sphinx: Restore compatibility with Sphinx pre-1.2
Since commit v3.8.0-rc2~28^2~2 (Utilities/Sphinx: Port cmake extension
to Sphinx 1.4, 2017-02-09) we use the `sphinx.version_info` tuple.
However, it was added in Sphinx v1.2 so the check breaks compatibility
with older versions.  Revise our check to assume Sphinx pre-1.2 if the
version tuple does not exist.
2017-08-02 11:25:21 -04:00
Brad King
c80d8cb293 libarchive: Fix inclusion of zlib, bzlib, and lzma for build within CMake
Update a new source file imported from libarchive upstream to include
the headers for compression libraries using the CMake wrappers.
2017-07-20 12:52:54 -04:00
Brad King
6df1bda1c5 Merge branch 'upstream-LibArchive' into update-libarchive
* upstream-LibArchive:
  LibArchive 2017-07-09 (98a69539)
2017-07-20 11:36:18 -04:00
Brad King
b6674431af libarchive: Update script to get 3.3.2 2017-07-20 11:29:40 -04:00
Brad King
fc4f352513 Merge topic 'server-refactor'
cf0ae55d server: Add support for connections that aren't event based
5ddfb6a4 server: Add connection as part of a request
d4f5d35c server: Refactor to make the event loop owned by server object
5acbf08b Tests: Teach Server test to forward exit code from server process

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !552
2017-07-18 11:14:02 -04:00
Justin Berger
d4f5d35ca4 server: Refactor to make the event loop owned by server object 2017-07-10 18:11:27 -06:00
Brad King
16d495253b clang-format.bash: Fix error message when clang-format is not found
Do not refer to a variable we just determined is empty to get the
name of the tool for the error message.  Just hard-code the name.
2017-07-05 12:55:03 -04:00
Jérôme Duval
e7936751ee curl: Fix build on Haiku
On Haiku the network functions are in libnetwork, so use it when it
exists.
2017-06-28 08:41:49 -04:00
Brad King
5222289f1e Merge branch 'update-expat' into release-3.9 2017-06-20 09:06:09 -04:00
Brad King
d5afb178f1 expat: Fix compilation on systems without stdint.h 2017-06-20 08:55:48 -04:00
Brad King
0a40c668f5 Merge branch 'upstream-expat' into update-expat
* upstream-expat:
  expat 2017-06-17 (c4446687)
2017-06-19 15:26:00 -04:00