mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-09 08:40:11 -06:00
Languages: Add support for Objective-C++
Add entries in Modules and Modules/Platform to support Objective-C++ compiler determination and identification. Add Modules to check Objective-C++ compiler flags, source compilations, program checks, etc... Use OBJCXX as the designator of the language, eg: project(foo OBJCXX) Add various tests for Objective-C++ language features. Add tests to preserve C++ handling of .M and .mm files when Objective-C++ is not a configured language. Co-authored-by: Cristian Adam <cristian.adam@gmail.com>
This commit is contained in:
committed by
Cristian Adam
parent
80f120a85f
commit
9e66397c28
@@ -707,7 +707,8 @@ struct CompilerIdNode : public cmGeneratorExpressionNode
|
||||
};
|
||||
|
||||
static const CompilerIdNode cCompilerIdNode("C"), cxxCompilerIdNode("CXX"),
|
||||
cudaCompilerIdNode("CUDA"), fortranCompilerIdNode("Fortran");
|
||||
cudaCompilerIdNode("CUDA"), objcCompilerIdNode("OBJC"),
|
||||
objcxxCompilerIdNode("OBJCXX"), fortranCompilerIdNode("Fortran");
|
||||
|
||||
struct CompilerVersionNode : public cmGeneratorExpressionNode
|
||||
{
|
||||
@@ -771,6 +772,7 @@ struct CompilerVersionNode : public cmGeneratorExpressionNode
|
||||
|
||||
static const CompilerVersionNode cCompilerVersionNode("C"),
|
||||
cxxCompilerVersionNode("CXX"), cudaCompilerVersionNode("CUDA"),
|
||||
objcCompilerVersionNode("OBJC"), objcxxCompilerVersionNode("OBJCXX"),
|
||||
fortranCompilerVersionNode("Fortran");
|
||||
|
||||
struct PlatformIdNode : public cmGeneratorExpressionNode
|
||||
@@ -2243,6 +2245,8 @@ const cmGeneratorExpressionNode* cmGeneratorExpressionNode::GetNode(
|
||||
{ "NOT", ¬Node },
|
||||
{ "C_COMPILER_ID", &cCompilerIdNode },
|
||||
{ "CXX_COMPILER_ID", &cxxCompilerIdNode },
|
||||
{ "OBJC_COMPILER_ID", &objcCompilerIdNode },
|
||||
{ "OBJCXX_COMPILER_ID", &objcxxCompilerIdNode },
|
||||
{ "CUDA_COMPILER_ID", &cudaCompilerIdNode },
|
||||
{ "Fortran_COMPILER_ID", &fortranCompilerIdNode },
|
||||
{ "VERSION_GREATER", &versionGreaterNode },
|
||||
@@ -2253,6 +2257,8 @@ const cmGeneratorExpressionNode* cmGeneratorExpressionNode::GetNode(
|
||||
{ "C_COMPILER_VERSION", &cCompilerVersionNode },
|
||||
{ "CXX_COMPILER_VERSION", &cxxCompilerVersionNode },
|
||||
{ "CUDA_COMPILER_VERSION", &cudaCompilerVersionNode },
|
||||
{ "OBJC_COMPILER_VERSION", &objcCompilerVersionNode },
|
||||
{ "OBJCXX_COMPILER_VERSION", &objcxxCompilerVersionNode },
|
||||
{ "Fortran_COMPILER_VERSION", &fortranCompilerVersionNode },
|
||||
{ "PLATFORM_ID", &platformIdNode },
|
||||
{ "COMPILE_FEATURES", &compileFeaturesNode },
|
||||
|
||||
Reference in New Issue
Block a user