Objective-C: Do not treat Objective-C files as C++ files

When both C and C++ langauges are enabled, the Objective-C files
should be treated as C files and not as C++ files.
This commit is contained in:
Cristian Adam 2019-10-11 14:01:48 +02:00
parent 9150c818b7
commit 806e01d638
4 changed files with 29 additions and 1 deletions

View File

@ -45,7 +45,7 @@ set(CMAKE_CXX_COMPILER_ID_RUN 1)
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP)
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
foreach (lang OBJC OBJCXX)
foreach (lang C OBJC OBJCXX)
if (CMAKE_${lang}_COMPILER_ID_RUN)
foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})

View File

@ -2353,6 +2353,18 @@ ${CMake_SOURCE_DIR}/Utilities/Release/push.bash --dir dev -- '${CMake_BUILD_NIGH
)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Objective-C/c-file-extension-test")
add_test(Objective-C.cxx-file-extension-test ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Objective-C/cxx-file-extension-test"
"${CMake_BINARY_DIR}/Tests/Objective-C/cxx-file-extension-test"
--build-two-config
${build_generator_args}
--build-project cxx-file-extension-test
--build-options ${build_options}
--test-command cxx-file-extension-test
)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Objective-C/cxx-file-extension-test")
add_test(Objective-C.objc-file-extension-test ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/Objective-C/objc-file-extension-test"

View File

@ -0,0 +1,8 @@
cmake_minimum_required(VERSION 3.15)
project(cxx-file-extension-test)
string(APPEND CMAKE_CXX_FLAGS " -std=c++11")
set(CMAKE_CXX_STANDARD 14)
add_executable(cxx-file-extension-test main.m)

View File

@ -0,0 +1,8 @@
#ifndef __OBJC__
# error "Compiler cannot compile Objective-C"
#endif
int main()
{
return 0;
}