• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..07-Dec-2021-

WiX/H07-May-2022-313244

linux/H07-Dec-2021-713613

macos/H07-Dec-2021-402311

win/x86/H07-Dec-2021-465384

README.rstH A D07-Dec-20213.3 KiB9465

consolidate-relnotes.bashH A D07-Dec-2021587 2818

files-sign.bashH A D07-Dec-202175 62

files-v1.json.inH A D07-Dec-20212.6 KiB107106

files-v1.rstH A D07-Dec-20216 KiB187141

files.bashH A D07-Dec-20212 KiB8569

push.bashH A D07-Dec-20211.6 KiB7455

README.rst

1CMake Release Utilities
2***********************
3
4This directory contains scripts used to package CMake itself for distribution
5on ``cmake.org``.  See also the `CMake Source Code Guide`_.
6
7.. _`CMake Source Code Guide`: ../../Help/dev/source.rst
8
9File Table
10----------
11
12The set of package files distributed on ``cmake.org`` varies by CMake version.
13Clients providing automatic download functionality may query the set of
14package files available using a special file that lists them:
15
16* `File Table v1`_ Documentation
17
18.. _`File Table v1`: files-v1.rst
19
20Docker
21------
22
23The ``<os>/<arch>/`` directories contain Docker specifications that anyone
24may use to produce binaries for CMake on the following platforms:
25
26* ``linux/x86_64/``: Linux on ``x86_64`` architectures.
27* ``win/x86/``: Windows on ``x86_64`` and ``i386`` architectures.
28
29Each ``<os>/<arch>/`` directory contains the following:
30
31* ``<os>/<arch>/base/Dockerfile``:
32  Produces a base image with a build environment for portable CMake binaries.
33  This image is published in the `kitware/cmake Docker Hub Repository`_
34  with tag ``build-<os>-<arch>-base-<date>``.
35
36* ``<os>/<arch>/deps/Dockerfile``:
37  Produces an image with custom-built dependencies for portable CMake binaries.
38  This image is published in the `kitware/cmake Docker Hub Repository`_
39  with tag ``build-<os>-<arch>-deps-<date>``.
40
41* ``<os>/<arch>/Dockerfile``:
42  Produce an image containing a portable CMake binary package.
43  Build this image using the CMake source directory as the build context.
44  The resulting image will have an ``/out`` (or ``c:/out``) directory
45  containing the package.  For example, on Linux ``x86_64``:
46
47  .. code-block:: console
48
49    $ docker build --tag=cmake:build --network none \
50        -f cmake-src/Utilities/Release/linux/x86_64/Dockerfile cmake-src
51    $ docker container create --name cmake-build cmake:build
52    $ docker cp cmake-build:/out .
53    $ ls out/cmake-*-linux-x86_64.*
54
55  On Windows, the ``win/x86`` specifications support both the ``x86_64``
56  and ``i386`` architectures selected via ``--build-arg ARCH=...``.
57
58* ``<os>/<arch>/test/Dockerfile``:
59  Produces a base image with a test environment for packaged CMake binaries.
60  For example, on Linux ``x86_64``, one may build the test base image:
61
62  .. code-block:: console
63
64    $ docker build --tag=cmake:test-base \
65        cmake-src/Utilities/Release/linux/x86_64/test
66
67  Then create a local ``test/Dockerfile`` to prepare an image with both the
68  CMake source tree and the above-built package::
69
70    FROM cmake:test-base
71    COPY cmake-src /opt/cmake/src/cmake
72    ADD out/cmake-<ver>-linux-x86_64.tar.gz /opt/
73    ENV PATH=/opt/cmake-<ver>-linux-x86_64/bin:$PATH
74
75  Build the test image and run it to drive testing:
76
77  .. code-block:: console
78
79    $ docker build --tag cmake:test --network none -f test/Dockerfile .
80    $ docker run --network none cmake:test bash test-make.bash
81    $ docker run --network none cmake:test bash test-ninja.bash
82
83  On Windows, the test scripts are called ``test-nmake.bat`` and
84  ``test-ninja.bat``.  In the ``x86`` architecture they accept one
85  argument specifying either ``x86_64`` or ``i386``.
86
87.. _`kitware/cmake Docker Hub Repository`: https://hub.docker.com/r/kitware/cmake
88
89macOS
90-----
91
92The ``macos/`` directory contains scripts used to produce dependencies
93for building CMake binaries on macOS.
94