Skip to content

Commit

Permalink
Rename the Swift XCTest target SwiftXCTest.
Browse files Browse the repository at this point in the history
  • Loading branch information
dabrahams committed Feb 26, 2024
1 parent b50993b commit 470d98c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 16 deletions.
2 changes: 1 addition & 1 deletion Tests/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
find_package(SwiftXCTest REQUIRED)

add_library(XCTestImporter XCTestImporter.swift)
target_link_libraries(XCTestImporter XCTest)
target_link_libraries(XCTestImporter SwiftXCTest)

add_library(DummyTestee STATIC Dummy.swift)

Expand Down
28 changes: 13 additions & 15 deletions cmake/modules/FindSwiftXCTest.cmake
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
add_library(SwiftXCTest INTERFACE)
target_link_libraries(SwiftXCTest INTERFACE XCTest)

if(APPLE)

find_package(XCTest REQUIRED)
Expand All @@ -16,14 +19,13 @@ if(APPLE)
message(FATAL_ERROR "failed to find platform developer directory in ${CMAKE_Swift_IMPLICIT_INCLUDE_DIRECTORIES}")
endif()

target_include_directories(XCTest INTERFACE ${platform_developer}/usr/lib/)
target_link_libraries(XCTest INTERFACE ${XCTest_LIBRARIES})
target_include_directories(SwiftXCTest INTERFACE ${platform_developer}/usr/lib/)
target_link_libraries(SwiftXCTest INTERFACE ${XCTest_LIBRARIES})
set_target_properties(XCTest PROPERTIES
IMPORTED_LOCATION ${platform_developer}/usr/lib/libXCTestSwiftSupport.dylib)

elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")

add_library(XCTest SHARED IMPORTED)
#
# Logic lifted from https://github.com/apple/swift-package-manager/blob/e10ff906c/Sources/PackageModel/UserToolchain.swift#L361-L447 with thanks to @compnerd.
#
Expand Down Expand Up @@ -53,20 +55,20 @@ elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")

cmake_path(APPEND platform Developer Library XCTest-${xctestVersion} OUTPUT_VARIABLE installation)

target_include_directories(XCTest INTERFACE "${installation}/usr/lib/swift/windows")
target_include_directories(SwiftXCTest INTERFACE "${installation}/usr/lib/swift/windows")

# Migration Path
#
# Older Swift (<=5.7) installations placed the XCTest Swift module into the architecture specified
# directory in order to match the SDK setup.
target_include_directories(XCTest INTERFACE
target_include_directories(SwiftXCTest INTERFACE
"${installation}/usr/lib/swift/windows/${archName}"
)
target_link_directories(XCTest INTERFACE
target_link_directories(SwiftXCTest INTERFACE
"${installation}/usr/lib/swift/windows/${archName}"
)

set_target_properties(XCTest PROPERTIES
set_target_properties(SwiftXCTest PROPERTIES
# There's no analogy for this in the Swift code but CMake insists on it.
IMPORTED_IMPLIB "${installation}/usr/lib/swift/windows/${archName}/XCTest.lib"

Expand All @@ -82,16 +84,12 @@ elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows")
set(implib "${installation}/usr/lib/swift/windows/XCTest.lib")
if(EXISTS ${implib})
cmake_path(GET implib PARENT_PATH p)
target_link_directories(XCTest INTERFACE ${p})
target_link_directories(SwiftXCTest INTERFACE ${p})
endif()

else()

# I'm not sure this has any effect
find_package(XCTest CONFIG QUIET)

endif()


# add_swift_xctest(
# <name> <testee>
# <swift_source> ...
Expand All @@ -113,7 +111,7 @@ function(add_swift_xctest test_target testee)
if(APPLE)

xctest_add_bundle(${test_target} ${testee} ${sources})
target_link_libraries(${test_target} PRIVATE XCTest ${dependencies})
target_link_libraries(${test_target} PRIVATE SwiftXCTest ${dependencies})
xctest_add_test(XCTest.${test_target} ${test_target})

else()
Expand All @@ -134,7 +132,7 @@ function(add_swift_xctest test_target testee)

add_executable(${test_target} ${test_main} ${sources})

target_link_libraries(${test_target} PRIVATE ${testee} XCTest ${dependencies})
target_link_libraries(${test_target} PRIVATE ${testee} SwiftXCTest ${dependencies})

add_test(NAME ${test_target}
COMMAND ${test_target})
Expand Down

0 comments on commit 470d98c

Please sign in to comment.