Commit Graph

1856 Commits

Author SHA1 Message Date
Brad King 7c71f9b1e8 Merge topic 'filesystem-path-c++03-abi'
ee9805ccd1 cm/filesystem: Fix crash with pre-C++11 std::string GNU ABI in C++17

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7813
2022-10-21 10:06:22 -04:00
Brad King ee9805ccd1 cm/filesystem: Fix crash with pre-C++11 std::string GNU ABI in C++17
The `remove_filename` and `replace_extension` methods compute an offset
between the whole path in a `std::string` and a part of a path in a
`std::string_view`.  This is done by subtracting their `.data()`
pointers.  However, C++17 adds a non-const `.data()` through which
modification of the string is allowed.  This means the copy-on-write
implementation used by the pre-C++11 std::string GNU ABI must reallocate
if the string has been copied.  Our subtraction then computes an offset
between two different allocations, which is undefined behavior.

The workaround in commit b3ca4f9ad1 (cm/filesystem: Work around crash
when compiled for CYGWIN/MSYS runtime, 2021-04-22, v3.21.0-rc1~271^2~2)
avoided the problem by calling the non-const `.data()` to reallocate
before constructing the `string_view`.  Instead, explicitly call the
const `.data()` method on the string, which does not reallocate.

Fixes: #22090, #23328
2022-10-20 18:31:50 -04:00
Sean Orner 43481a77f9 clang-tidy module: add test for cmStrLen() check 2022-10-19 13:52:58 -04:00
Kyle Edwards 43a88b56af clang-tidy module: add check for cmStrLen()
Co-Authored-by: Joe Blaauboer <jblaauboer67@gmail.com>
2022-10-19 13:51:11 -04:00
Kyle Edwards 0a2093d0c5 clang-tidy module: add test framework 2022-10-14 11:09:38 -04:00
Kyle Edwards 153f39f4a5 Merge topic 'clang-tidy-plugin-stub'
d6f5e67f7b ci: add clang-tidy plugin to clang-tidy job
6c6912123e clang-tidy: Add option to load CMake's clang-tidy module
0ad3941f73 clang-tidy module: Add stub module

Acked-by: Kitware Robot <kwrobot@kitware.com>
Tested-by: buildbot <buildbot@kitware.com>
Merge-request: !7768
2022-10-14 11:01:58 -04:00
Kyle Edwards 0ad3941f73 clang-tidy module: Add stub module
Issue: #23912
2022-10-12 13:23:45 -04:00
Brad King 5f998bbcb3 Configure CMake itself with policies through CMake 3.24 2022-10-12 12:43:27 -04:00
Brad King 294b6db533 Utilities/Sphinx: Avoid deprecated docutils error handling helpers
The `SafeString` and `ErrorString` classes are deprecated and will be
removed in Docutils 0.21 or later.  They help avoid encoding errors
during exception handling in Python <= 2.7, but these days we always
use Python 3 to build the documentation, at least during development,
when error cases are most likely to occur.

Fixes: #24039
2022-10-11 10:01:12 -04:00
Brad King a48d668d18 Merge topic 'update-libuv'
23de1675fd libuv: Update CMake-internal buildsystem for 1.44.2
ff82df301c Merge branch 'upstream-libuv' into update-libuv
a23da15596 libuv 2022-07-12 (0c1fa696)
cfe8fd6421 libuv: Update script to get libuv 1.44.2

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7709
2022-09-27 09:52:55 -04:00
Brad King 23de1675fd libuv: Update CMake-internal buildsystem for 1.44.2 2022-09-27 09:50:38 -04:00
Brad King ff82df301c Merge branch 'upstream-libuv' into update-libuv
* upstream-libuv:
  libuv 2022-07-12 (0c1fa696)
2022-09-27 09:50:16 -04:00
Brad King cfe8fd6421 libuv: Update script to get libuv 1.44.2 2022-09-27 09:49:15 -04:00
Alex Turbov df8ad72ffa Build: Use imported target kwiml::kwiml instead of variables 2022-09-22 10:21:39 -04:00
Alex Turbov 2be5a7de4e Build: Use imported target ZLIB::ZLIB instead of variables 2022-09-22 10:20:30 -04:00
Alex Turbov a509602699 Build: Modernize some foreach calls to use IN LISTS/IN ITEMS 2022-09-22 09:24:46 -04:00
FeRD (Frank Dana) ff2e7ceb66 QtHelp: Update Sphinx issue URLs in comments
The QtHelp Sphinx generation code contains two links to Sphinx issues
that used old, dead BitBucket URLs. Those issues were migrated to
GitHub, so the dead links can be replaced with working ones.
2022-09-04 22:59:00 +10:00
Marc Chevrier 02c067dee5 cm::enum_set: fix various bugs 2022-08-22 16:25:53 +02:00
Kyle Edwards bf7e3124cb Remove stale references to CMakeServerLib 2022-08-02 11:05:52 -04:00
Dubach, Joev 9dbcfb8fdd MSVC: Recognize -XYZ as well as /XYZ when parsing MS tool command lines
Fixes: #23772
2022-07-27 16:51:15 -04:00
Brad King 197ef69aa1 cmArgumentParser: Simplify internal method signatures
Record `Parse` parameters during construction of the internal instance
instead of passing them to every method.
2022-07-20 16:03:12 -04:00
Brad King 3a888b2dda Merge topic 'rel-macos-sign-notarize'
432ae51467 Utilities/Release: Update macOS notarization script to use notarytool

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7463
2022-07-08 12:16:23 -04:00
Brad King 69ce5c0ce8 Merge topic 'rel-macos-sign-notarize' into release-3.24
432ae51467 Utilities/Release: Update macOS notarization script to use notarytool

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7463
2022-07-08 12:16:22 -04:00
Brad King 5924dc2a7e Merge branch 'rel-macos-sign-notarize' into release-3.23
Merge-request: !7463
2022-07-08 12:15:55 -04:00
Brad King 432ae51467 Utilities/Release: Update macOS notarization script to use notarytool
`xcnotary` is no longer needed since `altool` has been deprecated in
favor of `notarytool`, which has builtin support for waiting.
2022-07-08 12:14:23 -04:00
makise-homura de16db0f64 curl: make libcmcurl buildable with old LibreSSL
LibreSSL older than 2.6.0 is not supported correctly
in upstream curl, and as a consequence, in libcmcurl.
Such LibreSSL versions can be used in old distros,
like OS Elbrus 4.x and 5.x, so until this fix, CMake
wasn't buildable there either.
2022-06-28 11:12:04 -04:00
Brad King 32604113b6 Merge topic 'ci-rel-win-arm64'
41ea4d4de8 ci: Rebuild Qt 6.3.0 windows-arm64 dependency with LLVM/Clang
e0d9ee0cc4 Utilities/Release: Simplify script to build Qt 6.3.0 Windows binaries

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7380
2022-06-20 09:57:23 -04:00
Cristian Adam e0d9ee0cc4 Utilities/Release: Simplify script to build Qt 6.3.0 Windows binaries
Revise and simplify the script from commit d0c9225a7e
(Utilities/Release: Add script to build Qt 6.3.0 Windows binaries,
2022-06-10, v3.24.0-rc1~4^2~5).  For `cmake-gui` we only need QtBase.
Also, convert to a `.cmake` script.

Issue: #21902
2022-06-17 11:04:10 -04:00
Brad King ac24f4d49b Configure CMake itself with policies through CMake 3.23 2022-06-14 15:05:09 -04:00
Brad King 0caca3d01b Merge topic 'update-kwiml'
82eb512637 Merge branch 'upstream-KWIML' into update-kwiml
2a233bb754 KWIML 2022-06-14 (7b9bd7fe)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7356
2022-06-14 12:05:09 -04:00
Brad King 6b5a0a0685 Merge topic 'update-kwiml' into release-3.24
82eb512637 Merge branch 'upstream-KWIML' into update-kwiml
2a233bb754 KWIML 2022-06-14 (7b9bd7fe)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Merge-request: !7356
2022-06-14 12:05:08 -04:00
Brad King 82eb512637 Merge branch 'upstream-KWIML' into update-kwiml
# By KWIML Upstream
* upstream-KWIML:
  KWIML 2022-06-14 (7b9bd7fe)
2022-06-14 10:43:13 -04:00
Brad King d084718eb9 Utilities/Release: Add windows-arm64 package to file table 2022-06-13 15:27:34 -04:00
Brad King d0c9225a7e Utilities/Release: Add script to build Qt 6.3.0 Windows binaries
These may be used to build CMake binaries for Windows.
2022-06-13 15:02:47 -04:00
Brad King 29c578c8fb zlib: Mangle symbols to avoid conflict with external transitive dependencies
Mangling was dropped by commit fc22ac115e (zlib: Drop old sources to
make room for a fresh import, 2022-05-26).  Restore it for the new
import of upstream zlib.
2022-06-11 05:10:27 -04:00
Brad King a4c48afbbc Utilities/Release: Drop unnecessary system API definitions for Linux
We previously defined `_POSIX_C_SOURCE` and friends while building
binary packages in order to minimize the version of glibc needed at
runtime.  The definitions were added by commit facc240a45
(Utilities/Release: Add docker specs to build and test Linux binaries,
2019-08-23, v3.16.0-rc1~184^2~2), but came from older packaging scripts
that were removed by commit 689fdbfc61 (Utilities/Release: Drop linux64
script in favor of docker build, 2019-08-27, v3.16.0-rc1~184^2).  Those
older scripts were meant for use in a hand-maintained environment.  Now
that we use base images of old CentOS versions to establish the build
environment, our builds are already limited to older glibc versions
(glibc 2.12 from centos6 on x86_64, and 2.17 from centos7 on aarch64).

Our old system API definitions no longer affect the glibc version
required by the binaries.  Drop them to avoid potential conflicts with
system API definitions added by changes like commit f034b0f663 (CMake
compilation: do not use compiler extensions, 2020-03-14, v3.18.0-rc1~494^2)
and commit c7c3e39e4f (Utilities: Activate POSIX APIs even without
compiler extensions, 2022-06-02).
2022-06-06 11:44:53 -04:00
Brad King c7c3e39e4f Utilities: Activate POSIX APIs even without compiler extensions
Compile some third-party libraries with preprocessor definitions that
activate POSIX APIs even when compiler extensions are not enabled.
We already do this in libuv, inherited from the upstream buildsystem.

This extends commit f034b0f663 (CMake compilation: do not use compiler
extensions, 2020-03-14, v3.18.0-rc1~494^2).

Issue: #20454
2022-06-04 09:08:27 -04:00
Brad King 3ba324b6b6 libarchive: Remove a system preprocessor macro that conflicts with a local var
On SunOS i386, the system headers sometimes define macro names
corresponding to register names, short and with no prefix.
Undefine one that conflicts with our code.
2022-06-04 08:15:20 -04:00
Brad King 4a283fcc31 librhash: Explicitly enable large file support on 32-bit targets
`_LARGEFILE_SOURCE` is needed at least on SunOS i386 if compiler
extensions are not enabled.
2022-06-04 08:15:20 -04:00
Brad King 0b953d01a6 Utilities/Release: Drop docker specs for Windows binaries
Since commit 4c7c66dcf5 (gitlab-ci: Add jobs to make Windows x86_64 and
i386 packages, 2022-05-19), we use CI jobs to produce Windows binaries.
Revert commit ff929badb3 (Utilities/Release: Add docker specs to
build and test Windows binaries, 2020-05-05, v3.18.0-rc1~203^2~1).
The filesystem inside Windows containers is too slow to support
parallel builds efficiently.
2022-06-01 12:43:22 -04:00
Brad King 230eaa1d55 Utilities/Release: Document Linux aarch64 packaging support
This was accidentally left out of commit e14fb01c41 (Utilities/Release:
Add docker specs for Linux aarch64 binaries, 2020-11-25, v3.19.3~8^2~2).
2022-06-01 12:39:35 -04:00
Brad King 0b30568219 Merge topic 'update-zlib'
e6e7b615af zlib: Update build within CMake for 1.2.12
152b4f8920 Merge branch 'upstream-zlib' into update-zlib
ffdaa419d7 zlib 2022-03-27 (21767c65)
933293dbc2 zlib: Update script to get zlib 1.2.12

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7302
2022-05-31 12:00:47 -04:00
Brad King e6e7b615af zlib: Update build within CMake for 1.2.12 2022-05-28 06:45:49 -04:00
Brad King 152b4f8920 Merge branch 'upstream-zlib' into update-zlib
* upstream-zlib:
  zlib 2022-03-27 (21767c65)
2022-05-28 06:44:43 -04:00
Brad King a1abb27be2 Merge branch 'upstream-KWIML' into update-kwiml
# By KWIML Upstream
* upstream-KWIML:
  KWIML 2022-05-27 (47070837)
2022-05-27 13:46:45 -04:00
Brad King 933293dbc2 zlib: Update script to get zlib 1.2.12 2022-05-26 12:30:29 -04:00
Brad King 87b304f649 zlib: Add CMakeLists.txt for build within CMake 2022-05-26 12:29:41 -04:00
Brad King b0d97aeea5 zlib: Use unistd.h on all non-Windows platforms
Replace the `HAVE_UNISTD_H` change from commit 3edcd70754 (ENH: Update
zlib to 1.2.3, 2007-09-11, v2.6.0~1135) with simpler logic.
2022-05-26 12:29:41 -04:00
Brad King 19881cbdec zlib: Suppress some MSVC warnings
Restore the warning suppression code added by commit 0e4571d25c (ENH:
Initial import from VTK, 2005-01-26, v2.4.0~2414) and commit 3edcd70754
(ENH: Update zlib to 1.2.3, 2007-09-11, v2.6.0~1135).
2022-05-26 12:29:41 -04:00
Brad King 0d201ad25b zlib: Add initialization to satisfy valgrind
Restore the change from commit cf133ff6b3 (Fix uninitialized variable
access in zlib, 2009-11-18, v2.8.2~705). Their web site claims it does
no harm ( https://www.zlib.net/zlib_faq.html#faq36), but fixing it this
way eliminates the diagnostic.
2022-05-26 12:29:41 -04:00