summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Boeckel <ben.boeckel@kitware.com>2020-09-15 09:34:21 -0400
committerBen Boeckel <ben.boeckel@kitware.com>2020-09-16 14:03:31 -0400
commit8ff3ce730d7a7c89c719caeac4ba7970f35565df (patch)
tree6c4a3bc35a00330ffde243ab1e26c10d9cfdec20
parent7d4ec05c6f5b4d7f2b27ded68003eab2d0126199 (diff)
downloadcmake-8ff3ce730d7a7c89c719caeac4ba7970f35565df.tar.gz
gitlab-ci: add a job to make macOS packages
-rw-r--r--.gitlab-ci.yml13
-rw-r--r--.gitlab/artifacts.yml1
-rw-r--r--.gitlab/ci/configure_macos_package.cmake24
-rw-r--r--.gitlab/os-macos.yml35
4 files changed, 73 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5e7b20451f..b2a83cbfc5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -11,6 +11,7 @@ include:
stages:
- build
- test
+ - package
- test-ext
################################################################################
@@ -175,6 +176,18 @@ test:macos-xcode:
needs:
- test:macos-ninja
+package:macos:
+ extends:
+ - .macos_package
+ - .cmake_build_macos_package
+ - .cmake_release_artifacts
+ - .macos_builder_tags_package
+ - .run_only_for_package
+ dependencies:
+ - build:fedora31-sphinx-package
+ needs:
+ - build:fedora31-sphinx-package
+
# Windows builds
build:windows-vs2019-x64-ninja:
diff --git a/.gitlab/artifacts.yml b/.gitlab/artifacts.yml
index fb33ca7e59..2eadcb13b7 100644
--- a/.gitlab/artifacts.yml
+++ b/.gitlab/artifacts.yml
@@ -72,6 +72,7 @@
paths:
# Any packages made.
- build/cmake-*-Linux-x86_64.*
+ - build/cmake-*-Darwin-x86_64.*
.cmake_test_artifacts:
artifacts:
diff --git a/.gitlab/ci/configure_macos_package.cmake b/.gitlab/ci/configure_macos_package.cmake
new file mode 100644
index 0000000000..424bc2b70f
--- /dev/null
+++ b/.gitlab/ci/configure_macos_package.cmake
@@ -0,0 +1,24 @@
+set(CMake_DOC_ARTIFACT_PREFIX "$ENV{CI_PROJECT_DIR}/build/install-doc" CACHE PATH "")
+
+# Set up install destinations as expected by the packaging scripts.
+set(CMAKE_INSTALL_PREFIX "/" CACHE PATH "")
+set(CMAKE_DOC_DIR "doc/cmake" CACHE STRING "")
+
+# Settings for CMake packages for macOS.
+set(CPACK_DMG_FORMAT "UDBZ" CACHE STRING "")
+set(CMAKE_CXX_FLAGS "-stdlib=libc++" CACHE STRING "")
+set(CMAKE_C_STANDARD "11" CACHE STRING "")
+set(CMAKE_CXX_STANDARD "14" CACHE STRING "")
+set(CMAKE_OSX_ARCHITECTURES "x86_64" CACHE STRING "")
+set(CMAKE_OSX_DEPLOYMENT_TARGET "10.7" CACHE STRING "")
+set(CMAKE_SKIP_BOOTSTRAP_TEST "TRUE" CACHE STRING "")
+set(CPACK_SYSTEM_NAME "Darwin-x86_64" CACHE STRING "")
+set(BUILD_CursesDialog "ON" CACHE BOOL "")
+set(BUILD_QtDialog "TRUE" CACHE BOOL "")
+set(CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL "3" CACHE STRING "")
+set(CMake_INSTALL_DEPENDENCIES "ON" CACHE BOOL "")
+set(CMAKE_SKIP_RPATH "TRUE" CACHE BOOL "")
+set(CMake_TEST_NO_FindPackageModeMakefileTest "TRUE" CACHE BOOL "")
+
+include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")
diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml
index 9d123ecab2..de1093d45a 100644
--- a/.gitlab/os-macos.yml
+++ b/.gitlab/os-macos.yml
@@ -37,6 +37,14 @@
CTEST_NO_WARNINGS_ALLOWED: 1
CMAKE_GENERATOR: "Unix Makefiles"
+.macos_package:
+ extends: .macos_build
+
+ variables:
+ CMAKE_CONFIGURATION: macos_package
+ CTEST_NO_WARNINGS_ALLOWED: 1
+ CMake_SKIP_INSTALL: 1
+
### External testing
.macos_xcode:
@@ -56,6 +64,15 @@
- xcode-11.5
- nonconcurrent
+.macos_builder_tags_package:
+ tags:
+ - cmake # Since this is a bare runner, pin to a project.
+ - macos
+ - shell
+ - xcode-11.5
+ - nonconcurrent
+ - finder
+
.macos_builder_ext_tags:
tags:
- cmake # Since this is a bare runner, pin to a project.
@@ -91,6 +108,24 @@
interruptible: true
+.cmake_build_macos_package:
+ stage: package
+
+ script:
+ - *before_script_macos
+ - .gitlab/ci/sccache.sh
+ # Allow the server to already be running.
+ - "sccache --start-server || :"
+ - sccache --show-stats
+ - ctest -VV -S .gitlab/ci/ctest_configure.cmake
+ - ctest -VV -S .gitlab/ci/ctest_build.cmake
+ - sccache --show-stats
+ - cd build
+ - cpack -G TGZ
+ - cpack -G DragNDrop
+
+ interruptible: true
+
.cmake_test_macos:
stage: test