Files
CMake/Tests/RunCMake/XcodeProject-Embed/EmbedFrameworksFlagsOffAndOn.cmake
Aleksei Sapitskii 0282429c5a Xcode: Fix XCODE_EMBED_FRAMEWORKS when settings differ across targets
In commit 5651901c54 (Xcode: add support for embedding frameworks,
2020-10-24, v3.20.0-rc1~402^2) we incorrectly reused `PBXBuildFile`
instances when the same framework is embedded in multiple targets,
causing target-specific settings to conflict.

Fixes: #26438
2024-12-06 09:22:07 -05:00

28 lines
975 B
CMake

set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO")
try_compile(TESTLIB_FRAMEWORK_COMPILED
PROJECT TestLib
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/TestLib
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/TestLib
)
if(NOT TESTLIB_FRAMEWORK_COMPILED)
message(FATAL_ERROR "TestLib.framework did not compile")
endif()
set(TestLib_framework "${CMAKE_CURRENT_BINARY_DIR}/TestLib/Debug/TestLib.framework")
if(NOT EXISTS "${TestLib_framework}/Headers/TestLib.h")
message(FATAL_ERROR "TestLib.framework did not build with header")
endif()
add_executable(app1 MACOSX_BUNDLE main.m)
add_executable(app2 MACOSX_BUNDLE main.m)
set_target_properties(app1 PROPERTIES
XCODE_EMBED_FRAMEWORKS "${CMAKE_CURRENT_BINARY_DIR}/TestLib/Debug/TestLib.framework"
XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY OFF
)
set_target_properties(app2 PROPERTIES
XCODE_EMBED_FRAMEWORKS "${CMAKE_CURRENT_BINARY_DIR}/TestLib/Debug/TestLib.framework"
XCODE_EMBED_FRAMEWORKS_REMOVE_HEADERS_ON_COPY ON
)