Tests: Add mixed Swift+CXX source test case

This test ensures we can configure and build mixed source binaries. The
test configures, but fails to verify due to multiple targets emitting
the `lib.c.o` and `lib.cpp.o` outputs. Both the clang build step and the
swift link step report that they emit the `lib.c.o` and `lib.cpp.o`
outputs. The `.o`'s are emitted by clang, not by swift.
This commit is contained in:
Evan Wilde 2022-09-12 15:15:24 -07:00
parent 399343486f
commit f6ff19cc9d
6 changed files with 23 additions and 0 deletions

View File

@ -394,6 +394,9 @@ if(BUILD_TESTING)
if(CMake_TEST_XCODE_SWIFT)
ADD_TEST_MACRO(SwiftMix SwiftMix)
endif()
if(CMAKE_Swift_COMPILER_VERSION VERSION_GREATER_EQUAL 5.1)
ADD_TEST_MACRO(SwiftMixLib Swifty)
endif()
endif()
if(CMAKE_Fortran_COMPILER)
ADD_TEST_MACRO(FortranOnly FortranOnly)

View File

@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 3.24)
project(SwiftMixLib C CXX Swift)
add_library(SwiftMixedLib lib.c lib.cpp lib.swift)
add_executable(Swifty main.swift)
target_link_libraries(Swifty PUBLIC SwiftMixedLib)

4
Tests/SwiftMixLib/lib.c Normal file
View File

@ -0,0 +1,4 @@
int add_int(int a, int b)
{
return a + b;
}

View File

@ -0,0 +1,4 @@
int add(int a, int b)
{
return a + b;
}

View File

@ -0,0 +1,3 @@
public func add(a: Int, b: Int) -> Int {
a + b
}

View File

@ -0,0 +1,3 @@
import SwiftMixedLib
print(add(a: 1, b: 2))