Commit Graph

1546 Commits

Author SHA1 Message Date
Brad King
6c4f3dcd7b Utilities: Update hard-coded try_compile results for third-party libraries
The integer size checks have been replaced with KWIML so their
hard-coded results are no longer needed.

Tell `TEST_BIG_ENDIAN` to use `unsigned short` as the 16-bit integer.

UNIX device APIs do not exist on Windows.

FreeBSD libmd does not exist on Windows.

Fix typo in existing `HAVE_READPASSPHRASE_H` setting.
2020-06-03 07:48:52 -04:00
Brad King
1936955b66 Merge topic 'libarchive-reduce-checks'
ade3b16e63 libarchive: Use KWIML to get fixed-size integer types
22c5b0c244 libarchive: Avoid configure-time checks for integer range constants
a7e66cac16 libarchive: Drop unused code providing uintmax_t and intmax_t

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4839
2020-06-03 05:58:46 -04:00
Brad King
1dd785b02c curl: Use KWIML to get integer type sizes 2020-06-02 07:00:35 -04:00
Brad King
ade3b16e63 libarchive: Use KWIML to get fixed-size integer types 2020-06-02 06:56:51 -04:00
Brad King
22c5b0c244 libarchive: Avoid configure-time checks for integer range constants 2020-06-01 15:59:10 -04:00
Brad King
a7e66cac16 libarchive: Drop unused code providing uintmax_t and intmax_t
The libarchive library code we use within CMake does not need these.
2020-06-01 15:38:06 -04:00
Brad King
bc681fc372 Hard-code some try_compile results for third-party libraries
Our bundled third-party libraries perform many `try_compile` checks for
compatibility with their upstream build systems.  For many of the checks
we already know the result for compilers we support for building CMake
itself, especially on Windows.  Hard-code known results to avoid running
the checks.
2020-05-27 14:09:20 -04:00
Brad King
d8359713e5 liblzma: Assume 'string.h' exists 2020-05-25 15:19:42 -04:00
Brad King
12e7bfcbf4 liblzma: Use KWIML to get fixed-size integer types 2020-05-25 15:16:56 -04:00
Brad King
3cd5ed7cb1 liblzma: Drop unused code providing uintmax_t and intmax_t
The lzma library code we use within CMake does not need these.
2020-05-25 15:06:34 -04:00
Brad King
0a46eb11af curl: Avoid checking 'send' and 'recv' signatures
cURL detects the `send` and `recv` signatures using a large loop
of `try_compile` checks.  The results are used for the following:

* Casting argument types in calls to `send` and `recv`, perhaps
  to avoid conversion warnings.  We compile with `-w` anyway.

* Providing debug variants for `CURLDEBUG`, which we do not use.

Replace the detection loops with hard-coded results that should work
well enough everywhere.  This significantly reduces the number of
configure-time checks for building CMake on some platforms.
2020-05-20 15:17:26 -04:00
Brad King
171bf5fa92 Merge topic 'third-parties-layout'
2faa3f6c55 Refactoring: Third-parties public headers are under cm3p prefix
75e87e3db4 bootstrap: update list of problematic files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4705
2020-05-08 08:18:17 -04:00
Brad King
8887414432 Merge topic 'gitlab-ci-sphinx'
50cbc9b77a gitlab-ci: add a sphinx builder
d78bf2f229 ci: install sphinx into the CI image
671ff5f1ac ci: skip weak dependencies in the CI image
bdce0fc317 CTestCustom: fix indentation
e4f398e0af Help: add alt text to embedded images
758ab4dbd3 Utilities/Sphinx: allow CDash submission for the standalone build
16de8e3544 Utilities/Sphinx: support finding Qt5's qcollectiongenerator too

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4713
2020-05-08 08:06:03 -04:00
Ben Boeckel
758ab4dbd3 Utilities/Sphinx: allow CDash submission for the standalone build 2020-05-07 13:25:57 -04:00
Ben Boeckel
16de8e3544 Utilities/Sphinx: support finding Qt5's qcollectiongenerator too 2020-05-07 13:25:57 -04:00
Marc Chevrier
2faa3f6c55 Refactoring: Third-parties public headers are under cm3p prefix
Fixes: #20666
2020-05-07 12:06:08 +02:00
Brad King
7670ba8b0a Utilities/Release: Drop win{32,64} scripts in favor of docker build
Also drop the `CMakeNightlyWin{32,64}` tests that use the scripts.

Follow the pattern from commit 689fdbfc61 (Utilities/Release: Drop
linux64 script in favor of docker build, 2019-08-27, v3.16.0-rc1~184^2).
2020-05-05 14:56:56 -04:00
Brad King
ff929badb3 Utilities/Release: Add docker specs to build and test Windows binaries
These will allow anyone to produce portable binaries like those
published on `cmake.org`.

Follow the pattern from commit facc240a45 (Utilities/Release: Add docker
specs to build and test Linux binaries, 2019-08-23, v3.16.0-rc1~184^2~2).
Parameterize the architecture to support both `x86_64` and `i386`.
2020-05-05 14:56:26 -04:00
Brad King
5f4f7e637a Utilities/Release: Generalize OS in README docker instructions
Replace the hard-coded OS name `linux` with an `<os>` placeholder.
Mention `linux` in an explicit list of supported `<os>/<arch>` pairs.
2020-05-05 14:50:26 -04:00
Brad King
13467f1dbd Utilities/Release: Make README docker examples more readable
Hard-code them for `linux/x86_64` instead of using an `<arch>`
placeholder.  Update the prose to mention the platform/arch explicitly.
2020-05-05 14:45:53 -04:00
Brad King
593c3fa1d4 Utilities/Release: Remove unused linux/x86_64/test/cache-ninja.txt 2020-05-05 14:37:04 -04:00
Brad King
68a59ab288 Merge topic 'stl-support'
8d4a9ee398 Refactoring: rename "cm_static_string_view.hxx" as <cmext/string_view>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4689
2020-05-01 08:27:37 -04:00
Brad King
c09efe074d Merge topic 'gitlab-ci-lint'
4318e8ed35 gitlab-ci: add iwyu job
0866b9253b gitlab-ci: add initial clang-tidy build
0a5bcf97b9 gitlab-ci: add scripts for use by CI
960158b90d ci: add scripts to download build tools
6af91c7c4d ci: add an image for Debian 10
68903ae238 ci: add a Docker container for building CMake
3ac24a8a6e cmFunctionBlocker: include missing header
b745b8fd36 IWYU: mark includes needed for assert statements as needed
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4643
2020-04-30 10:00:02 -04:00
Marc Chevrier
8d4a9ee398 Refactoring: rename "cm_static_string_view.hxx" as <cmext/string_view> 2020-04-30 09:53:27 +02:00
Ben Boeckel
1bf8938825 IWYU: add a mapping for other __decay_and_strip instances 2020-04-29 11:16:44 -04:00
Ben Boeckel
3f01acbb44 IWYU: add some mappings found with a newer IWYU build 2020-04-29 11:16:44 -04:00
Brad King
2628eb7460 libuv: Add proctitle and threadpool cleanup stubs to cmake-bootstrap.c
These are now called by `uv_library_shutdown` in `src/uv-common.c` but
on UNIX we do not compile those features during CMake bootstrap.
2020-04-29 08:50:11 -04:00
Brad King
efdd451f4b Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2020-04-29 (e7ebae26)
2020-04-29 08:21:02 -04:00
Brad King
e608a6ef20 Merge topic 'update-kwiml'
7bfe2924f4 Merge branch 'upstream-KWIML' into update-kwiml
bd202202ce KWIML 2020-04-20 (4abfeaa7)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4639
2020-04-21 08:14:26 -04:00
Brad King
3465ae916f Merge topic 'FindBoost-1.73'
9daf79c53b FindBoost: Add support for Boost 1.73
f48051d33f FindBoost: Simplify Boost_VERSION_STRING comparisons
56b3375f3e BoostScanDeps: Fix typo in numpy handling

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4635
2020-04-21 07:44:31 -04:00
Brad King
7bfe2924f4 Merge branch 'upstream-KWIML' into update-kwiml
# By KWIML Upstream
* upstream-KWIML:
  KWIML 2020-04-20 (4abfeaa7)
2020-04-20 08:42:21 -04:00
Alexander Grund
9daf79c53b FindBoost: Add support for Boost 1.73
Run `Utilities/Scripts/BoostScanDeps.cmake` with the Boost 1.73.0
sources to compute dependencies.

This includes a new Boost.Nowide library.

Special case: Boost.Filesystem is an optional dependency as the include
is only required to make Boost.Filesystem use UTF-8 paths on user
request
2020-04-20 08:27:32 -04:00
Alexander Grund
56b3375f3e BoostScanDeps: Fix typo in numpy handling
Fix a typo from commit e66e8e8914 (BoostScanDeps: Special case python
and numpy and variants, 2017-08-22, v3.10.0-rc1~229^2~1).
2020-04-20 08:27:31 -04:00
Marc Chevrier
40d1735681 Merge topic 'add-contains-to-cmext-algorithm'
aacd4e4a90 Refactoring: add cm::contains to <cmext/algorithm>

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4606
2020-04-18 05:27:52 -04:00
Marc Chevrier
aacd4e4a90 Refactoring: add cm::contains to <cmext/algorithm> 2020-04-17 10:00:03 +02:00
Jiri Malak
22aff63653 setup-user: restore portability
Changes in commit 5129e97285 (setup-user: switch to git-var to check if
username and e-mail are set, 2019-11-24, v3.17.0-rc1~379^2) now require
the `rev` and `cut` tools to be available.  Revise the logic to use that
approach only when they are available, and otherwise fall back to the
previous more portable approach.

Co-Author: Brad King <brad.king@kitware.com>
2020-04-15 10:30:04 -04:00
Brad King
630e501f8b libuv: Restore compilation on Apple i386 architecture
libuv upstream commit `2475296c` (build: make code compilable for iOS on
Xcode, 2020-01-18, v1.35.0~47) added a `defined(TARGET_OS_IPHONE)`
preprocessor condition, but `TARGET_OS_IPHONE` is always defined on
Apple to either 0 or 1.
2020-04-07 07:49:50 -04:00
Brad King
02a28f1d44 libuv: Restore compilation with XLClang 16.1 on AIX
libuv upstream commit `4a972bf0` (aix: Fix broken cmpxchgi() XL C++
specialization., 2019-09-06, v1.32.0~5) broke compilation with this
compiler.  According to

    https://www.ibm.com/support/knowledgecenter/SSGH3R_16.1.0/com.ibm.xlcpp161.aix.doc/migrate/migrate_to_xlclang.html

XLClang 16.1 for AIX does not support `__sync_val_compare_and_swap`.
The documentation suggests using C++11 atomic operations instead, but
this is C code.  For now fall back to the non-atomic equivalent used
before so we can at least compile.  Add a FIXME comment for this.
2020-04-07 07:47:47 -04:00
Brad King
722d6b4105 Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2020-04-06 (d21f5aea)
2020-04-06 11:58:14 -04:00
Brad King
5ded334ee1 Merge topic 'curl-http2'
02dd24a928 curl: Enable HTTP/2 support by using nghttp2
a24dd93e93 curl: When building inside CMake, link dependencies as PRIVATE
0b872fd4be nghttp2: Build the library within CMake for use by our curl
cd5a320d68 Merge branch 'upstream-nghttp2' into curl-http2
5dc6921805 nghttp2 2019-11-15 (cc05c5fe)
1b8e2c2a3d nghttp2: Add script to import from upstream

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4560
2020-04-06 08:20:01 -04:00
Brad King
f0e97788e5 Merge topic 'rel-linux-openssl'
3a66c7674c Utilities/Release: Update to openssl 1.1.1f

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4563
2020-04-03 06:55:35 -04:00
Brad King
3a66c7674c Utilities/Release: Update to openssl 1.1.1f 2020-04-03 06:50:56 -04:00
Brad King
02dd24a928 curl: Enable HTTP/2 support by using nghttp2 2020-04-03 06:43:00 -04:00
Brad King
a24dd93e93 curl: When building inside CMake, link dependencies as PRIVATE 2020-04-03 06:43:00 -04:00
Brad King
0b872fd4be nghttp2: Build the library within CMake for use by our curl
Provide our own minimal `config.h` since the upstream one is much
larger to support other parts of its distribution.  Compile with
warnings disabled since this is third-party code.
2020-04-03 06:43:00 -04:00
Brad King
cd5a320d68 Merge branch 'upstream-nghttp2' into curl-http2
# By nghttp2 upstream
* upstream-nghttp2:
  nghttp2 2019-11-15 (cc05c5fe)
2020-04-01 13:30:31 -04:00
Brad King
1b8e2c2a3d nghttp2: Add script to import from upstream 2020-04-01 13:30:22 -04:00
Marc Chevrier
f034b0f663 CMake compilation: do not use compiler extensions
For now, compiler extensions are no longer activated on CMake sources.
However these extensions are still used for various third parties.

This MR is a partial answer to the issue #20454.
2020-03-23 10:29:58 +01:00
Brad King
6857aaaa06 Merge topic 'ibmi-fix-libuv-build' into release-3.17
7d6bd14dca libuv: Add support for building on IBM i (OS400)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4431
2020-03-09 08:58:38 -04:00
Brad King
809570c4a9 Merge topic 'ibmi-fix-libuv-build'
7d6bd14dca libuv: Add support for building on IBM i (OS400)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4431
2020-03-09 08:58:38 -04:00