From a5796a3769bb32dc5989e26911ea89e6856333c6 Mon Sep 17 00:00:00 2001 From: Saleem Abdulrasool Date: Thu, 22 May 2025 15:14:54 -0700 Subject: [PATCH] build: conditionaly add Foundation dependency edge When building without `-DFoundation_DIR=...`, we should not wire up a dependency on Foundation and instead rely on autolinking and the driver to collude to resolve the linkage. Failure to do so will instill a rogue `-lFoundation.lib` when linking on Windows. --- Sources/ArgumentParser/CMakeLists.txt | 5 ++++- Sources/ArgumentParserTestHelpers/CMakeLists.txt | 12 +++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Sources/ArgumentParser/CMakeLists.txt b/Sources/ArgumentParser/CMakeLists.txt index 6b0c1ed42..25022c0fa 100644 --- a/Sources/ArgumentParser/CMakeLists.txt +++ b/Sources/ArgumentParser/CMakeLists.txt @@ -59,8 +59,11 @@ set_target_properties(ArgumentParser PROPERTIES target_compile_options(ArgumentParser PRIVATE $<$:-enable-testing>) target_link_libraries(ArgumentParser PRIVATE - $<$>:Foundation> ArgumentParserToolInfo) +if(Foundation_FOUND) + target_link_libraries(ArgumentParser PRIVATE + Foundation) +endif() _install_target(ArgumentParser) diff --git a/Sources/ArgumentParserTestHelpers/CMakeLists.txt b/Sources/ArgumentParserTestHelpers/CMakeLists.txt index 3d862f7d7..2af1eb833 100644 --- a/Sources/ArgumentParserTestHelpers/CMakeLists.txt +++ b/Sources/ArgumentParserTestHelpers/CMakeLists.txt @@ -5,6 +5,12 @@ set_target_properties(ArgumentParserTestHelpers PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_Swift_MODULE_DIRECTORY}) target_link_libraries(ArgumentParserTestHelpers PUBLIC ArgumentParser - ArgumentParserToolInfo - XCTest - Foundation) + ArgumentParserToolInfo) +if(Foundation_FOUND) + target_link_libraries(ArgumentParserTestHelpers PUBLIC + Foundation) +endif() +if(XCTest_Found) + target_link_libraries(ArgumentParserTestHelpers PUBLIC + XCTest) +endif()