diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 7787b08e6e..7a70421256 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -430,6 +430,7 @@ if(BUILD_TESTING) string(REPLACE ";" "$" TEST_STDS_CUDA "${CMake_TEST_CUDA_STANDARDS}") string(REPLACE ";" "$" TEST_STDS_HIP "${CMake_TEST_HIP_STANDARDS}") set(CompileFeatures_BUILD_OPTIONS + -DCMake_TEST_CXX=${CMake_TEST_CXX} -DCMake_TEST_C_STANDARDS=${TEST_STDS_C} -DCMake_TEST_CXX_STANDARDS=${TEST_STDS_CXX} -DCMake_TEST_CUDA=${CMake_TEST_CUDA} diff --git a/Tests/CompileFeatures/CMakeLists.txt b/Tests/CompileFeatures/CMakeLists.txt index e3f74fd2d8..08a31c463d 100644 --- a/Tests/CompileFeatures/CMakeLists.txt +++ b/Tests/CompileFeatures/CMakeLists.txt @@ -1,12 +1,15 @@ - cmake_minimum_required(VERSION 3.10) +project(CompileFeatures LANGUAGES NONE) -project(CompileFeatures) - +enable_language(C) set(ext_C c) -set(ext_CXX cpp) set(std_C 90 99 11 17 23) -set(std_CXX 98 11 14 17 20 23 26) + +if(CMake_TEST_CXX) + enable_language(CXX) + set(ext_CXX cpp) + set(std_CXX 98 11 14 17 20 23 26) +endif() if(CMake_TEST_CUDA) enable_language(CUDA) @@ -356,10 +359,7 @@ endif () # always add a target "CompileFeatures" if ((NOT CXX_expected_features) OR (NOT cxx_auto_type IN_LIST CXX_expected_features)) - file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp" - "int main(int,char**) { return 0; }\n" - ) - add_executable(CompileFeatures "${CMAKE_CURRENT_BINARY_DIR}/dummy.cpp") + add_executable(CompileFeatures main.c) else() # these tests only work if at least cxx_auto_type is available add_executable(CompileFeatures main.cpp) diff --git a/Tests/CompileFeatures/main.c b/Tests/CompileFeatures/main.c new file mode 100644 index 0000000000..8488f4e58f --- /dev/null +++ b/Tests/CompileFeatures/main.c @@ -0,0 +1,4 @@ +int main(void) +{ + return 0; +}