From 59b0ae6b244d2def6a3cdd8bb96868b3b2c74ccb Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Tue, 12 Sep 2023 09:25:47 -0400 Subject: Tests: Update tests to run in symlinked tree --- Tests/CMakeGUI/CMakeGUITest.cmake | 11 +++++++ Tests/RunCMake/CMakeLists.txt | 2 ++ Tests/RunCMake/CMakePresets/GoodNoSCache.cmake | 1 - Tests/RunCMake/DependencyGraph/RunCMakeTest.cmake | 6 +++- Tests/RunCMake/XcFramework/find-library.cmake | 3 +- Tests/RunCMake/file/REAL_PATH.cmake | 36 +++++++++++++---------- 6 files changed, 40 insertions(+), 19 deletions(-) diff --git a/Tests/CMakeGUI/CMakeGUITest.cmake b/Tests/CMakeGUI/CMakeGUITest.cmake index 2c6baf3..9e2c8cc 100644 --- a/Tests/CMakeGUI/CMakeGUITest.cmake +++ b/Tests/CMakeGUI/CMakeGUITest.cmake @@ -59,6 +59,12 @@ function(run_cmake_gui_test name) set(ENV{CMake_GUI_TEST_NAME} "${name}") set(ENV{CMake_GUI_CONFIG_DIR} "${_workdir}/config") + if(DEFINED ENV{PWD}) + set(_old_pwd "$ENV{PWD}") + else() + set(_old_pwd) + endif() + set(ENV{PWD} "${_workdir}") execute_process( COMMAND "${CMakeGUITest_COMMAND}" ${_rcgt_ARGS} WORKING_DIRECTORY "${_workdir}" @@ -66,6 +72,11 @@ function(run_cmake_gui_test name) OUTPUT_VARIABLE _output ERROR_VARIABLE _error ) + if(DEFINED _old_pwd) + set(ENV{PWD} "${_old_pwd}") + else() + set(ENV{PWD}) + endif() if(_result) set(_fail 1) string(REPLACE "\n" "\n " _formatted_output "${_output}") diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt index 2eccb2a..56952e2 100644 --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt @@ -643,8 +643,10 @@ else() message(STATUS "Could not find ctresalloc") endif() +get_filename_component(real_binary_dir "${CMake_BINARY_DIR}" REALPATH) if(NOT WIN32 AND NOT MSYS # FIXME: This works on CYGWIN but not on MSYS + AND real_binary_dir STREQUAL CMake_BINARY_DIR ) add_RunCMake_test(SymlinkTrees) endif () diff --git a/Tests/RunCMake/CMakePresets/GoodNoSCache.cmake b/Tests/RunCMake/CMakePresets/GoodNoSCache.cmake index d9e399f..df58e72 100644 --- a/Tests/RunCMake/CMakePresets/GoodNoSCache.cmake +++ b/Tests/RunCMake/CMakePresets/GoodNoSCache.cmake @@ -1,5 +1,4 @@ include(${CMAKE_CURRENT_LIST_DIR}/TestVariable.cmake) get_filename_component(_parent "${CMAKE_SOURCE_DIR}" DIRECTORY) -file(REAL_PATH "${_parent}" _parent) test_variable(CMAKE_BINARY_DIR "" "${_parent}/GoodNoSCachePrep-build") diff --git a/Tests/RunCMake/DependencyGraph/RunCMakeTest.cmake b/Tests/RunCMake/DependencyGraph/RunCMakeTest.cmake index 6847a23..f7959dc 100644 --- a/Tests/RunCMake/DependencyGraph/RunCMakeTest.cmake +++ b/Tests/RunCMake/DependencyGraph/RunCMakeTest.cmake @@ -1,7 +1,11 @@ include(RunCMake) function(check_files dir) - set(expected ${ARGN}) + set(expected) + foreach(i IN LISTS ARGN) + get_filename_component(real_path ${i} REALPATH) + list(APPEND expected ${real_path}) + endforeach() list(FILTER expected EXCLUDE REGEX "^$") list(REMOVE_DUPLICATES expected) list(SORT expected) diff --git a/Tests/RunCMake/XcFramework/find-library.cmake b/Tests/RunCMake/XcFramework/find-library.cmake index c5fe8db..1bc7672 100644 --- a/Tests/RunCMake/XcFramework/find-library.cmake +++ b/Tests/RunCMake/XcFramework/find-library.cmake @@ -1,5 +1,6 @@ find_library(MYLIB_XCFRAMEWORK mylib NO_DEFAULT_PATH PATHS "${CMAKE_BINARY_DIR}/../create-xcframework-framework-build") -file(REAL_PATH "${CMAKE_BINARY_DIR}/../create-xcframework-framework-build/mylib.xcframework" expected_path) +get_filename_component(bin_parent "${CMAKE_BINARY_DIR}" PATH) +set(expected_path "${bin_parent}/create-xcframework-framework-build/mylib.xcframework") if(NOT MYLIB_XCFRAMEWORK STREQUAL expected_path) message(FATAL_ERROR "Expected value of MYLIB_XCFRAMEWORK:\n ${expected_path}\nActual value:\n ${MYLIB_XCFRAMEWORK}") endif() diff --git a/Tests/RunCMake/file/REAL_PATH.cmake b/Tests/RunCMake/file/REAL_PATH.cmake index 08d400d..0485655 100644 --- a/Tests/RunCMake/file/REAL_PATH.cmake +++ b/Tests/RunCMake/file/REAL_PATH.cmake @@ -1,17 +1,19 @@ if (NOT WIN32 OR CYGWIN) + file(REAL_PATH "${CMAKE_CURRENT_BINARY_DIR}" real_binary_dir) + file(TOUCH "${CMAKE_CURRENT_BINARY_DIR}/test.txt") file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/test.sym") file(CREATE_LINK "test.txt" "${CMAKE_CURRENT_BINARY_DIR}/test.sym" SYMBOLIC) file(REAL_PATH "${CMAKE_CURRENT_BINARY_DIR}/test.sym" real_path) - if (NOT real_path STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/test.txt") - message(SEND_ERROR "real path is \"${real_path}\", should be \"${CMAKE_CURRENT_BINARY_DIR}/test.txt\"") + if (NOT real_path STREQUAL "${real_binary_dir}/test.txt") + message(SEND_ERROR "real path is \"${real_path}\", should be \"${real_binary_dir}/test.txt\"") endif() file(REAL_PATH "test.sym" real_path BASE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - if (NOT real_path STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/test.txt") - message(SEND_ERROR "real path is \"${real_path}\", should be \"${CMAKE_CURRENT_BINARY_DIR}/test.txt\"") + if (NOT real_path STREQUAL "${real_binary_dir}/test.txt") + message(SEND_ERROR "real path is \"${real_path}\", should be \"${real_binary_dir}/test.txt\"") endif() file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/dir/") @@ -21,33 +23,33 @@ if (NOT WIN32 OR CYGWIN) cmake_policy(SET CMP0152 NEW) file(REAL_PATH "${CMAKE_CURRENT_BINARY_DIR}/dir/bin/../" real_path) - if (NOT real_path STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/dir/nested") - message(SEND_ERROR "real path is \"${real_path}\", should be \"${CMAKE_CURRENT_BINARY_DIR}/dir/nested\"") + if (NOT real_path STREQUAL "${real_binary_dir}/dir/nested") + message(SEND_ERROR "real path is \"${real_path}\", should be \"${real_binary_dir}/dir/nested\"") endif() file(REAL_PATH "${CMAKE_CURRENT_BINARY_DIR}/dir/bin/../bin" real_path) - if (NOT real_path STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/dir/nested/bin") - message(SEND_ERROR "real path is \"${real_path}\", should be \"${CMAKE_CURRENT_BINARY_DIR}/dir/nested/bin\"") + if (NOT real_path STREQUAL "${real_binary_dir}/dir/nested/bin") + message(SEND_ERROR "real path is \"${real_path}\", should be \"${real_binary_dir}/dir/nested/bin\"") endif() file(REAL_PATH "dir/bin/../bin" real_path BASE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}") - if (NOT real_path STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/dir/nested/bin") - message(SEND_ERROR "real path is \"${real_path}\", should be \"${CMAKE_CURRENT_BINARY_DIR}/dir/nested/bin\"") + if (NOT real_path STREQUAL "${real_binary_dir}/dir/nested/bin") + message(SEND_ERROR "real path is \"${real_path}\", should be \"${real_binary_dir}/dir/nested/bin\"") endif() file(REAL_PATH "../bin" real_path BASE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/dir/bin/" ) - if (NOT real_path STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/dir/nested/bin") - message(SEND_ERROR "real path is \"${real_path}\", should be \"${CMAKE_CURRENT_BINARY_DIR}/dir/nested/bin\"") + if (NOT real_path STREQUAL "${real_binary_dir}/dir/nested/bin") + message(SEND_ERROR "real path is \"${real_path}\", should be \"${real_binary_dir}/dir/nested/bin\"") endif() cmake_policy(SET CMP0152 OLD) file(REAL_PATH "${CMAKE_CURRENT_BINARY_DIR}/dir/bin/../" real_path) - if (NOT real_path STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/dir") - message(SEND_ERROR "real path is \"${real_path}\", should be \"${CMAKE_CURRENT_BINARY_DIR}/dir/nested\"") + if (NOT real_path STREQUAL "${real_binary_dir}/dir") + message(SEND_ERROR "real path is \"${real_path}\", should be \"${real_binary_dir}/dir/nested\"") endif() file(REAL_PATH "../" real_path BASE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/dir/bin/") - if (NOT real_path STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/dir") - message(SEND_ERROR "real path is \"${real_path}\", should be \"${CMAKE_CURRENT_BINARY_DIR}/dir\"") + if (NOT real_path STREQUAL "${real_binary_dir}/dir") + message(SEND_ERROR "real path is \"${real_path}\", should be \"${real_binary_dir}/dir\"") endif() endif() @@ -61,12 +63,14 @@ If (WIN32) else() set(HOME_DIR "$ENV{HOME}") endif() +file(REAL_PATH "${HOME_DIR}" HOME_DIR) file(REAL_PATH "~" real_path EXPAND_TILDE) if (NOT real_path STREQUAL "${HOME_DIR}") message(SEND_ERROR "real path is \"${real_path}\", should be \"${HOME_DIR}\"") endif() +file(TOUCH "${HOME_DIR}/test.txt") file(REAL_PATH "~/test.txt" real_path EXPAND_TILDE) if (NOT real_path STREQUAL "${HOME_DIR}/test.txt") message(SEND_ERROR "real path is \"${real_path}\", should be \"${HOME_DIR}/test.txt\"") -- cgit v0.12 From a7534c31e6f9309ec2a2418d8b6c167bf1be150d Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Tue, 19 Sep 2023 09:49:19 -0400 Subject: Tests: Update tests to run in multi-config generators --- Tests/CMakeLists.txt | 4 ++++ Tests/FindGLUT/CMakeLists.txt | 2 +- Tests/FindGSL/CMakeLists.txt | 2 +- Tests/FindOpenSSL/CMakeLists.txt | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 7a71c0a..cd9cc17 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -142,6 +142,10 @@ if(BUILD_TESTING) ) endif() + if(_isMultiConfig) + set(test_options -C Debug) + endif() + # Look for git to use for tests. find_program(GIT_EXECUTABLE NAMES git) diff --git a/Tests/FindGLUT/CMakeLists.txt b/Tests/FindGLUT/CMakeLists.txt index e75ec40..fc9ed08 100644 --- a/Tests/FindGLUT/CMakeLists.txt +++ b/Tests/FindGLUT/CMakeLists.txt @@ -5,5 +5,5 @@ add_test(NAME FindGLUT.Test COMMAND ${CMAKE_CTEST_COMMAND} ${build_generator_args} --build-project TestFindGLUT --build-options ${build_options} - --test-command ${CMAKE_CTEST_COMMAND} -V + --test-command ${CMAKE_CTEST_COMMAND} -V ${test_options} ) diff --git a/Tests/FindGSL/CMakeLists.txt b/Tests/FindGSL/CMakeLists.txt index 45a3471..594a34e 100644 --- a/Tests/FindGSL/CMakeLists.txt +++ b/Tests/FindGSL/CMakeLists.txt @@ -5,5 +5,5 @@ add_test(NAME FindGSL.rng COMMAND ${CMAKE_CTEST_COMMAND} ${build_generator_args} --build-project FindGSL_rng --build-options ${build_options} - --test-command ${CMAKE_CTEST_COMMAND} -V + --test-command ${CMAKE_CTEST_COMMAND} -V ${test_options} ) diff --git a/Tests/FindOpenSSL/CMakeLists.txt b/Tests/FindOpenSSL/CMakeLists.txt index 66b3fb2..9a7a61c 100644 --- a/Tests/FindOpenSSL/CMakeLists.txt +++ b/Tests/FindOpenSSL/CMakeLists.txt @@ -5,5 +5,5 @@ add_test(NAME FindOpenSSL.rand COMMAND ${CMAKE_CTEST_COMMAND} ${build_generator_args} --build-project FindOpenSSL_rand --build-options ${build_options} - --test-command ${CMAKE_CTEST_COMMAND} -V + --test-command ${CMAKE_CTEST_COMMAND} -V ${test_options} ) -- cgit v0.12 From 25d7843955381e79705457b8ff030acc2625d4e1 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Thu, 21 Sep 2023 14:07:38 -0400 Subject: ci: Factor out build directory for finding artifacts Some jobs will run in a build directory other than $CI_PROJECT_DIR/build, and will produce artifacts in a different directory. Add a variable specifying where to find the artifacts, and set it to build/ by default. --- .gitlab-ci.yml | 4 ++ .gitlab/artifacts.yml | 122 +++++++++++++++++++++++++------------------------- 2 files changed, 65 insertions(+), 61 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a214b06..eb1be76 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,6 +18,10 @@ stages: - test-ext - upload +variables: + # Some jobs that place their artifacts in a different directory will override this. + CMAKE_CI_BUILD_DIR: build + ################################################################################ # Job declarations # diff --git a/.gitlab/artifacts.yml b/.gitlab/artifacts.yml index 6c4cc0d..d9943b8 100644 --- a/.gitlab/artifacts.yml +++ b/.gitlab/artifacts.yml @@ -5,63 +5,63 @@ expire_in: 1d paths: # Test specifications. - - build/**/CTestTestfile.cmake + - ${CMAKE_CI_BUILD_DIR}/**/CTestTestfile.cmake # Allow CMake to find CMAKE_ROOT. - - build/CMakeFiles/CMakeSourceDir.txt + - ${CMAKE_CI_BUILD_DIR}/CMakeFiles/CMakeSourceDir.txt # Take the install tree. - - build/install/ + - ${CMAKE_CI_BUILD_DIR}/install/ # We need the main binaries. - - build/bin/ + - ${CMAKE_CI_BUILD_DIR}/bin/ # The cache is needed for the installation test. - - build/CMakeCache.txt + - ${CMAKE_CI_BUILD_DIR}/CMakeCache.txt # Test binaries. Eventually these might be better under # `Source/Tests` or the like. - - build/Tests/EnforceConfig.cmake - - build/Tests/CMakeBuildTest.cmake - - build/Tests/CMakeBuildDoubleProjectTest.cmake - - build/Tests/CMake*/runcompilecommands - - build/Tests/CMake*/runcompilecommands.exe - - build/Tests/CMake*/test* - - build/Tests/CMake*/PseudoMemcheck/valgrind - - build/Tests/CMake*/PseudoMemcheck/purify - - build/Tests/CMake*/PseudoMemcheck/memcheck_fail - - build/Tests/CMake*/PseudoMemcheck/BC - - build/Tests/CMake*/PseudoMemcheck/cuda-memcheck - - build/Tests/CMake*/PseudoMemcheck/valgrind.exe - - build/Tests/CMake*/PseudoMemcheck/purify.exe - - build/Tests/CMake*/PseudoMemcheck/memcheck_fail.exe - - build/Tests/CMake*/PseudoMemcheck/BC.exe - - build/Tests/CMake*/PseudoMemcheck/cuda-memcheck.exe - - build/Tests/CMake*/PseudoMemcheck/NoLog - - build/Tests/CMake*Lib/*LibTests - - build/Tests/CMake*Lib/*LibTests.exe - - build/Source/kwsys/cmsysTest* - - build/Source/kwsys/testConsoleBufChild.exe - - build/Utilities/cmcurl/curltest - - build/Utilities/cmcurl/curltest.exe - - build/Utilities/KWIML/test/kwiml_test - - build/Utilities/KWIML/test/kwiml_test.exe - - build/Source/kwsys/*cmsysTestDynload.* - - build/Source/kwsys/dynloaddir/cmsysTestDynloadImpl.dll - - build/Source/kwsys/dynloaddir/cmsysTestDynloadUse.dll + - ${CMAKE_CI_BUILD_DIR}/Tests/EnforceConfig.cmake + - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeBuildTest.cmake + - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeBuildDoubleProjectTest.cmake + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/runcompilecommands + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/runcompilecommands.exe + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/test* + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/valgrind + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/purify + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/memcheck_fail + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/BC + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/cuda-memcheck + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/valgrind.exe + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/purify.exe + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/memcheck_fail.exe + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/BC.exe + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/cuda-memcheck.exe + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*/PseudoMemcheck/NoLog + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*Lib/*LibTests + - ${CMAKE_CI_BUILD_DIR}/Tests/CMake*Lib/*LibTests.exe + - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/cmsysTest* + - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/testConsoleBufChild.exe + - ${CMAKE_CI_BUILD_DIR}/Utilities/cmcurl/curltest + - ${CMAKE_CI_BUILD_DIR}/Utilities/cmcurl/curltest.exe + - ${CMAKE_CI_BUILD_DIR}/Utilities/KWIML/test/kwiml_test + - ${CMAKE_CI_BUILD_DIR}/Utilities/KWIML/test/kwiml_test.exe + - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/*cmsysTestDynload.* + - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/dynloaddir/cmsysTestDynloadImpl.dll + - ${CMAKE_CI_BUILD_DIR}/Source/kwsys/dynloaddir/cmsysTestDynloadUse.dll # Test directories. - - build/Tests/CTest* - - build/Tests/Find* - - build/Tests/Qt* - - build/Tests/RunCMake/ - - build/Tests/CMakeOnly/ - - build/Tests/CMakeTests/ - - build/Tests/CMakeGUI/ - - build/Tests/FortranC/ + - ${CMAKE_CI_BUILD_DIR}/Tests/CTest* + - ${CMAKE_CI_BUILD_DIR}/Tests/Find* + - ${CMAKE_CI_BUILD_DIR}/Tests/Qt* + - ${CMAKE_CI_BUILD_DIR}/Tests/RunCMake/ + - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeOnly/ + - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeTests/ + - ${CMAKE_CI_BUILD_DIR}/Tests/CMakeGUI/ + - ${CMAKE_CI_BUILD_DIR}/Tests/FortranC/ # CTest/CDash information. - - build/Testing/ - - build/DartConfiguation.tcl - - build/CTestCustom.cmake + - ${CMAKE_CI_BUILD_DIR}/Testing/ + - ${CMAKE_CI_BUILD_DIR}/DartConfiguation.tcl + - ${CMAKE_CI_BUILD_DIR}/CTestCustom.cmake .cmake_release_artifacts: artifacts: @@ -71,17 +71,17 @@ when: always paths: # Any packages made. - - build/cmake-*-linux-x86_64.* - - build/cmake-*-linux-aarch64.* - - build/cmake-*-macos*-universal.* - - build/cmake-*-windows-x86_64.* - - build/cmake-*-windows-i386.* - - build/cmake-*-windows-arm64.* + - ${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-*-windows-x86_64.* + - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-i386.* + - ${CMAKE_CI_BUILD_DIR}/cmake-*-windows-arm64.* # Any source packages made. - - build/cmake-*.tar.gz - - build/cmake-*.zip + - ${CMAKE_CI_BUILD_DIR}/cmake-*.tar.gz + - ${CMAKE_CI_BUILD_DIR}/cmake-*.zip # Any unsigned packages made. - - build/unsigned/cmake-* + - ${CMAKE_CI_BUILD_DIR}/unsigned/cmake-* .cmake_junit_artifacts: artifacts: @@ -89,7 +89,7 @@ when: always reports: junit: - - build/junit.xml + - ${CMAKE_CI_BUILD_DIR}/junit.xml .cmake_sphinx_artifacts: artifacts: @@ -97,8 +97,8 @@ when: always paths: # Take the sphinx logs. - - build/build-*.log - - build/linkcheck/output.* + - ${CMAKE_CI_BUILD_DIR}/build-*.log + - ${CMAKE_CI_BUILD_DIR}/linkcheck/output.* .cmake_test_artifacts: artifacts: @@ -107,22 +107,22 @@ when: always reports: junit: - - build/junit.xml + - ${CMAKE_CI_BUILD_DIR}/junit.xml paths: # Take the install tree. - - build/install/ + - ${CMAKE_CI_BUILD_DIR}/install/ .cmake_doc_artifacts: artifacts: expire_in: 1d paths: # Take the install tree. - - build/install-doc/ + - ${CMAKE_CI_BUILD_DIR}/install-doc/ .cmake_org_help_artifacts: artifacts: expire_in: 1d paths: - - build/html + - ${CMAKE_CI_BUILD_DIR}/html exclude: - - build/html/.buildinfo + - ${CMAKE_CI_BUILD_DIR}/html/.buildinfo -- cgit v0.12 From 8340313916e16d52997f231ea33cfa02acf16b68 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Thu, 21 Sep 2023 15:47:06 -0400 Subject: ci: Factor out debian12_ninja configure script --- .gitlab/ci/configure_debian12_ninja.cmake | 110 +---------------------- .gitlab/ci/configure_debian12_ninja_common.cmake | 109 ++++++++++++++++++++++ .gitlab/ci/env_debian12_ninja.sh | 8 +- .gitlab/ci/swift-env.sh | 7 ++ 4 files changed, 118 insertions(+), 116 deletions(-) create mode 100644 .gitlab/ci/configure_debian12_ninja_common.cmake create mode 100644 .gitlab/ci/swift-env.sh diff --git a/.gitlab/ci/configure_debian12_ninja.cmake b/.gitlab/ci/configure_debian12_ninja.cmake index f70e3d5..89c1108 100644 --- a/.gitlab/ci/configure_debian12_ninja.cmake +++ b/.gitlab/ci/configure_debian12_ninja.cmake @@ -1,110 +1,2 @@ -set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "") -set(CMake_TEST_CTestUpdate_CVS "ON" CACHE BOOL "") -set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "") -set(CMake_TEST_CTestUpdate_HG "ON" CACHE BOOL "") -set(CMake_TEST_CTestUpdate_SVN "ON" CACHE BOOL "") -if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") - set(CMake_TEST_CTestUpdate_P4 "ON" CACHE BOOL "") -endif() - -set(CMake_TEST_FindALSA "ON" CACHE BOOL "") -set(CMake_TEST_FindBLAS "All;static=1;Generic" CACHE STRING "") -set(CMake_TEST_FindBoost "ON" CACHE BOOL "") -set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "") -set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "") -set(CMake_TEST_FindCups "ON" CACHE BOOL "") -set(CMake_TEST_FindCURL "ON" CACHE BOOL "") -set(CMake_TEST_FindDevIL "ON" CACHE BOOL "") -set(CMake_TEST_FindDoxygen_Dot "ON" CACHE BOOL "") -set(CMake_TEST_FindDoxygen "ON" CACHE BOOL "") -set(CMake_TEST_FindEXPAT "ON" CACHE BOOL "") -set(CMake_TEST_FindFontconfig "ON" CACHE BOOL "") -set(CMake_TEST_FindFreetype "ON" CACHE BOOL "") -set(CMake_TEST_FindGDAL "ON" CACHE BOOL "") -set(CMake_TEST_FindGIF "ON" CACHE BOOL "") -set(CMake_TEST_FindGit "ON" CACHE BOOL "") -set(CMake_TEST_FindGLEW "ON" CACHE BOOL "") -set(CMake_TEST_FindGLUT "ON" CACHE BOOL "") -set(CMake_TEST_FindGnuTLS "ON" CACHE BOOL "") -set(CMake_TEST_FindGSL "ON" CACHE BOOL "") -set(CMake_TEST_FindGTest "ON" CACHE BOOL "") -set(CMake_TEST_FindGTK2 "ON" CACHE BOOL "") -set(CMake_TEST_FindHDF5 "ON" CACHE BOOL "") -set(CMake_TEST_FindHDF5_MPICH_C_COMPILER "/usr/bin/h5pcc.mpich" CACHE FILEPATH "") -set(CMake_TEST_FindHDF5_MPICH_C_COMPILER_EXPLICIT "ON" CACHE BOOL "") -set(CMake_TEST_FindHDF5_MPICH_CXX_COMPILER "/usr/bin/h5c++.mpich" CACHE FILEPATH "") -set(CMake_TEST_FindHDF5_MPICH_CXX_COMPILER_EXPLICIT "ON" CACHE BOOL "") -set(CMake_TEST_FindHDF5_MPICH_Fortran_COMPILER "/usr/bin/h5pfc.mpich" CACHE FILEPATH "") -set(CMake_TEST_FindHDF5_MPICH_Fortran_COMPILER_EXPLICIT "ON" CACHE BOOL "") -set(CMake_TEST_FindHDF5_OpenMPI_C_COMPILER "/usr/bin/h5pcc.openmpi" CACHE FILEPATH "") -set(CMake_TEST_FindHDF5_OpenMPI_C_COMPILER_EXPLICIT "ON" CACHE BOOL "") -set(CMake_TEST_FindHDF5_OpenMPI_CXX_COMPILER "/usr/bin/h5c++.openmpi" CACHE FILEPATH "") -set(CMake_TEST_FindHDF5_OpenMPI_CXX_COMPILER_EXPLICIT "ON" CACHE BOOL "") -set(CMake_TEST_FindHDF5_OpenMPI_Fortran_COMPILER "/usr/bin/h5pfc.openmpi" CACHE FILEPATH "") -set(CMake_TEST_FindHDF5_OpenMPI_Fortran_COMPILER_EXPLICIT "ON" CACHE BOOL "") -set(CMake_TEST_FindHDF5_Serial_C_COMPILER "/usr/bin/h5cc" CACHE FILEPATH "") -set(CMake_TEST_FindHDF5_Serial_CXX_COMPILER "/usr/bin/h5c++" CACHE FILEPATH "") -set(CMake_TEST_FindHDF5_Serial_Fortran_COMPILER "/usr/bin/h5fc" CACHE FILEPATH "") -set(CMake_TEST_FindIconv "ON" CACHE BOOL "") -set(CMake_TEST_FindICU "ON" CACHE BOOL "") -set(CMake_TEST_FindImageMagick "ON" CACHE BOOL "") -set(CMake_TEST_FindIntl "ON" CACHE BOOL "") -set(CMake_TEST_FindJNI "ON" CACHE BOOL "") -set(CMake_TEST_FindJPEG "ON" CACHE BOOL "") -set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "") -set(CMake_TEST_FindLAPACK "All;static=1;Generic" CACHE STRING "") -set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "") -set(CMake_TEST_FindLibinput "ON" CACHE BOOL "") -set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "") -set(CMake_TEST_FindLibUV "ON" CACHE BOOL "") -set(CMake_TEST_FindLibXml2 "ON" CACHE BOOL "") -set(CMake_TEST_FindLibXslt "ON" CACHE BOOL "") -set(CMake_TEST_FindMPI_C "ON" CACHE BOOL "") -set(CMake_TEST_FindMPI_CXX "ON" CACHE BOOL "") -set(CMake_TEST_FindMPI_Fortran "ON" CACHE BOOL "") -set(CMake_TEST_FindMPI "ON" CACHE BOOL "") -set(CMake_TEST_FindODBC "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenAL "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenMP_Fortran "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenSP "ON" CACHE BOOL "") -set(CMake_TEST_FindOpenSSL "ON" CACHE BOOL "") -set(CMake_TEST_FindPatch "ON" CACHE BOOL "") -set(CMake_TEST_FindPNG "ON" CACHE BOOL "") -set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "") -set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "") -set(CMake_TEST_FindProtobuf_gRPC "ON" CACHE BOOL "") -set(CMake_TEST_FindPython3 "ON" CACHE BOOL "") -set(CMake_TEST_FindPython3_IronPython "ON" CACHE BOOL "") -set(CMake_TEST_FindPython3_PyPy "ON" CACHE BOOL "") -set(CMake_TEST_FindRuby "ON" CACHE BOOL "") -set(CMake_TEST_FindRuby_RVM "ON" CACHE BOOL "") -set(CMake_TEST_FindSDL "ON" CACHE BOOL "") -set(CMake_TEST_FindSQLite3 "ON" CACHE BOOL "") -set(CMake_TEST_FindTIFF "ON" CACHE BOOL "") -set(CMake_TEST_FindwxWidgets "ON" CACHE BOOL "") -set(CMake_TEST_FindX11 "ON" CACHE BOOL "") -set(CMake_TEST_FindXalanC "ON" CACHE BOOL "") -set(CMake_TEST_FindXercesC "ON" CACHE BOOL "") -set(CMake_TEST_Fortran_SUBMODULES "ON" CACHE BOOL "") -set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "") -set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "") -set(CMake_TEST_IPO_WORKS_Fortran "ON" CACHE BOOL "") -set(CMake_TEST_JQ "/usr/bin/jq" CACHE PATH "") -set(CMake_TEST_Qt5 "ON" CACHE BOOL "") -set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "") +include("${CMAKE_CURRENT_LIST_DIR}/configure_debian12_ninja_common.cmake") set(CMake_TEST_UseSWIG "ON" CACHE BOOL "") - -if (NOT "$ENV{SWIFTC}" STREQUAL "") - set(CMAKE_Swift_COMPILER "$ENV{SWIFTC}" CACHE FILEPATH "") -endif() - -if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") - set(CMAKE_TESTS_CDASH_SERVER "https://open.cdash.org" CACHE STRING "") -endif() - -include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/configure_debian12_ninja_common.cmake b/.gitlab/ci/configure_debian12_ninja_common.cmake new file mode 100644 index 0000000..d4d117b --- /dev/null +++ b/.gitlab/ci/configure_debian12_ninja_common.cmake @@ -0,0 +1,109 @@ +set(CMake_TEST_CTestUpdate_BZR "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_CVS "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_GIT "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_HG "ON" CACHE BOOL "") +set(CMake_TEST_CTestUpdate_SVN "ON" CACHE BOOL "") +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMake_TEST_CTestUpdate_P4 "ON" CACHE BOOL "") +endif() + +set(CMake_TEST_FindALSA "ON" CACHE BOOL "") +set(CMake_TEST_FindBLAS "All;static=1;Generic" CACHE STRING "") +set(CMake_TEST_FindBoost "ON" CACHE BOOL "") +set(CMake_TEST_FindBoost_Python "ON" CACHE BOOL "") +set(CMake_TEST_FindBZip2 "ON" CACHE BOOL "") +set(CMake_TEST_FindCups "ON" CACHE BOOL "") +set(CMake_TEST_FindCURL "ON" CACHE BOOL "") +set(CMake_TEST_FindDevIL "ON" CACHE BOOL "") +set(CMake_TEST_FindDoxygen_Dot "ON" CACHE BOOL "") +set(CMake_TEST_FindDoxygen "ON" CACHE BOOL "") +set(CMake_TEST_FindEXPAT "ON" CACHE BOOL "") +set(CMake_TEST_FindFontconfig "ON" CACHE BOOL "") +set(CMake_TEST_FindFreetype "ON" CACHE BOOL "") +set(CMake_TEST_FindGDAL "ON" CACHE BOOL "") +set(CMake_TEST_FindGIF "ON" CACHE BOOL "") +set(CMake_TEST_FindGit "ON" CACHE BOOL "") +set(CMake_TEST_FindGLEW "ON" CACHE BOOL "") +set(CMake_TEST_FindGLUT "ON" CACHE BOOL "") +set(CMake_TEST_FindGnuTLS "ON" CACHE BOOL "") +set(CMake_TEST_FindGSL "ON" CACHE BOOL "") +set(CMake_TEST_FindGTest "ON" CACHE BOOL "") +set(CMake_TEST_FindGTK2 "ON" CACHE BOOL "") +set(CMake_TEST_FindHDF5 "ON" CACHE BOOL "") +set(CMake_TEST_FindHDF5_MPICH_C_COMPILER "/usr/bin/h5pcc.mpich" CACHE FILEPATH "") +set(CMake_TEST_FindHDF5_MPICH_C_COMPILER_EXPLICIT "ON" CACHE BOOL "") +set(CMake_TEST_FindHDF5_MPICH_CXX_COMPILER "/usr/bin/h5c++.mpich" CACHE FILEPATH "") +set(CMake_TEST_FindHDF5_MPICH_CXX_COMPILER_EXPLICIT "ON" CACHE BOOL "") +set(CMake_TEST_FindHDF5_MPICH_Fortran_COMPILER "/usr/bin/h5pfc.mpich" CACHE FILEPATH "") +set(CMake_TEST_FindHDF5_MPICH_Fortran_COMPILER_EXPLICIT "ON" CACHE BOOL "") +set(CMake_TEST_FindHDF5_OpenMPI_C_COMPILER "/usr/bin/h5pcc.openmpi" CACHE FILEPATH "") +set(CMake_TEST_FindHDF5_OpenMPI_C_COMPILER_EXPLICIT "ON" CACHE BOOL "") +set(CMake_TEST_FindHDF5_OpenMPI_CXX_COMPILER "/usr/bin/h5c++.openmpi" CACHE FILEPATH "") +set(CMake_TEST_FindHDF5_OpenMPI_CXX_COMPILER_EXPLICIT "ON" CACHE BOOL "") +set(CMake_TEST_FindHDF5_OpenMPI_Fortran_COMPILER "/usr/bin/h5pfc.openmpi" CACHE FILEPATH "") +set(CMake_TEST_FindHDF5_OpenMPI_Fortran_COMPILER_EXPLICIT "ON" CACHE BOOL "") +set(CMake_TEST_FindHDF5_Serial_C_COMPILER "/usr/bin/h5cc" CACHE FILEPATH "") +set(CMake_TEST_FindHDF5_Serial_CXX_COMPILER "/usr/bin/h5c++" CACHE FILEPATH "") +set(CMake_TEST_FindHDF5_Serial_Fortran_COMPILER "/usr/bin/h5fc" CACHE FILEPATH "") +set(CMake_TEST_FindIconv "ON" CACHE BOOL "") +set(CMake_TEST_FindICU "ON" CACHE BOOL "") +set(CMake_TEST_FindImageMagick "ON" CACHE BOOL "") +set(CMake_TEST_FindIntl "ON" CACHE BOOL "") +set(CMake_TEST_FindJNI "ON" CACHE BOOL "") +set(CMake_TEST_FindJPEG "ON" CACHE BOOL "") +set(CMake_TEST_FindJsonCpp "ON" CACHE BOOL "") +set(CMake_TEST_FindLAPACK "All;static=1;Generic" CACHE STRING "") +set(CMake_TEST_FindLibArchive "ON" CACHE BOOL "") +set(CMake_TEST_FindLibinput "ON" CACHE BOOL "") +set(CMake_TEST_FindLibLZMA "ON" CACHE BOOL "") +set(CMake_TEST_FindLibUV "ON" CACHE BOOL "") +set(CMake_TEST_FindLibXml2 "ON" CACHE BOOL "") +set(CMake_TEST_FindLibXslt "ON" CACHE BOOL "") +set(CMake_TEST_FindMPI_C "ON" CACHE BOOL "") +set(CMake_TEST_FindMPI_CXX "ON" CACHE BOOL "") +set(CMake_TEST_FindMPI_Fortran "ON" CACHE BOOL "") +set(CMake_TEST_FindMPI "ON" CACHE BOOL "") +set(CMake_TEST_FindODBC "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenACC "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenAL "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenGL "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenMP_Fortran "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenSP "ON" CACHE BOOL "") +set(CMake_TEST_FindOpenSSL "ON" CACHE BOOL "") +set(CMake_TEST_FindPatch "ON" CACHE BOOL "") +set(CMake_TEST_FindPNG "ON" CACHE BOOL "") +set(CMake_TEST_FindPostgreSQL "ON" CACHE BOOL "") +set(CMake_TEST_FindProtobuf "ON" CACHE BOOL "") +set(CMake_TEST_FindProtobuf_gRPC "ON" CACHE BOOL "") +set(CMake_TEST_FindPython3 "ON" CACHE BOOL "") +set(CMake_TEST_FindPython3_IronPython "ON" CACHE BOOL "") +set(CMake_TEST_FindPython3_PyPy "ON" CACHE BOOL "") +set(CMake_TEST_FindRuby "ON" CACHE BOOL "") +set(CMake_TEST_FindRuby_RVM "ON" CACHE BOOL "") +set(CMake_TEST_FindSDL "ON" CACHE BOOL "") +set(CMake_TEST_FindSQLite3 "ON" CACHE BOOL "") +set(CMake_TEST_FindTIFF "ON" CACHE BOOL "") +set(CMake_TEST_FindwxWidgets "ON" CACHE BOOL "") +set(CMake_TEST_FindX11 "ON" CACHE BOOL "") +set(CMake_TEST_FindXalanC "ON" CACHE BOOL "") +set(CMake_TEST_FindXercesC "ON" CACHE BOOL "") +set(CMake_TEST_Fortran_SUBMODULES "ON" CACHE BOOL "") +set(CMake_TEST_IPO_WORKS_C "ON" CACHE BOOL "") +set(CMake_TEST_IPO_WORKS_CXX "ON" CACHE BOOL "") +set(CMake_TEST_IPO_WORKS_Fortran "ON" CACHE BOOL "") +set(CMake_TEST_JQ "/usr/bin/jq" CACHE PATH "") +set(CMake_TEST_Qt5 "ON" CACHE BOOL "") +set(CMake_TEST_TLS_VERIFY_URL "https://gitlab.kitware.com" CACHE STRING "") + +if (NOT "$ENV{SWIFTC}" STREQUAL "") + set(CMAKE_Swift_COMPILER "$ENV{SWIFTC}" CACHE FILEPATH "") +endif() + +if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "") + set(CMAKE_TESTS_CDASH_SERVER "https://open.cdash.org" CACHE STRING "") +endif() + +include("${CMAKE_CURRENT_LIST_DIR}/configure_external_test.cmake") diff --git a/.gitlab/ci/env_debian12_ninja.sh b/.gitlab/ci/env_debian12_ninja.sh index b2b471d..2b8ff2a 100644 --- a/.gitlab/ci/env_debian12_ninja.sh +++ b/.gitlab/ci/env_debian12_ninja.sh @@ -1,11 +1,5 @@ export MY_RUBY_HOME="/usr/local/rvm/rubies/ruby-3.2.2" if test -z "$CI_MERGE_REQUEST_ID"; then - curl -L -O "https://download.swift.org/swift-5.7.1-release/ubuntu1804/swift-5.7.1-RELEASE/swift-5.7.1-RELEASE-ubuntu18.04.tar.gz" - echo '2b30f9efc969d9e96f0836d0871130dffb369822a3823ee6f3db44c29c1698e3 swift-5.7.1-RELEASE-ubuntu18.04.tar.gz' > swift.sha256sum - sha256sum --check swift.sha256sum - mkdir /opt/swift - tar xzf swift-5.7.1-RELEASE-ubuntu18.04.tar.gz -C /opt/swift --strip-components=2 - rm swift-5.7.1-RELEASE-ubuntu18.04.tar.gz swift.sha256sum - export SWIFTC="/opt/swift/bin/swiftc" + source .gitlab/ci/swift-env.sh fi diff --git a/.gitlab/ci/swift-env.sh b/.gitlab/ci/swift-env.sh new file mode 100644 index 0000000..fa0c81e --- /dev/null +++ b/.gitlab/ci/swift-env.sh @@ -0,0 +1,7 @@ +curl -L -O "https://download.swift.org/swift-5.7.1-release/ubuntu1804/swift-5.7.1-RELEASE/swift-5.7.1-RELEASE-ubuntu18.04.tar.gz" +echo '2b30f9efc969d9e96f0836d0871130dffb369822a3823ee6f3db44c29c1698e3 swift-5.7.1-RELEASE-ubuntu18.04.tar.gz' > swift.sha256sum +sha256sum --check swift.sha256sum +mkdir /opt/swift +tar xzf swift-5.7.1-RELEASE-ubuntu18.04.tar.gz -C /opt/swift --strip-components=2 +rm swift-5.7.1-RELEASE-ubuntu18.04.tar.gz swift.sha256sum +export SWIFTC="/opt/swift/bin/swiftc" -- cgit v0.12 From 879d12a29d253ff3a50af5536e4269140c8a7a4c Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Fri, 22 Sep 2023 09:30:06 -0400 Subject: ci: Always build Ninja with Unix Makefiles generator The build for Ninja should not be affected by the CMAKE_GENERATOR environment variable. --- .gitlab/ci/ninja-nightly.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab/ci/ninja-nightly.sh b/.gitlab/ci/ninja-nightly.sh index b78b64e..739d1d5 100755 --- a/.gitlab/ci/ninja-nightly.sh +++ b/.gitlab/ci/ninja-nightly.sh @@ -5,7 +5,7 @@ set -e cd .gitlab git clone https://github.com/ninja-build/ninja.git ninja-src -cmake -S ninja-src -B ninja-src/build -DCMAKE_BUILD_TYPE=Release +cmake -S ninja-src -B ninja-src/build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release cmake --build ninja-src/build --parallel --target ninja mv ninja-src/build/ninja . rm -rf ninja-src -- cgit v0.12 From d9f1431f92a6c2291321ee75bf9571b5a82c9471 Mon Sep 17 00:00:00 2001 From: Kyle Edwards Date: Tue, 12 Sep 2023 11:01:03 -0400 Subject: ci: Add jobs that run in symlink trees --- .gitignore | 4 ++ .gitlab-ci.yml | 75 ++++++++++++++++++++++ .../configure_debian12_ninja_multi_symlinked.cmake | 3 + .../configure_fedora38_makefiles_symlinked.cmake | 2 + .../ci/configure_macos_arm64_ninja_symlinked.cmake | 2 + .../ci/configure_macos_arm64_xcode_symlinked.cmake | 2 + .gitlab/ci/configure_symlinked_common.cmake | 7 ++ .gitlab/ci/env.sh | 10 +++ .gitlab/ci/env_debian12_ninja_multi_symlinked.sh | 5 ++ .gitlab/ci/env_fedora38_makefiles_symlinked.cmake | 1 + .gitlab/ci/env_fedora38_makefiles_symlinked.sh | 1 + .gitlab/ci/env_macos_arm64_ninja_symlinked.sh | 1 + .gitlab/ci/gitlab_ci.cmake | 5 ++ .gitlab/os-linux.yml | 20 ++++++ .gitlab/os-macos.yml | 19 ++++++ 15 files changed, 157 insertions(+) create mode 100644 .gitlab/ci/configure_debian12_ninja_multi_symlinked.cmake create mode 100644 .gitlab/ci/configure_fedora38_makefiles_symlinked.cmake create mode 100644 .gitlab/ci/configure_macos_arm64_ninja_symlinked.cmake create mode 100644 .gitlab/ci/configure_macos_arm64_xcode_symlinked.cmake create mode 100644 .gitlab/ci/configure_symlinked_common.cmake create mode 100644 .gitlab/ci/env_debian12_ninja_multi_symlinked.sh create mode 100644 .gitlab/ci/env_fedora38_makefiles_symlinked.cmake create mode 100644 .gitlab/ci/env_fedora38_makefiles_symlinked.sh create mode 100644 .gitlab/ci/env_macos_arm64_ninja_symlinked.sh diff --git a/.gitignore b/.gitignore index 3b9e52a..816dced 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,10 @@ # Common build directories /build*/ +# CI jobs that run in symlinked trees produce these artifacts. +/real_work/ +/work + # MacOS Finder files. .DS_Store diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index eb1be76..5982c27 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -199,6 +199,18 @@ t:debian12-makefiles-clang: variables: CMAKE_CI_JOB_NIGHTLY: "true" +t:debian12-ninja-multi-symlinked: + extends: + - .debian12_ninja_multi_symlinked + - .cmake_test_linux_release + - .linux_x86_64_tags + - .cmake_junit_artifacts + - .run_dependent + - .needs_centos7_x86_64 + variables: + CMAKE_CI_JOB_NIGHTLY: "true" + CMAKE_CI_JOB_NIGHTLY_NINJA: "true" + t:debian12-hip-radeon: extends: - .debian12_hip_radeon @@ -399,6 +411,16 @@ b:fedora38-ninja: variables: CMAKE_CI_JOB_CONTINUOUS: "true" +b:fedora38-makefiles-symlinked: + extends: + - .fedora38_makefiles_symlinked + - .cmake_build_linux + - .cmake_build_artifacts + - .linux_x86_64_tags + - .run_manually + variables: + CMAKE_CI_JOB_NIGHTLY: "true" + b:debian12-makefiles-inplace: extends: - .debian12_makefiles_inplace @@ -449,6 +471,20 @@ t:fedora38-ninja: variables: CMAKE_CI_JOB_CONTINUOUS: "true" +t:fedora38-makefiles-symlinked: + extends: + - .fedora38_makefiles_symlinked + - .cmake_test_linux + - .linux_x86_64_tags_x11 + - .cmake_test_artifacts + - .run_dependent + dependencies: + - b:fedora38-makefiles-symlinked + needs: + - b:fedora38-makefiles-symlinked + variables: + CMAKE_CI_JOB_NIGHTLY: "true" + t:fedora38-ninja-multi: extends: - .fedora38_ninja_multi @@ -871,6 +907,16 @@ b:macos-arm64-ninja: variables: CMAKE_CI_JOB_CONTINUOUS: "true" +b:macos-arm64-ninja-symlinked: + extends: + - .macos_arm64_ninja_symlinked + - .cmake_build_macos + - .cmake_build_artifacts + - .macos_arm64_tags + - .run_manually + variables: + CMAKE_CI_JOB_NIGHTLY: "true" + b:macos-arm64-pch: extends: - .macos_arm64_pch @@ -909,6 +955,21 @@ t:macos-arm64-ninja: CMAKE_CI_JOB_CONTINUOUS: "true" CMAKE_CI_JOB_NIGHTLY_NINJA: "true" +t:macos-arm64-ninja-symlinked: + extends: + - .macos_arm64_ninja_symlinked + - .cmake_test_macos + - .cmake_test_artifacts + - .macos_arm64_tags + - .run_dependent + dependencies: + - b:macos-arm64-ninja-symlinked + needs: + - b:macos-arm64-ninja-symlinked + variables: + CMAKE_CI_JOB_NIGHTLY: "true" + CMAKE_CI_JOB_NIGHTLY_NINJA: "true" + b:macos-x86_64-makefiles: extends: - .macos_x86_64_makefiles @@ -968,6 +1029,20 @@ t:macos-arm64-xcode: needs: - t:macos-arm64-ninja +t:macos-arm64-xcode-symlinked: + extends: + - .macos_arm64_xcode_symlinked + - .cmake_test_macos_external + - .macos_arm64_tags_ext + - .cmake_junit_artifacts + - .run_dependent + dependencies: + - t:macos-arm64-ninja + needs: + - t:macos-arm64-ninja + variables: + CMAKE_CI_JOB_NIGHTLY: "true" + t:macos-x86_64-ninja-ub: extends: - .macos_x86_64_ninja_ub diff --git a/.gitlab/ci/configure_debian12_ninja_multi_symlinked.cmake b/.gitlab/ci/configure_debian12_ninja_multi_symlinked.cmake new file mode 100644 index 0000000..cf9202d --- /dev/null +++ b/.gitlab/ci/configure_debian12_ninja_multi_symlinked.cmake @@ -0,0 +1,3 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/configure_debian12_ninja_common.cmake") +set(CMake_TEST_UseSWIG "OFF" CACHE BOOL "") diff --git a/.gitlab/ci/configure_fedora38_makefiles_symlinked.cmake b/.gitlab/ci/configure_fedora38_makefiles_symlinked.cmake new file mode 100644 index 0000000..177bbcf --- /dev/null +++ b/.gitlab/ci/configure_fedora38_makefiles_symlinked.cmake @@ -0,0 +1,2 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/configure_fedora38_common.cmake") diff --git a/.gitlab/ci/configure_macos_arm64_ninja_symlinked.cmake b/.gitlab/ci/configure_macos_arm64_ninja_symlinked.cmake new file mode 100644 index 0000000..63d0dc7 --- /dev/null +++ b/.gitlab/ci/configure_macos_arm64_ninja_symlinked.cmake @@ -0,0 +1,2 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_arm64_ninja.cmake") diff --git a/.gitlab/ci/configure_macos_arm64_xcode_symlinked.cmake b/.gitlab/ci/configure_macos_arm64_xcode_symlinked.cmake new file mode 100644 index 0000000..66b18e1 --- /dev/null +++ b/.gitlab/ci/configure_macos_arm64_xcode_symlinked.cmake @@ -0,0 +1,2 @@ +include("${CMAKE_CURRENT_LIST_DIR}/configure_symlinked_common.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_arm64_xcode.cmake") diff --git a/.gitlab/ci/configure_symlinked_common.cmake b/.gitlab/ci/configure_symlinked_common.cmake new file mode 100644 index 0000000..a5e427e --- /dev/null +++ b/.gitlab/ci/configure_symlinked_common.cmake @@ -0,0 +1,7 @@ +# Ensure that the symlink tree is set up correctly. +if(NOT CMAKE_SOURCE_DIR STREQUAL "$ENV{CI_PROJECT_DIR}/work/cmake") + message(FATAL_ERROR "Expected value of CMAKE_SOURCE_DIR:\n $ENV{CI_PROJECT_DIR}/work/cmake\nActual value:\n ${CMAKE_SOURCE_DIR}") +endif() +if(NOT CMAKE_BINARY_DIR STREQUAL "$ENV{CI_PROJECT_DIR}/work/build") + message(FATAL_ERROR "Expected value of CMAKE_BINARY_DIR:\n $ENV{CI_PROJECT_DIR}/work/build\nActual value:\n ${CMAKE_BINARY_DIR}") +endif() diff --git a/.gitlab/ci/env.sh b/.gitlab/ci/env.sh index 7634f5d..aa709a8 100644 --- a/.gitlab/ci/env.sh +++ b/.gitlab/ci/env.sh @@ -9,6 +9,16 @@ quietly() { rm -f "$log" } +if test -n "$CMAKE_CI_IN_SYMLINK_TREE"; then + mkdir -p "$CI_PROJECT_DIR/real_work/work/build" + ln -s real_work/work "$CI_PROJECT_DIR/work" + git worktree prune + git worktree add "$CI_PROJECT_DIR/work/cmake" HEAD + + # Assert that the hash matches. + test "$(git -C "$CI_PROJECT_DIR/work/cmake" rev-parse HEAD)" = "$(git -C "$CI_PROJECT_DIR" rev-parse HEAD)" +fi + if test -r ".gitlab/ci/env_${CMAKE_CONFIGURATION}.sh"; then source ".gitlab/ci/env_${CMAKE_CONFIGURATION}.sh" fi diff --git a/.gitlab/ci/env_debian12_ninja_multi_symlinked.sh b/.gitlab/ci/env_debian12_ninja_multi_symlinked.sh new file mode 100644 index 0000000..2b8ff2a --- /dev/null +++ b/.gitlab/ci/env_debian12_ninja_multi_symlinked.sh @@ -0,0 +1,5 @@ +export MY_RUBY_HOME="/usr/local/rvm/rubies/ruby-3.2.2" + +if test -z "$CI_MERGE_REQUEST_ID"; then + source .gitlab/ci/swift-env.sh +fi diff --git a/.gitlab/ci/env_fedora38_makefiles_symlinked.cmake b/.gitlab/ci/env_fedora38_makefiles_symlinked.cmake new file mode 100644 index 0000000..2accabf --- /dev/null +++ b/.gitlab/ci/env_fedora38_makefiles_symlinked.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/env_fedora38_makefiles.cmake") diff --git a/.gitlab/ci/env_fedora38_makefiles_symlinked.sh b/.gitlab/ci/env_fedora38_makefiles_symlinked.sh new file mode 100644 index 0000000..452d3785 --- /dev/null +++ b/.gitlab/ci/env_fedora38_makefiles_symlinked.sh @@ -0,0 +1 @@ +. .gitlab/ci/env_fedora38_makefiles.sh diff --git a/.gitlab/ci/env_macos_arm64_ninja_symlinked.sh b/.gitlab/ci/env_macos_arm64_ninja_symlinked.sh new file mode 100644 index 0000000..b78cefc --- /dev/null +++ b/.gitlab/ci/env_macos_arm64_ninja_symlinked.sh @@ -0,0 +1 @@ +. .gitlab/ci/env_macos_arm64_ninja.sh diff --git a/.gitlab/ci/gitlab_ci.cmake b/.gitlab/ci/gitlab_ci.cmake index 080c93b..d0d4a59 100644 --- a/.gitlab/ci/gitlab_ci.cmake +++ b/.gitlab/ci/gitlab_ci.cmake @@ -5,8 +5,13 @@ endif () # Set up the source and build paths. set(CTEST_SOURCE_DIRECTORY "$ENV{CI_PROJECT_DIR}") +if("$ENV{CMAKE_CI_IN_SYMLINK_TREE}") + set(CTEST_SOURCE_DIRECTORY "$ENV{CI_PROJECT_DIR}/work/cmake") +endif() if("$ENV{CMAKE_CI_INPLACE}") set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}") +elseif("$ENV{CMAKE_CI_IN_SYMLINK_TREE}") + set(CTEST_BINARY_DIRECTORY "$ENV{CI_PROJECT_DIR}/work/build") else() set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}/build") endif() diff --git a/.gitlab/os-linux.yml b/.gitlab/os-linux.yml index d42340c..0e1f933 100644 --- a/.gitlab/os-linux.yml +++ b/.gitlab/os-linux.yml @@ -137,6 +137,16 @@ CMAKE_CI_NO_INSTALL: 1 CTEST_NO_WARNINGS_ALLOWED: 1 +.debian12_ninja_multi_symlinked: + extends: .debian12 + + variables: + CMAKE_CONFIGURATION: debian12_ninja_multi_symlinked + CMAKE_GENERATOR: "Ninja Multi-Config" + CTEST_NO_WARNINGS_ALLOWED: 1 + CMAKE_CI_IN_SYMLINK_TREE: 1 + CMAKE_CI_BUILD_DIR: "real_work/work/build" + .debian12_extdeps: extends: .debian12 @@ -185,6 +195,16 @@ CTEST_NO_WARNINGS_ALLOWED: 1 CMAKE_GENERATOR: "Unix Makefiles" +.fedora38_makefiles_symlinked: + extends: .fedora38 + + variables: + CMAKE_CONFIGURATION: fedora38_makefiles_symlinked + CTEST_NO_WARNINGS_ALLOWED: 1 + CMAKE_GENERATOR: "Unix Makefiles" + CMAKE_CI_IN_SYMLINK_TREE: 1 + CMAKE_CI_BUILD_DIR: "real_work/work/build" + ### Clang Compiler .debian12_makefiles_clang: diff --git a/.gitlab/os-macos.yml b/.gitlab/os-macos.yml index fbba288..9212ecc 100644 --- a/.gitlab/os-macos.yml +++ b/.gitlab/os-macos.yml @@ -38,6 +38,15 @@ CMAKE_CONFIGURATION: macos_arm64_ninja CTEST_NO_WARNINGS_ALLOWED: 1 +.macos_arm64_ninja_symlinked: + extends: .macos_build + + variables: + CMAKE_CONFIGURATION: macos_arm64_ninja_symlinked + CTEST_NO_WARNINGS_ALLOWED: 1 + CMAKE_CI_IN_SYMLINK_TREE: 1 + CMAKE_CI_BUILD_DIR: "real_work/work/build" + .macos_arm64_pch: extends: .macos_arm64_ninja @@ -86,6 +95,16 @@ CMAKE_GENERATOR: Xcode CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true" +.macos_arm64_xcode_symlinked: + extends: .macos + + variables: + CMAKE_CONFIGURATION: macos_arm64_xcode_symlinked + CMAKE_GENERATOR: Xcode + CMAKE_CI_NIGHTLY_IGNORE_DEPS: "true" + CMAKE_CI_IN_SYMLINK_TREE: 1 + CMAKE_CI_BUILD_DIR: "real_work/work/build" + .macos_arm64_xcode_ub: extends: .macos -- cgit v0.12