Commit Graph

389 Commits

Author SHA1 Message Date
Brad King
1f46bc299b ci: Extend packaging pipeline to sign Windows binaries automatically
Split packaging on Windows into dedicated jobs that run with access to
an EV signing certificate.

Prior to commit 0929221ca3 (gitlab-ci: Simplify Windows packaging
pipeline, 2023-02-28, v3.26.0-rc5~3^2~3) we had separate packaging jobs,
but they did not run in release packaging pipelines.  Restore them, and
run them in both nightly and release packaging pipelines.
2025-03-19 11:22:30 -04:00
Kitware Robot
1772622772 LICENSE: Replace references to Copyright.txt with LICENSE.rst
```
git grep -lz 'Copyright.txt or https://cmake.org/licensing ' |
  while IFS= read -r -d $'\0' f ; do
    sed -i '/Copyright.txt or https:\/\/cmake.org\/licensing / {
              s/Copyright.txt/LICENSE.rst/
            }' "$f" ; done
```
2025-03-03 10:43:35 -05:00
Brad King
5dd973f900 ci: Convert sunos packaging jobs to build sunos-{x86_64,sparc64} binaries 2025-02-27 16:35:09 -05:00
Brad King
fd1907e50e Utilities/Release: Convert base images to build sunos-{x86_64,sparc64} 2025-02-27 16:35:09 -05:00
Brad King
28f1da4b25 ci: Add jobs to build sunos-{i386,sparc} binaries 2025-02-15 07:28:07 -05:00
Brad King
59ed18e54d Utilities/Release: Add base images to build sunos-{i386,sparc} binaries 2025-02-15 07:28:06 -05:00
Brad King
80ec307900 curl: Set build options the way we need for CMake
Set options added by the update to curl 8.12.1.

In particular, now that upstream curl's CMake code depends on
OpenSSL via imported targets from FindOpenSSL, we can let it
handle the transitive dependency on posix threads.
2025-02-14 08:57:11 -05:00
Alex Turbov
78e45c2db6
Style: Replace TABs with spaces for indentation in some files
Mark files that must use TABs to indent in the `.gitattributes`.
Use space instead of TABs in sources and some data/test files.
2025-01-12 18:49:25 +04:00
Brad King
f6c2f64d04 Utilities/Release: Update MSI generation to use WIX 4 2024-06-10 11:22:15 -04:00
Brad King
7f9817b7cb Remove unnecessary executable permission from .ps1 scripts
Powershell scripts cannot be launched as commands on Windows.
They must be run through the `powershell` or `pwsh` tool.
2024-04-30 09:33:44 -04:00
Brad King
2e5330591d Utilities/Release/WiX: Modify PATH by default when installing on Windows
If the PATH modification choice has not been saved persistently by an
existing installation of CMake, default to modifying the system PATH
environment variable to make our command-line tools available for all
users.  This is a common expectation.

Fixes: #21465
2024-03-29 09:32:27 -04:00
Brad King
32388821e2 Utilities/Release/WiX: Save PATH modification preference persistently
Our Windows installer provides an interactive dialog to choose whether
the PATH should be modified.  It may also be specified on the `msiexec`
command-line as an `ADD_CMAKE_TO_PATH={0,1}` property.  Save the choice
persistently in the Windows Registry and use the same choice by default
in future installations.

Issue: #21465
2024-03-29 09:32:27 -04:00
Brad King
7bd68cf381 Utilities/Release/WiX: Convert PATH modification preference to checkbox
Add explicit support for passing a `ADD_CMAKE_TO_PATH={0,1}` property to
`msiexec` command-line installations to control the checkbox.  Also
preserve compatibility with the old `ADD_CMAKE_TO_PATH={None,System}`
property, which previously controlled the radio button group, by mapping
the values to the checkbox.

Remove the "Add CMake to the system PATH for the current user" option.
It actually added CMake to the installing user's PATH, not the system
PATH, even though CMake is installed to a system location.

Also revise the wording of the desktop shortcut checkbox to match
the style of the PATH checkbox wording.

Issue: #21465
2024-03-28 16:20:04 -04:00
Brad King
d320c76257 Utilities/Release/WiX: Clarify UI options dialog name 2024-03-28 15:19:18 -04:00
Brad King
cde0b7c131 Utilities/Release/WiX: Clarify UI dialog order 2024-03-28 15:19:18 -04:00
Brad King
48d2a7ac62 Utilities/Release/WiX: Backport UI dialog condition fix from WiX 3.11
See WiX issue 4737 and wix3 PR 284.
2024-03-28 15:19:17 -04:00
Brad King
36ae046ed1 Utilities/Release/WiX: Simplify desktop shortcut condition 2024-03-28 15:19:17 -04:00
Brad King
9e831a6211 Utilities/Release/WiX: Simplify specification of CMake registry value 2024-03-28 15:19:17 -04:00
Brad King
68e9454abe Utilities/Release/WiX: Require Windows Installer 5.0
This version comes with Windows 7, the oldest our binaries support.
2024-03-28 15:19:17 -04:00
Brad King
beecda4ddd Utilities/Release: Replace tabs with spaces in WiX input files 2024-03-11 11:59:17 -04:00
Brad King
3ed275bbb6 CPack/WiX: Fix installer status text
Previously, installers displayed extra text on some Windows versions:

    File: [1], Directory: [9], Size [6]

Add an option to our WiX templates to suppress that.

Fixes: #25634
2024-01-24 15:28:13 -05:00
doufu
7def566e92 Utilities/Release: Update to Qt 5.15.10 on windows-{x86_64,i386} builds
Fixes: #25187
Co-authored-by: Brad King <brad.king@kitware.com>
2023-09-07 09:03:25 -04:00
Brad King
ef2bab7687 Utilities/Release: Update docker specs for linux-x86_64 to centos 7
Update the centos base image from centos 6 to centos 7.  The latter is
the minimum version supported by libuv 1.45.  The resulting binaries
require GLIBC 2.17.
2023-08-16 14:29:55 -04:00
Brad King
30b1080c69 Utilities/Release: Remove unused documentation build settings
Since commit 37e015d4a6 (Utilities/Sphinx: Refactor Sphinx reference
recording, 2023-03-08, v3.27.0-rc1~342^2~1) our documentation requires
Python 3.7 or higher.  This is not available in the base images we use
to build Linux release binaries.  These days our release packaging CI
pipeline builds the documentation in a separate job anyway.
2023-08-16 12:25:22 -04:00
Brad King
21df34b255 Tests: Modernize name of option to control existence of BootstrapTest 2023-05-18 13:41:31 -04:00
Brad King
4d929544c7 Merge topic 'rel-win-sign-digest'
870f30aacc Utilities/Release: Use explicit digest for Win7-compatible signature

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7970
2022-11-30 09:57:47 -05:00
Brad King
870f30aacc Utilities/Release: Use explicit digest for Win7-compatible signature
Otherwise `signtool` warns.
2022-11-30 09:16:22 -05: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
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
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
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
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
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
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
1eab922d92 Utilities/Release: Add script to sign and package Windows binaries
Windows binaries for official releases on `cmake.org` are signed
manually by a maintainer with a suitable signing certificate.
Add a script to sign the binaries, run CPack, and sign the installer.
2022-05-19 15:25:55 -04:00
Brad King
db48074d58 Utilities/Release: Add script to build Qt 5.12.1 Windows binaries
These may be used to build CMake binaries for Windows `x86_64` and `i386`.
Qt 5.12.1 supports Windows 7.

Port the logic from `Utilities/Release/win/x86/deps/Dockerfile` and its
helper scripts.
2022-05-19 15:25:54 -04:00
Kyle Edwards
313ea361b0 CMake: Use FindPython instead of FindPythonInterp to build CMake itself
Fixes: #23444
2022-04-21 14:23:36 -04:00
Brad King
2167fce99b Utilities/Release: Drop SLA from CMake macOS DMG package
macOS 12 deprecates the tools needed to attach a SLA to a `.dmg`.
CMake 3.23 added `CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE` to
control whether `CPACK_RESOURCE_FILE_LICENSE` is used as the SLA.
CMake 3.24 will add policy CMP0133 to disable the SLA by default.

Explicitly turn off the SLA for CMake's official macOS binaries.
This will allow them to build on future macOS versions that have
no SLA tooling available.

Issue: #22978
2022-04-20 13:27:39 -04:00
Brad King
261b29bccc Merge topic 'doc-qhelpgenerator'
bf69fa32c4 Utilities/Sphinx: Update qthelp generation to qhelpgenerator
37904abb58 Help: Add "Updates" section header in 3.22 release notes

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7150
2022-04-08 08:51:22 -04:00
Brad King
bf69fa32c4 Utilities/Sphinx: Update qthelp generation to qhelpgenerator
`qcollectiongenerator` is deprecated in favor of `qhelpgenerator`.
2022-04-07 09:37:37 -04:00
Brad King
2b0f96ce56 Merge branch 'rel-win-docker' into release-3.22
Merge-request: !7087
2022-03-21 14:13:44 -04:00
Brad King
2e93f6ac1a Merge topic 'rel-win-docker'
a6aa88e51f Utilities/Release: Add "source" stage to Windows docker spec

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !7087
2022-03-21 14:12:38 -04:00
Brad King
a6aa88e51f Utilities/Release: Add "source" stage to Windows docker spec
Revise the spec added by commit ff929badb3 (Utilities/Release: Add
docker specs to build and test Windows binaries, 2020-05-05,
v3.18.0-rc1~203^2~1) to add a `source` stage that stops just after
copying the source tree into the image.  This provides more granular
control to driving scripts.
2022-03-18 09:50:55 -04:00
Brad King
9d621ceba1 Tests: Run MFC test only when explicitly enabled
Previously we used a complicated heuristic to decide whether or not to
run the MFC test, but it sometimes decided incorrectly to run the test.
Since that was first written, we have developed a convention for other
tests to enable them via undocumented cache entries that are added only
on machines known to meet the tests' requirements.  Do that for MFC.
2022-02-03 06:45:53 -05:00
Brad King
2247a7929d Utilities/Release: Update macOS signing script for CPack OSXX11 removal
Since  commit 4ef974e6cb (CPack: Remove undocumented deprecated OSXX11
generator, 2021-11-05), the `CPack.OSXScriptLauncher.in` binary is no
longer installed in the `CMake.app` bundle, so it does not need to be
signed.
2021-12-06 17:12:37 -05:00
Brad King
bed4b1583e Utilities/Release: Add script to sign/notarize macOS application bundle
We produce macOS binaries for `cmake.org` using GitLab CI jobs.
Binaries for official releases are additionally signed and notarized
manually by a maintainer with suitable signing certificates and Apple
developer account credentials.  Add a script to drive these steps.
2021-12-06 17:11:26 -05:00