mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
Xcode: Add tests for OBJECT library per target OSX_ARCHITECTURES
Added test to cover handling of when `CMAKE_OSX_ARCHITECTURES` differs from OBJECT library target's `OSX_ARCHITECTURES`: TargetOverrideSingleArch: - When `CMAKE_OSX_ARCHITECTURES` is set to multiple archs, - But OBJECT library's `OSX_ARCHITECTURES` is set to single - Assert that OBJECT library target "`HasKnownObjectFileLocation`" and is installable TargetOverrideMultiArch: - When `CMAKE_OSX_ARCHITECTURES` is set to single arch, - But OBJECT library's `OSX_ARCHITECTURES` is set to multiple - Assert that OBJECT library target does not "`HasKnownObjectFileLocation`" and hence not installable
This commit is contained in:
@@ -352,6 +352,9 @@ if(MSVC)
|
||||
add_RunCMake_test(MSVCRuntimeTypeInfo)
|
||||
add_RunCMake_test(MSVCWarningFlags)
|
||||
endif()
|
||||
if(XCODE_VERSION)
|
||||
set(ObjectLibrary_ARGS -DXCODE_VERSION=${XCODE_VERSION})
|
||||
endif()
|
||||
add_RunCMake_test(ObjectLibrary)
|
||||
add_RunCMake_test(ParseImplicitIncludeInfo)
|
||||
add_RunCMake_test(ParseImplicitLinkInfo)
|
||||
|
||||
@@ -8,12 +8,21 @@ run_cmake(BadObjSource2)
|
||||
if(RunCMake_GENERATOR STREQUAL "Xcode" AND "$ENV{CMAKE_OSX_ARCHITECTURES}" MATCHES "[;$]")
|
||||
run_cmake(ImportMultiArch)
|
||||
run_cmake(InstallNotSupported)
|
||||
|
||||
set(osx_archs $ENV{CMAKE_OSX_ARCHITECTURES})
|
||||
list(GET osx_archs 0 osx_arch)
|
||||
run_cmake_with_options(TargetOverrideSingleArch -Dosx_arch=${osx_arch})
|
||||
else()
|
||||
run_cmake(Import)
|
||||
run_cmake(Install)
|
||||
run_cmake(InstallLinkedObj1)
|
||||
run_cmake(InstallLinkedObj2)
|
||||
|
||||
if(RunCMake_GENERATOR STREQUAL "Xcode" AND XCODE_VERSION VERSION_GREATER_EQUAL 13)
|
||||
run_cmake(TargetOverrideMultiArch)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
run_cmake(Export)
|
||||
|
||||
function (run_object_lib_build name)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,5 @@
|
||||
CMake Error at TargetOverrideMultiArch.cmake:[0-9]+ \(install\):
|
||||
install TARGETS given OBJECT library "A" whose objects may not be installed
|
||||
under Xcode with multiple architectures.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)
|
||||
@@ -0,0 +1,3 @@
|
||||
add_library(A OBJECT a.c)
|
||||
set_target_properties(A PROPERTIES OSX_ARCHITECTURES "x86_64;arm64")
|
||||
install(TARGETS A DESTINATION lib)
|
||||
@@ -0,0 +1,3 @@
|
||||
add_library(A OBJECT a.c)
|
||||
set_target_properties(A PROPERTIES OSX_ARCHITECTURES ${osx_arch})
|
||||
install(TARGETS A DESTINATION lib)
|
||||
Reference in New Issue
Block a user