summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@gmail.com>2023-09-20 10:59:53 (GMT)
committerMarc Chevrier <marc.chevrier@gmail.com>2023-09-21 14:29:40 (GMT)
commit3bdf95f942c8532fb1e0fbad52f04f46e822b2f9 (patch)
tree9808f750117dcf362e3daf94b29bf9c0924b72f4 /Tests
parent4ac624debc11e3b87d53a34ccfe3e25ff9c5a426 (diff)
downloadCMake-3bdf95f942c8532fb1e0fbad52f04f46e822b2f9.zip
CMake-3bdf95f942c8532fb1e0fbad52f04f46e822b2f9.tar.gz
CMake-3bdf95f942c8532fb1e0fbad52f04f46e822b2f9.tar.bz2
macOS: GNU toolchain: ensure framework, marked as SYSTEM, can be linked
Fixes: #25263
Diffstat (limited to 'Tests')
-rw-r--r--Tests/RunCMake/CMakeLists.txt7
-rw-r--r--Tests/RunCMake/FileAPI/codemodel-v2-data/targets/apple_exe_framework.json2
-rw-r--r--Tests/RunCMake/Framework/FrameworkSystemIncludeTest.cmake6
-rw-r--r--Tests/RunCMake/Framework/RunCMakeTest.cmake18
4 files changed, 20 insertions, 13 deletions
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 9b9a53e..111f542 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -707,10 +707,11 @@ if(XCODE_VERSION)
set_property(TEST RunCMake.XcodeProject PROPERTY TIMEOUT ${CMake_TEST_XcodeProject_TIMEOUT})
endif()
-if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang"
+if((CMAKE_C_COMPILER_ID STREQUAL "AppleClang"
AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.0)
- add_RunCMake_test(Framework)
- if(NOT DEFINED CMake_TEST_XcFramework)
+ OR (APPLE AND CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 5.0))
+ add_RunCMake_test(Framework -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID})
+ if(CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND NOT DEFINED CMake_TEST_XcFramework)
set(CMake_TEST_XcFramework ON)
endif()
if(CMake_TEST_XcFramework AND NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 11.0)
diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/apple_exe_framework.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/apple_exe_framework.json
index 6d320f4..a4c13a8 100644
--- a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/apple_exe_framework.json
+++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/apple_exe_framework.json
@@ -34,7 +34,7 @@
"lto": null,
"commandFragments": [
{
- "fragment": "-iframework .+/framework(/(Debug|Release|RelWithDebInfo|MinSizeRel))?\"? -iframework /usr/Frameworks$",
+ "fragment": "-F.+/framework(/(Debug|Release|RelWithDebInfo|MinSizeRel))?\"? -F/usr/Frameworks$",
"role": "frameworkPath",
"backtrace": null
},
diff --git a/Tests/RunCMake/Framework/FrameworkSystemIncludeTest.cmake b/Tests/RunCMake/Framework/FrameworkSystemIncludeTest.cmake
index 94c0b87..b50a8ad 100644
--- a/Tests/RunCMake/Framework/FrameworkSystemIncludeTest.cmake
+++ b/Tests/RunCMake/Framework/FrameworkSystemIncludeTest.cmake
@@ -8,7 +8,7 @@ set_target_properties(Example::Example PROPERTIES
)
add_library(testcase FrameworkSystemIncludeTest.c)
-target_compile_options(testcase PRIVATE "-Werror=#pragma-messages")
+target_compile_options(testcase PRIVATE "$<IF:$<C_COMPILER_ID:GNU>,-Werror,-Werror=#pragma-messages>")
target_link_libraries(testcase PRIVATE Example::Example)
@@ -20,7 +20,7 @@ set_target_properties(Example::Example2 PROPERTIES
)
add_library(testcase2 FrameworkSystemIncludeTest.c)
-target_compile_options(testcase2 PRIVATE "-Werror=#pragma-messages")
+target_compile_options(testcase2 PRIVATE "$<IF:$<C_COMPILER_ID:GNU>,-Werror,-Werror=#pragma-messages>")
target_link_libraries(testcase2 PRIVATE Example::Example2)
@@ -32,5 +32,5 @@ set_target_properties(Example::Example3 PROPERTIES
)
add_library(testcase3 FrameworkSystemIncludeTest.c)
-target_compile_options(testcase3 PRIVATE "-Werror=#pragma-messages")
+target_compile_options(testcase3 PRIVATE "$<IF:$<C_COMPILER_ID:GNU>,-Werror,-Werror=#pragma-messages>")
target_link_libraries(testcase3 PRIVATE Example::Example3)
diff --git a/Tests/RunCMake/Framework/RunCMakeTest.cmake b/Tests/RunCMake/Framework/RunCMakeTest.cmake
index 7319a59..2c5b46f 100644
--- a/Tests/RunCMake/Framework/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Framework/RunCMakeTest.cmake
@@ -15,8 +15,10 @@ function(framework_layout_test Name Toolchain Type)
run_cmake_command(${Name} ${CMAKE_COMMAND} --build .)
endfunction()
-framework_layout_test(iOSFrameworkLayout-build ios SHARED)
-framework_layout_test(iOSFrameworkLayout-build ios STATIC)
+if (NOT CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ framework_layout_test(iOSFrameworkLayout-build ios SHARED)
+ framework_layout_test(iOSFrameworkLayout-build ios STATIC)
+endif()
framework_layout_test(OSXFrameworkLayout-build osx SHARED)
framework_layout_test(OSXFrameworkLayout-build osx STATIC)
@@ -36,13 +38,17 @@ function(framework_type_test Toolchain Type UseProperty)
run_cmake_command(FrameworkType${Type}-build ${CMAKE_COMMAND} --build .)
endfunction()
-framework_type_test(ios SHARED NO)
-framework_type_test(ios STATIC NO)
+if (NOT CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ framework_type_test(ios SHARED NO)
+ framework_type_test(ios STATIC NO)
+endif()
framework_type_test(osx SHARED NO)
framework_type_test(osx STATIC NO)
-framework_type_test(ios SHARED YES)
-framework_type_test(ios STATIC YES)
+if (NOT CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ framework_type_test(ios SHARED YES)
+ framework_type_test(ios STATIC YES)
+endif()
framework_type_test(osx SHARED YES)
framework_type_test(osx STATIC YES)