From 88c34b39a82cddd9e93892c417ed5778a0df45f1 Mon Sep 17 00:00:00 2001 From: Fabrice de Gans Date: Mon, 21 Apr 2025 18:12:30 +0200 Subject: [PATCH] Set CMP0157 to OLD for Android There is no early swift-driver build for the Windows toolchain. As a result, libdispatch fails to build properly when CMP0157 is set to NEW due to object files not being generated. This sets CMP0157 to OLD when targetting Android until the early swift-driver is available on Windows. --- CMakeLists.txt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 527c4bc99..1d99e0379 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,17 @@ - cmake_minimum_required(VERSION 3.26...3.29) +if(POLICY CMP0157) + if(CMAKE_HOST_SYSTEM_NAME STREQUAL Windows AND CMAKE_SYSTEM_NAME STREQUAL Android) + # CMP0157 causes libdispatch to fail to compile when targetting + # Android on Windows due to swift-driver not being present during the + # toolchain build. Disable it for now. + cmake_policy(SET CMP0157 OLD) + else() + # New Swift build model: improved incremental build performance and LSP support + cmake_policy(SET CMP0157 NEW) + endif() +endif() + list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) project(dispatch