mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00
Treat '.ixx' and '.cppm' files as C++ sources
These extensions are used by convention for C++ modules and interface units with MSVC.
This commit is contained in:

committed by
Brad King

parent
8f0cbaf2e0
commit
7c4c4f1406
4
Help/release/dev/cxx-module-extensions.rst
Normal file
4
Help/release/dev/cxx-module-extensions.rst
Normal file
@@ -0,0 +1,4 @@
|
||||
cxx-module-extensions
|
||||
---------------------
|
||||
|
||||
* Source file extensions ``.ixx`` and ``.cppm`` are now treated as C++.
|
@@ -44,7 +44,7 @@ if(CMAKE_COMPILER_IS_MINGW)
|
||||
set(MINGW 1)
|
||||
endif()
|
||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
|
||||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
|
||||
foreach (lang C OBJC OBJCXX)
|
||||
|
@@ -1222,7 +1222,7 @@ void cmMakefile::AddCustomCommandOldStyle(
|
||||
|
||||
// Each output must get its own copy of this rule.
|
||||
cmsys::RegularExpression sourceFiles(
|
||||
"\\.(C|M|c|c\\+\\+|cc|cpp|cxx|mpp|cu|m|mm|"
|
||||
"\\.(C|M|c|c\\+\\+|cc|cpp|cxx|mpp|ixx|cppm|cu|m|mm|"
|
||||
"rc|def|r|odl|idl|hpj|bat|h|h\\+\\+|"
|
||||
"hm|hpp|hxx|in|txx|inl)$");
|
||||
|
||||
|
@@ -175,7 +175,7 @@ private:
|
||||
#define CM_HEADER_REGEX "\\.(h|hh|h\\+\\+|hm|hpp|hxx|in|txx|inl)$"
|
||||
|
||||
#define CM_SOURCE_REGEX \
|
||||
"\\.(C|F|M|c|c\\+\\+|cc|cpp|mpp|cxx|cu|f|f90|for|fpp|ftn|m|mm|" \
|
||||
"\\.(C|F|M|c|c\\+\\+|cc|cpp|mpp|cxx|ixx|cppm|cu|f|f90|for|fpp|ftn|m|mm|" \
|
||||
"rc|def|r|odl|idl|hpj|bat)$"
|
||||
|
||||
#define CM_PCH_REGEX "cmake_pch(_[^.]+)?\\.(h|hxx)$"
|
||||
|
@@ -209,9 +209,9 @@ cmake::cmake(Role role, cmState::Mode mode)
|
||||
};
|
||||
|
||||
// The "c" extension MUST precede the "C" extension.
|
||||
setupExts(
|
||||
this->CLikeSourceFileExtensions,
|
||||
{ "c", "C", "c++", "cc", "cpp", "cxx", "cu", "mpp", "m", "M", "mm" });
|
||||
setupExts(this->CLikeSourceFileExtensions,
|
||||
{ "c", "C", "c++", "cc", "cpp", "cxx", "cu", "mpp", "m", "M",
|
||||
"mm", "ixx", "cppm" });
|
||||
setupExts(this->HeaderFileExtensions,
|
||||
{ "h", "hh", "h++", "hm", "hpp", "hxx", "in", "txx" });
|
||||
setupExts(this->CudaFileExtensions, { "cu" });
|
||||
|
Reference in New Issue
Block a user