From a4e5719d318f106ae41f5c03f21be1e34da3baf3 Mon Sep 17 00:00:00 2001 From: Brad King Date: Sat, 8 Feb 2025 10:38:16 -0500 Subject: Solaris: Rename local variable to avoid conflict with system headers --- Source/cmBase32.cxx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/cmBase32.cxx b/Source/cmBase32.cxx index b11fd79..1a79caa 100644 --- a/Source/cmBase32.cxx +++ b/Source/cmBase32.cxx @@ -55,15 +55,15 @@ std::string cmBase32Encoder::encodeString(unsigned char const* input, size_t remain = static_cast(end - input); if (remain != 0) { // Temporary source buffer filled up with 0s - unsigned char extended[blockSize]; + unsigned char padded[blockSize]; for (size_t ii = 0; ii != remain; ++ii) { - extended[ii] = input[ii]; + padded[ii] = input[ii]; } for (size_t ii = remain; ii != blockSize; ++ii) { - extended[ii] = 0; + padded[ii] = 0; } - Base32Encode5(extended, buffer); + Base32Encode5(padded, buffer); size_t numPad(0); switch (remain) { case 1: -- cgit v0.12 From 59ed18e54da8cd0d896db234a82a62404c9c6fd3 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 13 Feb 2025 14:03:47 -0500 Subject: Utilities/Release: Add base images to build sunos-{i386,sparc} binaries --- Utilities/Release/README.rst | 6 +++ Utilities/Release/sunos/docker/Dockerfile | 53 +++++++++++++++++++++++ Utilities/Release/sunos/docker/base.bash | 31 ++++++++++++++ Utilities/Release/sunos/docker/base.lst | 3 ++ Utilities/Release/sunos/docker/docker-clean | 0 Utilities/Release/sunos/docker/openssl.bash | 62 +++++++++++++++++++++++++++ Utilities/Release/sunos/docker/openssl.lst | 4 ++ Utilities/Release/sunos/docker/openssl.patch | 22 ++++++++++ Utilities/Release/sunos/docker/sysroot.bash | 53 +++++++++++++++++++++++ Utilities/Release/sunos/i386/cache.txt | 25 +++++++++++ Utilities/Release/sunos/i386/toolchain.cmake | 6 +++ Utilities/Release/sunos/sparc/cache.txt | 26 +++++++++++ Utilities/Release/sunos/sparc/toolchain.cmake | 6 +++ 13 files changed, 297 insertions(+) create mode 100644 Utilities/Release/sunos/docker/Dockerfile create mode 100755 Utilities/Release/sunos/docker/base.bash create mode 100644 Utilities/Release/sunos/docker/base.lst create mode 100644 Utilities/Release/sunos/docker/docker-clean create mode 100755 Utilities/Release/sunos/docker/openssl.bash create mode 100644 Utilities/Release/sunos/docker/openssl.lst create mode 100644 Utilities/Release/sunos/docker/openssl.patch create mode 100755 Utilities/Release/sunos/docker/sysroot.bash create mode 100644 Utilities/Release/sunos/i386/cache.txt create mode 100644 Utilities/Release/sunos/i386/toolchain.cmake create mode 100644 Utilities/Release/sunos/sparc/cache.txt create mode 100644 Utilities/Release/sunos/sparc/toolchain.cmake diff --git a/Utilities/Release/README.rst b/Utilities/Release/README.rst index d5bbd2b..ac671c0 100644 --- a/Utilities/Release/README.rst +++ b/Utilities/Release/README.rst @@ -79,6 +79,12 @@ Each ``//`` directory contains the following: .. _`kitware/cmake Docker Hub Repository`: https://hub.docker.com/r/kitware/cmake +SunOS +----- + +The ``sunos/`` directory contains infrastructure to cross-compile +CMake binaries to SunOS from Linux hosts. + macOS ----- diff --git a/Utilities/Release/sunos/docker/Dockerfile b/Utilities/Release/sunos/docker/Dockerfile new file mode 100644 index 0000000..626dff4 --- /dev/null +++ b/Utilities/Release/sunos/docker/Dockerfile @@ -0,0 +1,53 @@ +# syntax=docker/dockerfile:1 + +ARG BASE_IMAGE=debian:12 + +FROM ${BASE_IMAGE} AS apt-cache +# Populate APT cache w/ the fresh metadata and prefetch packages. +# Use an empty `docker-clean` file to "hide" the image-provided +# file to disallow removing packages after `apt-get` operations. +RUN --mount=type=tmpfs,target=/var/log \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=bind,source=base.lst,target=/root/base.lst \ + --mount=type=bind,source=openssl.lst,target=/root/openssl.lst \ + apt-get update \ + && apt-get --download-only -y install $(grep -h '^[^#]\+$' /root/*.lst) + +FROM ${BASE_IMAGE} AS base +ARG ARCH=sparc +RUN --mount=type=bind,source=base.lst,target=/root/base.lst \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ + --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ + --mount=type=tmpfs,target=/var/log \ + --mount=type=tmpfs,target=/tmp \ + apt-get install -y $(grep '^[^#]\+$' /root/base.lst) +RUN --mount=type=bind,source=base.bash,target=/root/base.bash \ + --mount=type=tmpfs,target=/tmp \ + /root/base.bash $ARCH + +FROM base AS sysroot +ARG SYSROOT_URL +ARG SYSROOT_SHA256SUM +RUN --mount=type=bind,source=sysroot.bash,target=/root/sysroot.bash \ + --mount=type=tmpfs,target=/tmp \ + /root/sysroot.bash $ARCH + +FROM sysroot AS openssl +RUN --mount=type=bind,source=openssl.lst,target=/root/openssl.lst \ + --mount=type=bind,source=docker-clean,target=/etc/apt/apt.conf.d/docker-clean \ + --mount=type=cache,from=apt-cache,source=/var/lib/apt/lists,target=/var/lib/apt/lists \ + --mount=type=cache,from=apt-cache,source=/var/cache/apt,target=/var/cache/apt,sharing=private \ + --mount=type=tmpfs,target=/var/log \ + --mount=type=tmpfs,target=/tmp \ + apt-get install -y $(grep '^[^#]\+$' /root/openssl.lst) +RUN --mount=type=bind,source=openssl.bash,target=/root/openssl.bash \ + --mount=type=bind,source=openssl.patch,target=/root/openssl.patch \ + --mount=type=bind,from=sysroot,source=/opt/cross/sysroot,target=/opt/cross/sysroot \ + --mount=type=tmpfs,target=/tmp \ + /root/openssl.bash $ARCH + +FROM base +LABEL maintainer="Brad King " +RUN --mount=type=bind,from=openssl,source=/root,target=/root \ + tar xzf /root/openssl.tar.gz -C / diff --git a/Utilities/Release/sunos/docker/base.bash b/Utilities/Release/sunos/docker/base.bash new file mode 100755 index 0000000..0c707d0 --- /dev/null +++ b/Utilities/Release/sunos/docker/base.bash @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +set -e + +arch="$1" +readonly arch + +case "$arch" in + i386) + tarball="gcc-9.5.0-linux-x86_64-cross-sunos-i386.tar.xz" + sha256sum="3cd3c989483051e741dd9f39170842d22e5c43cd25628d2b0c57890a3f235883" + ;; + sparc) + tarball="gcc-9.5.0-linux-x86_64-cross-sunos-sparc.tar.xz" + sha256sum="853454ef4e787895786fdb21e56a3ba9c121ffe6116467a75f2c3eb09f3c88b4" + ;; + *) + echo >&2 "Unknown architecture: $arch" + exit 1 + ;; +esac +readonly tarball +readonly sha256sum + +cd /tmp + +curl -OL "https://gitlab.kitware.com/api/v4/projects/6955/packages/generic/gcc-solaris/v9.5.0-20250212.0/$tarball" +echo "$sha256sum $tarball" > gcc.sha256sum +sha256sum --check gcc.sha256sum + +tar xJf "$tarball" -C / diff --git a/Utilities/Release/sunos/docker/base.lst b/Utilities/Release/sunos/docker/base.lst new file mode 100644 index 0000000..6a9a3ec --- /dev/null +++ b/Utilities/Release/sunos/docker/base.lst @@ -0,0 +1,3 @@ +curl +git +xz-utils diff --git a/Utilities/Release/sunos/docker/docker-clean b/Utilities/Release/sunos/docker/docker-clean new file mode 100644 index 0000000..e69de29 diff --git a/Utilities/Release/sunos/docker/openssl.bash b/Utilities/Release/sunos/docker/openssl.bash new file mode 100755 index 0000000..86f9ad8 --- /dev/null +++ b/Utilities/Release/sunos/docker/openssl.bash @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +set -e + +arch="$1" +readonly arch + +case "$arch" in + i386) + target=i386-pc-solaris2.10 + openssl_target=solaris-x86-gcc + ldlibs= + ;; + sparc) + target=sparc-sun-solaris2.10 + openssl_target=solaris-sparcv8-gcc + ldlibs=-latomic + ;; + *) + echo >&2 "Unknown architecture: $arch" + exit 1 + ;; +esac +readonly target +readonly openssl_target +readonly ldlibs + +readonly sha256sum="e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" +readonly filename="openssl-3.4.0" +readonly tarball="$filename.tar.gz" + +cd /tmp + +curl -OL "https://github.com/openssl/openssl/releases/download/$filename/$tarball" +echo "$sha256sum $tarball" > openssl.sha256sum +sha256sum --check openssl.sha256sum + +tar xzf "$tarball" + +prefix="/opt/cross/openssl/$target" +cd "$filename" +patch -p0 < "${BASH_SOURCE%/*}/openssl.patch" +env \ + LDLIBS="$ldlibs" \ + LDFLAGS="-Wl,-z,noexecstack" \ + ./Configure \ + --prefix="$prefix" \ + --cross-compile-prefix="/opt/cross/bin/$target-" \ + --api=1.1.1 \ + "$openssl_target" \ + no-deprecated \ + no-shared +if ! make -j $(nproc) >make.log 2>&1; then + tail -1000 make.log + exit 1 +fi +if ! make install_sw >>make.log 2>&1; then + tail -1000 make.log + exit 1 +fi + +tar czf /root/openssl.tar.gz -C / "$prefix" diff --git a/Utilities/Release/sunos/docker/openssl.lst b/Utilities/Release/sunos/docker/openssl.lst new file mode 100644 index 0000000..96fd60f --- /dev/null +++ b/Utilities/Release/sunos/docker/openssl.lst @@ -0,0 +1,4 @@ +m4 +make +patch +perl diff --git a/Utilities/Release/sunos/docker/openssl.patch b/Utilities/Release/sunos/docker/openssl.patch new file mode 100644 index 0000000..98f8362 --- /dev/null +++ b/Utilities/Release/sunos/docker/openssl.patch @@ -0,0 +1,22 @@ +--- crypto/sleep.orig ++++ crypto/sleep.c +@@ -10,6 +10,8 @@ + #include + #include "internal/e_os.h" + ++#define OPENSSL_USE_USLEEP ++ + /* system-specific variants defining OSSL_sleep() */ + #if defined(OPENSSL_SYS_UNIX) || defined(__DJGPP__) + +--- providers/implementations/rands/seeding/rand_unix.c.orig ++++ providers/implementations/rands/seeding/rand_unix.c +@@ -84,8 +84,6 @@ + # define OSSL_POSIX_TIMER_OKAY + # endif + # endif +-# else +-# define OSSL_POSIX_TIMER_OKAY + # endif + # endif + #endif /* (defined(OPENSSL_SYS_UNIX) && !defined(OPENSSL_SYS_VXWORKS)) diff --git a/Utilities/Release/sunos/docker/sysroot.bash b/Utilities/Release/sunos/docker/sysroot.bash new file mode 100755 index 0000000..87ec01e --- /dev/null +++ b/Utilities/Release/sunos/docker/sysroot.bash @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +set -e + +arch="$1" +readonly arch + +case "$arch" in + i386) + tarball="sysroot-i386-pc-solaris2.10-sunos5.10-1.tar.xz" + sha256sum="1b9251699f4e412ba5b0fde9c0fb96ceef6b8a1f47f0c1f2146ba0ba9da458b8" + ;; + sparc) + tarball="sysroot-sparc-sun-solaris2.10-sunos5.10-1.tar.xz" + sha256sum="e6c668a63dc00de443d07cbe2be779335642ffe1b818ba85d23ab543982aaf23" + ;; + *) + echo >&2 "Unknown architecture: $arch" + exit 1 + ;; +esac +# To build externally, provide a Solaris sysroot tarball: +# --build-arg SYSROOT_URL=... +# --build-arg SYSROOT_SHA256SUM=... +# The tarball must contain one of: +# sysroot/i386-pc-solaris2.10/{lib,usr/lib,usr/include} +# sysroot/sparc-sun-solaris2.10/{lib,usr/lib,usr/include} +# The content may be retrieved from a real Solaris host. +if test -n "$SYSROOT_URL"; then + url="$SYSROOT_URL" + if test -n "$SYSROOT_SHA256SUM"; then + sha256sum="$SYSROOT_SHA256SUM" + else + sha256sum="" + fi + tarball=$(basename "$url") +else + # This URL is only visible inside of Kitware's network. + url="https://cmake.org/files/dependencies/internal/sunos/$tarball" +fi +readonly url +readonly tarball +readonly sha256sum + +cd /tmp + +curl -OL "$url" +if test -n "$sha256sum"; then + echo "$sha256sum $tarball" > sysroot.sha256sum + sha256sum --check sysroot.sha256sum +fi + +tar xf "$tarball" -C /opt/cross diff --git a/Utilities/Release/sunos/i386/cache.txt b/Utilities/Release/sunos/i386/cache.txt new file mode 100644 index 0000000..6bb2c27 --- /dev/null +++ b/Utilities/Release/sunos/i386/cache.txt @@ -0,0 +1,25 @@ +CMAKE_BUILD_TYPE:STRING=Release + +# Link C++ library statically. +CMAKE_EXE_LINKER_FLAGS:STRING=-static-libstdc++ -static-libgcc -Wl,-z,noexecstack + +# Enable ssl support in curl +CMAKE_USE_OPENSSL:BOOL=ON +OPENSSL_USE_STATIC_LIBS:BOOL=ON +OpenSSL_ROOT:PATH=/opt/cross/openssl/i386-pc-solaris2.10 + +# Enable ccmake +BUILD_CursesDialog:BOOL=ON + +# Disable cmake-gui +BUILD_QtDialog:BOOL=OFF + +# Disable tests. +BUILD_TESTING:BOOL=OFF +CMake_TEST_INSTALL:BOOL=OFF + +# Disable unnecessary dependency. +CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON + +# CPack package file name component for this platform. +CPACK_SYSTEM_NAME:STRING=sunos-i386 diff --git a/Utilities/Release/sunos/i386/toolchain.cmake b/Utilities/Release/sunos/i386/toolchain.cmake new file mode 100644 index 0000000..59ce6b5 --- /dev/null +++ b/Utilities/Release/sunos/i386/toolchain.cmake @@ -0,0 +1,6 @@ +set(CMAKE_SYSTEM_NAME SunOS) +set(CMAKE_SYSTEM_VERSION 5.10) +set(CMAKE_SYSTEM_PROCESSOR i386) +set(CMAKE_SYSROOT /opt/cross/sysroot/i386-pc-solaris2.10) +set(CMAKE_C_COMPILER /opt/cross/bin/i386-pc-solaris2.10-gcc) +set(CMAKE_CXX_COMPILER /opt/cross/bin/i386-pc-solaris2.10-g++) diff --git a/Utilities/Release/sunos/sparc/cache.txt b/Utilities/Release/sunos/sparc/cache.txt new file mode 100644 index 0000000..eb12c14 --- /dev/null +++ b/Utilities/Release/sunos/sparc/cache.txt @@ -0,0 +1,26 @@ +CMAKE_BUILD_TYPE:STRING=Release + +# Link C++ library statically. +CMAKE_EXE_LINKER_FLAGS:STRING=-static-libstdc++ -static-libgcc -Wl,-z,noexecstack + +# Enable ssl support in curl +CMAKE_USE_OPENSSL:BOOL=ON +OPENSSL_USE_STATIC_LIBS:BOOL=ON +OpenSSL_ROOT:PATH=/opt/cross/openssl/sparc-sun-solaris2.10 +_OPENSSL_STATIC_LIBRARIES:STRING=/opt/cross/sparc-sun-solaris2.10/lib/libatomic.a + +# Enable ccmake +BUILD_CursesDialog:BOOL=ON + +# Disable cmake-gui +BUILD_QtDialog:BOOL=OFF + +# Disable tests. +BUILD_TESTING:BOOL=OFF +CMake_TEST_INSTALL:BOOL=OFF + +# Disable unnecessary dependency. +CMAKE_SKIP_INSTALL_ALL_DEPENDENCY:BOOL=ON + +# CPack package file name component for this platform. +CPACK_SYSTEM_NAME:STRING=sunos-sparc diff --git a/Utilities/Release/sunos/sparc/toolchain.cmake b/Utilities/Release/sunos/sparc/toolchain.cmake new file mode 100644 index 0000000..789df8d --- /dev/null +++ b/Utilities/Release/sunos/sparc/toolchain.cmake @@ -0,0 +1,6 @@ +set(CMAKE_SYSTEM_NAME SunOS) +set(CMAKE_SYSTEM_VERSION 5.10) +set(CMAKE_SYSTEM_PROCESSOR sparc) +set(CMAKE_SYSROOT /opt/cross/sysroot/sparc-sun-solaris2.10) +set(CMAKE_C_COMPILER /opt/cross/bin/sparc-sun-solaris2.10-gcc) +set(CMAKE_CXX_COMPILER /opt/cross/bin/sparc-sun-solaris2.10-g++) -- cgit v0.12 From 28f1da4b251f9bab977d1a1af3625d3f4906f5a3 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 13 Feb 2025 14:09:05 -0500 Subject: ci: Add jobs to build sunos-{i386,sparc} binaries --- .gitlab-ci.yml | 40 +++++++++++++++++++++ .gitlab/artifacts.yml | 2 ++ .gitlab/os-linux.yml | 45 ++++++++++++++++++++++++ Help/release/4.0.rst | 5 +++ Tests/RunCMake/CMakeRelease/FileTable-stdout.txt | 6 ++++ Tests/RunCMake/CMakeRelease/FileTable.cmake | 1 + Utilities/Release/files-v1.json.in | 24 +++++++++++++ Utilities/Release/files-v1.rst | 4 +++ 8 files changed, 127 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 82d0968..c8c5bfd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -830,6 +830,46 @@ u:linux-aarch64-package: needs: - b:linux-aarch64-package +b:sunos-i386-package: + extends: + - .sunos_package + - .sunos_release_i386 + - .cmake_build_sunos_release + - .cmake_release_artifacts + - .linux_x86_64_tags + - .run_only_for_package + needs: + - p:doc-package + variables: + CMAKE_CI_ARTIFACTS_NAME: "artifacts-sunos-i386" + +u:sunos-i386-package: + extends: + - .rsync_upload_package + - .run_only_for_package + needs: + - b:sunos-i386-package + +b:sunos-sparc-package: + extends: + - .sunos_package + - .sunos_release_sparc + - .cmake_build_sunos_release + - .cmake_release_artifacts + - .linux_x86_64_tags + - .run_only_for_package + needs: + - p:doc-package + variables: + CMAKE_CI_ARTIFACTS_NAME: "artifacts-sunos-sparc" + +u:sunos-sparc-package: + extends: + - .rsync_upload_package + - .run_only_for_package + needs: + - b:sunos-sparc-package + ## Sanitizer builds b:fedora41-asan: diff --git a/.gitlab/artifacts.yml b/.gitlab/artifacts.yml index 95a0a26..0750634 100644 --- a/.gitlab/artifacts.yml +++ b/.gitlab/artifacts.yml @@ -78,6 +78,8 @@ - ${CMAKE_CI_BUILD_DIR}/cmake-*-linux-x86_64.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-linux-aarch64.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-macos*-universal.* + - ${CMAKE_CI_BUILD_DIR}/cmake-*-sunos-i386.* + - ${CMAKE_CI_BUILD_DIR}/cmake-*-sunos-sparc.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-x86_64.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-i386.* - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-arm64.* diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index 461b34e..93223bb 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -30,6 +30,24 @@ variables: BOOTSTRAP_ARGS: '-- "-DCMake_DOC_ARTIFACT_PREFIX=$CI_PROJECT_DIR/build/install-doc"' +.sunos_release_i386: + image: "kitware/cmake:build-sunos-i386-deps-2025-02-14" + + variables: + GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" + CMAKE_ARCH: i386 + +.sunos_release_sparc: + image: "kitware/cmake:build-sunos-sparc-deps-2025-02-14" + + variables: + GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci" + CMAKE_ARCH: sparc + +.sunos_package: + variables: + CMake_DOC_ARTIFACT_PREFIX: "$CI_PROJECT_DIR/build/install-doc" + .needs_centos7_x86_64: needs: - b:centos7-x86_64 @@ -741,6 +759,33 @@ variables: CMAKE_CI_JOB_NIGHTLY: "true" +.cmake_build_sunos_release: + stage: build + + script: + - *before_script_linux + # SunOS sysroot + - Utilities/Release/sunos/docker/sysroot.bash $CMAKE_ARCH + # Initial cache + - mkdir -p build/ + - cp Utilities/Release/sunos/$CMAKE_ARCH/cache.txt build/CMakeCache.txt + # Make sccache available. + - source .gitlab/ci/sccache-env.sh + - echo "CMAKE_C_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt + - echo "CMAKE_CXX_COMPILER_LAUNCHER:STRING=sccache" >> build/CMakeCache.txt + # Build + - cd build/ + - cmake .. -GNinja + -DCMAKE_DOC_DIR=doc/cmake + -DCMake_DOC_ARTIFACT_PREFIX="$CMake_DOC_ARTIFACT_PREFIX" + -DCMAKE_TOOLCHAIN_FILE="$CI_PROJECT_DIR/Utilities/Release/sunos/$CMAKE_ARCH/toolchain.cmake" + - ninja + # Package + - cpack -G "TGZ;STGZ" + - sccache --show-stats + + interruptible: true + ### Documentation .cmake_org_help: diff --git a/Help/release/4.0.rst b/Help/release/4.0.rst index b1102d5..0228402 100644 --- a/Help/release/4.0.rst +++ b/Help/release/4.0.rst @@ -236,3 +236,8 @@ Other Changes now only shown when the message log level is set to ``VERBOSE``, ``DEBUG``, or ``TRACE`` via the :option:`cmake --log-level` option or the :variable:`CMAKE_MESSAGE_LOG_LEVEL` cache variable. + +* Precompiled SunOS ``sparc`` and ``i386`` binaries are now provided + on `cmake.org`_. + +.. _`cmake.org`: https://cmake.org/download/ diff --git a/Tests/RunCMake/CMakeRelease/FileTable-stdout.txt b/Tests/RunCMake/CMakeRelease/FileTable-stdout.txt index 2960eeb..b8e2639 100644 --- a/Tests/RunCMake/CMakeRelease/FileTable-stdout.txt +++ b/Tests/RunCMake/CMakeRelease/FileTable-stdout.txt @@ -13,6 +13,10 @@ "cmake-@version@-macos-universal\.tar\.gz" "cmake-@version@-macos10\.10-universal\.dmg" "cmake-@version@-macos10\.10-universal\.tar\.gz" +"cmake-@version@-sunos-i386\.sh" +"cmake-@version@-sunos-i386\.tar\.gz" +"cmake-@version@-sunos-sparc\.sh" +"cmake-@version@-sunos-sparc\.tar\.gz" "cmake-@version@-windows-i386\.msi" "cmake-@version@-windows-i386\.zip" "cmake-@version@-windows-x86_64\.msi" @@ -28,6 +32,8 @@ "cmake-@version@-macos-universal\.dmg" -- query: \.files\[\] \| select\(\(\.os\[\] \| \. == "macos10\.10"\) and \(\.class == "archive"\)\) \| \.name "cmake-@version@-macos10\.10-universal\.tar\.gz" +-- query: \.files\[\] \| select\(\(\.os\[\] \| \. == "sunos"\) and \(\.architecture\[\] \| \. == "sparc"\) and \(\.class == "archive"\)\) \| \.name +"cmake-@version@-sunos-sparc\.tar\.gz" -- query: \.files\[\] \| select\(\(\.os\[\] \| \. == "windows"\) and \(\.architecture\[\] \| \. == "i386"\) and \(\.class == "installer"\)\) \| \.name "cmake-@version@-windows-i386\.msi" -- query: \.files\[\] \| select\(\.architecture\[\] \| \. == "x86_64"\) \| \.name diff --git a/Tests/RunCMake/CMakeRelease/FileTable.cmake b/Tests/RunCMake/CMakeRelease/FileTable.cmake index f46535c..a579457 100644 --- a/Tests/RunCMake/CMakeRelease/FileTable.cmake +++ b/Tests/RunCMake/CMakeRelease/FileTable.cmake @@ -11,6 +11,7 @@ foreach(query ".files[] | select(.os[] | . == \"source\") | .name" ".files[] | select((.os[] | . == \"macOS\") and (.class == \"volume\")) | .name" ".files[] | select((.os[] | . == \"macos10.10\") and (.class == \"archive\")) | .name" + ".files[] | select((.os[] | . == \"sunos\") and (.architecture[] | . == \"sparc\") and (.class == \"archive\")) | .name" ".files[] | select((.os[] | . == \"windows\") and (.architecture[] | . == \"i386\") and (.class == \"installer\")) | .name" ".files[] | select(.architecture[] | . == \"x86_64\") | .name" ".files[] | select([.macOSmin] | inside([\"10.10\", \"10.11\", \"10.12\"])) | .name" diff --git a/Utilities/Release/files-v1.json.in b/Utilities/Release/files-v1.json.in index 2f860d2..05561c7 100644 --- a/Utilities/Release/files-v1.json.in +++ b/Utilities/Release/files-v1.json.in @@ -60,6 +60,30 @@ "macOSmin": "10.10" }, { + "os": ["sunos", "SunOS"], + "architecture": ["i386"], + "class": "installer", + "name": "cmake-@version@-sunos-i386.sh" + }, + { + "os": ["sunos", "SunOS"], + "architecture": ["i386"], + "class": "archive", + "name": "cmake-@version@-sunos-i386.tar.gz" + }, + { + "os": ["sunos", "SunOS"], + "architecture": ["sparc"], + "class": "installer", + "name": "cmake-@version@-sunos-sparc.sh" + }, + { + "os": ["sunos", "SunOS"], + "architecture": ["sparc"], + "class": "archive", + "name": "cmake-@version@-sunos-sparc.tar.gz" + }, + { "os": ["windows", "Windows"], "architecture": ["i386"], "class": "installer", diff --git a/Utilities/Release/files-v1.rst b/Utilities/Release/files-v1.rst index f0064e8..b8dbe6f 100644 --- a/Utilities/Release/files-v1.rst +++ b/Utilities/Release/files-v1.rst @@ -70,6 +70,9 @@ The members are: ``Windows``, ``windows`` Windows packages. + ``SunOS``, ``sunos`` + SunOS packages. + ``architecture`` A JSON array of strings naming the architecture(s) for which the package file is built, possibly using multiple alternative spellings. @@ -79,6 +82,7 @@ The members are: On Windows, architecture names include ``x86_64``, ``i386``, and ``arm64``. On macOS, universal binary packages list all architectures, e.g. ``["arm64","x86_64"]``. + On SunOS, architecture names include ``i386`` and ``sparc``. ``class`` A JSON string naming the class of package. The value is one of: -- cgit v0.12