Assertion when Swift library links to INTERFACE library (Xcode generator)
Here is minimal example how to reproduce the issue:
cmake_minimum_required (VERSION 3.18)
project(IssueWithSwiftAndInterface)
enable_language (Swift)
add_library (interface_lib INTERFACE)
target_include_directories(interface_lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
file(TOUCH "${CMAKE_CURRENT_SOURCE_DIR}/dummy.swift")
add_library (shared_swift_lib SHARED "${CMAKE_CURRENT_SOURCE_DIR}/dummy.swift")
target_link_libraries (shared_swift_lib PRIVATE interface_lib)
When I run debug version of CMake to generate solution for Xcode, I get assertion:
# build > cmake -GXcode ..
-- The C compiler identification is AppleClang 11.0.3.11030032
-- The CXX compiler identification is AppleClang 11.0.3.11030032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- The Swift compiler identification is Apple 5.2.4
-- Check for working Swift compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
-- Check for working Swift compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift - works
-- Configuring done
-- Generating done
Assertion failed: (this->GetType() != cmStateEnums::INTERFACE_LIBRARY), function GetSourceFilePaths, file ../Source/cmGeneratorTarget.cxx, line 1522.
[1] 4403 abort cmake -GXcode ..