diff --git a/CMakeLists.txt b/CMakeLists.txt index e2c28b25..0ce75443 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,34 +1,39 @@ -cmake_minimum_required(VERSION 3.15.1) +if(POLICY CMP0028) + cmake_policy(SET CMP0028 NEW) +endif() -project(SwiftTSC LANGUAGES C Swift) +cmake_minimum_required(VERSION 3.19) -set(SWIFT_VERSION 5) -set(CMAKE_Swift_LANGUAGE_VERSION ${SWIFT_VERSION}) -if(CMAKE_VERSION VERSION_LESS 3.16) - add_compile_options($<$:-swift-version$${SWIFT_VERSION}>) - # Workaround for CMake 3.15 which doesn't link libraries properly on Windows - set(CMAKE_LINK_LIBRARY_FLAG "-l") -endif() +project(SwiftTSC LANGUAGES C Swift) +set(CMAKE_Swift_LANGUAGE_VERSION 5) set(CMAKE_Swift_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/swift) -if(CMAKE_VERSION VERSION_LESS 3.16 AND CMAKE_SYSTEM_NAME STREQUAL Windows) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) -else() - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -endif() +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_DISABLE_IN_SOURCE_BUILD YES) option(BUILD_SHARED_LIBS "Build shared libraries by default" YES) +# Toolchain bundled libraries find_package(dispatch QUIET) find_package(Foundation QUIET) + +# System Packages find_package(Threads QUIET) -find_package(SwiftSystem CONFIG REQUIRED) + +# Package Dependencies +find_package(SwiftSystem CONFIG) +if(NOT SwiftSystem_FOUND) + include(FetchContent) + message("-- Vendoring SwiftSystem") + FetchContent_Declare(SwiftSystem + GIT_REPOSITORY https://github.com/apple/swift-system + GIT_TAG 1.1.1) + FetchContent_MakeAvailable(SwiftSystem) +endif() add_subdirectory(Sources) add_subdirectory(cmake/modules) diff --git a/Sources/TSCBasic/CMakeLists.txt b/Sources/TSCBasic/CMakeLists.txt index 1217bdfc..97d70b51 100644 --- a/Sources/TSCBasic/CMakeLists.txt +++ b/Sources/TSCBasic/CMakeLists.txt @@ -6,6 +6,10 @@ # See http://swift.org/LICENSE.txt for license information # See http://swift.org/CONTRIBUTORS.txt for Swift project authors +if(NOT SwiftSystem_FOUND) + add_library(SwiftSystem::SystemPackage ALIAS SystemPackage) +endif() + add_library(TSCBasic Await.swift ByteString.swift