From 13975d9def7e4c1f1417340f322b8ac4f90afdbb Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 23 Aug 2024 16:55:46 +0200 Subject: [PATCH] Fix locating the slint-compiler.exe on cmake cross-compiled packages When cross-compiling CMAKE_EXECUTABLE_SUFFIX may not be set to .exe even though the host is Windows, because this variable always refers to the target. This is a missing feature in cmake, so work around it for now. See also https://gitlab.kitware.com/cmake/cmake/-/issues/17553 I made a similar workaround in Corrosion long time ago with commit b8a6b26a0f2d526e0492df9fd88c0495b0b8a64f The target prop line is duplicated in favor of introducing a variable, that would otherwise be at risk of being visible in the user scope. --- api/cpp/cmake/SlintConfig.cmake.in | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api/cpp/cmake/SlintConfig.cmake.in b/api/cpp/cmake/SlintConfig.cmake.in index 5e21178aa..e9aad9d74 100644 --- a/api/cpp/cmake/SlintConfig.cmake.in +++ b/api/cpp/cmake/SlintConfig.cmake.in @@ -22,7 +22,11 @@ if (SLINT_COMPILER) include("${CMAKE_CURRENT_LIST_DIR}/SlintMacro.cmake") elseif (@SLINT_FEATURE_COMPILER@) add_executable(Slint::slint-compiler IMPORTED GLOBAL) - set_target_properties(Slint::slint-compiler PROPERTIES IMPORTED_LOCATION "${_IMPORT_PREFIX}/@CMAKE_INSTALL_BINDIR@/slint-compiler${CMAKE_EXECUTABLE_SUFFIX}") + if(CMAKE_HOST_WIN32) + set_target_properties(Slint::slint-compiler PROPERTIES IMPORTED_LOCATION "${_IMPORT_PREFIX}/@CMAKE_INSTALL_BINDIR@/slint-compiler.exe") + else() + set_target_properties(Slint::slint-compiler PROPERTIES IMPORTED_LOCATION "${_IMPORT_PREFIX}/@CMAKE_INSTALL_BINDIR@/slint-compiler") + endif() include("${CMAKE_CURRENT_LIST_DIR}/SlintMacro.cmake") endif()