diff --git a/modules/xcode/tests/test_xcode_project.lua b/modules/xcode/tests/test_xcode_project.lua index bf775655..8fdb0b6b 100644 --- a/modules/xcode/tests/test_xcode_project.lua +++ b/modules/xcode/tests/test_xcode_project.lua @@ -3272,9 +3272,9 @@ name = Debug; }; ]] - end - - function suite.XCBuildConfigurationProject_OnCpp11() + end + + function suite.XCBuildConfigurationProject_OnCpp11() workspace("MyWorkspace") cppdialect("C++11") prepare() @@ -3300,6 +3300,32 @@ ]] end + function suite.XCBuildConfigurationProject_OnCpp0x() + workspace("MyWorkspace") + cppdialect("C++0x") + prepare() + xcode.XCBuildConfiguration_Project(tr, tr.configs[1]) + test.capture [[ + A14350AC4595EE5E57CE36EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = obj/Debug; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = bin/Debug; + }; + name = Debug; + }; + ]] + end + function suite.XCBuildConfigurationProject_OnCpp14() workspace("MyWorkspace") cppdialect("C++14") @@ -3324,6 +3350,32 @@ name = Debug; }; ]] + end + + function suite.XCBuildConfigurationProject_OnCpp1y() + workspace("MyWorkspace") + cppdialect("C++1y") + prepare() + xcode.XCBuildConfiguration_Project(tr, tr.configs[1]) + test.capture [[ + A14350AC4595EE5E57CE36EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++14"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = obj/Debug; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = bin/Debug; + }; + name = Debug; + }; + ]] end function suite.XCBuildConfigurationProject_OnCpp17() @@ -3350,6 +3402,32 @@ name = Debug; }; ]] + end + + function suite.XCBuildConfigurationProject_OnCpp1z() + workspace("MyWorkspace") + cppdialect("C++1z") + prepare() + xcode.XCBuildConfiguration_Project(tr, tr.configs[1]) + test.capture [[ + A14350AC4595EE5E57CE36EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++1z"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = obj/Debug; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = bin/Debug; + }; + name = Debug; + }; + ]] end function suite.XCBuildConfigurationProject_OnCpp20() @@ -3376,6 +3454,32 @@ name = Debug; }; ]] + end + + function suite.XCBuildConfigurationProject_OnCpp2a() + workspace("MyWorkspace") + cppdialect("C++2a") + prepare() + xcode.XCBuildConfiguration_Project(tr, tr.configs[1]) + test.capture [[ + A14350AC4595EE5E57CE36EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CLANG_CXX_LANGUAGE_STANDARD = "c++2a"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = obj/Debug; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = bin/Debug; + }; + name = Debug; + }; + ]] end function suite.XCBuildConfigurationProject_OnCppGnu98() @@ -3428,6 +3532,32 @@ name = Debug; }; ]] + end + + function suite.XCBuildConfigurationProject_OnCppGnu0x() + workspace("MyWorkspace") + cppdialect("gnu++0x") + prepare() + xcode.XCBuildConfiguration_Project(tr, tr.configs[1]) + test.capture [[ + A14350AC4595EE5E57CE36EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = obj/Debug; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = bin/Debug; + }; + name = Debug; + }; + ]] end function suite.XCBuildConfigurationProject_OnCppGnu14() @@ -3454,6 +3584,32 @@ name = Debug; }; ]] + end + + function suite.XCBuildConfigurationProject_OnCppGnu1y() + workspace("MyWorkspace") + cppdialect("gnu++1y") + prepare() + xcode.XCBuildConfiguration_Project(tr, tr.configs[1]) + test.capture [[ + A14350AC4595EE5E57CE36EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = obj/Debug; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = bin/Debug; + }; + name = Debug; + }; + ]] end function suite.XCBuildConfigurationProject_OnCppGnu17() @@ -3480,6 +3636,32 @@ name = Debug; }; ]] + end + + function suite.XCBuildConfigurationProject_OnCppGnu1z() + workspace("MyWorkspace") + cppdialect("gnu++1z") + prepare() + xcode.XCBuildConfiguration_Project(tr, tr.configs[1]) + test.capture [[ + A14350AC4595EE5E57CE36EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++1z"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = obj/Debug; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = bin/Debug; + }; + name = Debug; + }; + ]] end function suite.XCBuildConfigurationProject_OnCppGnu20() @@ -3506,6 +3688,32 @@ name = Debug; }; ]] + end + + function suite.XCBuildConfigurationProject_OnCppGnu2a() + workspace("MyWorkspace") + cppdialect("gnu++2a") + prepare() + xcode.XCBuildConfiguration_Project(tr, tr.configs[1]) + test.capture [[ + A14350AC4595EE5E57CE36EC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++2a"; + CONFIGURATION_BUILD_DIR = "$(SYMROOT)"; + CONFIGURATION_TEMP_DIR = "$(OBJROOT)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + OBJROOT = obj/Debug; + ONLY_ACTIVE_ARCH = NO; + SYMROOT = bin/Debug; + }; + name = Debug; + }; + ]] end function suite.XCBuildConfigurationProject_OnUnsignedCharOn() diff --git a/modules/xcode/xcode_common.lua b/modules/xcode/xcode_common.lua index 14116c32..ab3b9c9b 100644 --- a/modules/xcode/xcode_common.lua +++ b/modules/xcode/xcode_common.lua @@ -1241,14 +1241,22 @@ xcode.cppLanguageStandards = { ["Default"] = "compiler-default", -- explicit compiler default ["C++98"] = "c++98", + ["C++0x"] = "c++11", ["C++11"] = "c++11", + ["C++1y"] = "c++14", ["C++14"] = "c++14", + ["C++1z"] = "c++1z", ["C++17"] = "c++1z", + ["C++2a"] = "c++2a", ["C++20"] = "c++2a", ["gnu++98"] = "gnu++98", + ["gnu++0x"] = "gnu++0x", ["gnu++11"] = "gnu++0x", -- Xcode project GUI uses gnu++0x, but gnu++11 also works + ["gnu++1y"] = "gnu++14", ["gnu++14"] = "gnu++14", + ["gnu++1z"] = "gnu++1z", ["gnu++17"] = "gnu++1z", + ["gnu++2a"] = "gnu++2a", ["gnu++20"] = "gnu++2a", }