mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-25 09:58:37 -05:00
Merge topic 'cxxmodules-gcc-14'
4089954595gitlab-ci: update to GCC CI container with merged P1689R5c2564f5916ci: drop extra scandep source settings for GCCee52a02d56ci: update GCC build to use master after P1689R5 is merged4f0410959eGCC: add rules for scanning C++ module dependencies Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8827
This commit is contained in:
@@ -1,20 +1 @@
|
||||
set(CMake_TEST_CXXModules_UUID "a246741c-d067-4019-a8fb-3d16b0c9d1d3")
|
||||
|
||||
string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE
|
||||
"<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E -x c++ <SOURCE>"
|
||||
" -MT <DYNDEP_FILE> -MD -MF <DEP_FILE>"
|
||||
" -fmodules-ts -fdeps-file=<DYNDEP_FILE> -fdeps-target=<OBJECT> -fdeps-format=p1689r5"
|
||||
" -o <PREPROCESSED_SOURCE>")
|
||||
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT "gcc")
|
||||
string(CONCAT CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG
|
||||
# Turn on modules.
|
||||
"-fmodules-ts"
|
||||
# Read the module mapper file.
|
||||
" -fmodule-mapper=<MODULE_MAP_FILE>"
|
||||
# Make sure dependency tracking is enabled (missing from `try_*`).
|
||||
" -MD"
|
||||
# Suppress `CXX_MODULES +=` from generated depfile snippets.
|
||||
" -fdeps-format=p1689r5"
|
||||
# Force C++ as a language.
|
||||
" -x c++")
|
||||
set(CMAKE_EXPERIMENTAL_CXX_MODULE_BMI_ONLY_FLAG "-fmodule-only")
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
set -e
|
||||
|
||||
readonly revision="p1689r5-cmake-ci-20230814" # 9fd54ccc390ab4eb3c48186b7bf15e02632cc76c
|
||||
readonly tarball="https://github.com/mathstuf/gcc/archive/$revision.tar.gz"
|
||||
readonly revision="29862e21f6d656eca59284c927d0c4c0698eb99c" # master as of 21 Sep 2023
|
||||
readonly tarball="git://gcc.gnu.org/git/gcc.git"
|
||||
|
||||
readonly workdir="$HOME/gcc"
|
||||
readonly srcdir="$workdir/gcc"
|
||||
@@ -12,9 +12,8 @@ readonly njobs="$( nproc )"
|
||||
|
||||
mkdir -p "$workdir"
|
||||
cd "$workdir"
|
||||
curl -L "$tarball" > "gcc-$revision.tar.gz"
|
||||
tar xf "gcc-$revision.tar.gz"
|
||||
mv "gcc-$revision" "$srcdir"
|
||||
git clone "$tarball" "$srcdir"
|
||||
git -C "$srcdir" checkout "$revision"
|
||||
mkdir -p "$builddir"
|
||||
cd "$builddir"
|
||||
"$srcdir/configure" \
|
||||
|
||||
@@ -383,7 +383,7 @@
|
||||
### C++ modules
|
||||
|
||||
.gcc_cxx_modules_x86_64:
|
||||
image: "kitware/cmake:ci-gcc_cxx_modules-x86_64-2023-08-15"
|
||||
image: "kitware/cmake:ci-gcc_cxx_modules-x86_64-2023-09-21"
|
||||
|
||||
variables:
|
||||
GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
|
||||
|
||||
@@ -72,3 +72,24 @@ elseif(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0)
|
||||
endif()
|
||||
|
||||
__compiler_check_default_language_standard(CXX 3.4 98 6.0 14 11.1 17)
|
||||
|
||||
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 14.0)
|
||||
string(CONCAT CMAKE_EXPERIMENTAL_CXX_SCANDEP_SOURCE
|
||||
"<CMAKE_CXX_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E -x c++ <SOURCE>"
|
||||
" -MT <DYNDEP_FILE> -MD -MF <DEP_FILE>"
|
||||
" -fmodules-ts -fdeps-file=<DYNDEP_FILE> -fdeps-target=<OBJECT> -fdeps-format=p1689r5"
|
||||
" -o <PREPROCESSED_SOURCE>")
|
||||
set(CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FORMAT "gcc")
|
||||
string(CONCAT CMAKE_EXPERIMENTAL_CXX_MODULE_MAP_FLAG
|
||||
# Turn on modules.
|
||||
"-fmodules-ts"
|
||||
# Read the module mapper file.
|
||||
" -fmodule-mapper=<MODULE_MAP_FILE>"
|
||||
# Make sure dependency tracking is enabled (missing from `try_*`).
|
||||
" -MD"
|
||||
# Suppress `CXX_MODULES +=` from generated depfile snippets.
|
||||
" -fdeps-format=p1689r5"
|
||||
# Force C++ as a language.
|
||||
" -x c++")
|
||||
set(CMAKE_EXPERIMENTAL_CXX_MODULE_BMI_ONLY_FLAG "-fmodule-only")
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user