From 6cee4c6a8b83487af3144446ca156476a941c155 Mon Sep 17 00:00:00 2001 From: Marc Chevrier Date: Sun, 17 Jan 2021 15:31:52 +0100 Subject: Restore support for cross-compiling CMake itself In commit eb583b0a66 (cmake_path command: path management, 2020-07-23, v3.19.0-rc1~216^2~1) we added a `try_run`. In cross-compilation mode, C++ features tests must avoid running tests if there is no emulator defined. --- Source/Checks/cm_cxx_features.cmake | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Source/Checks/cm_cxx_features.cmake b/Source/Checks/cm_cxx_features.cmake index 663d89a..7917d41 100644 --- a/Source/Checks/cm_cxx_features.cmake +++ b/Source/Checks/cm_cxx_features.cmake @@ -81,7 +81,13 @@ if(CMake_HAVE_CXX_MAKE_UNIQUE) endif() cm_check_cxx_feature(unique_ptr) if (NOT CMAKE_CXX_STANDARD LESS "17") - cm_check_cxx_feature(filesystem TRY_RUN) + if (NOT CMAKE_CROSSCOMPILING OR CMAKE_CROSSCOMPILING_EMULATOR) + cm_check_cxx_feature(filesystem TRY_RUN) + else() + # In cross-compiling mode, it is not possible to check implementation bugs + # so rely only on conformance done by compilation + cm_check_cxx_feature(filesystem) + endif() else() set(CMake_HAVE_CXX_FILESYSTEM FALSE) endif() -- cgit v0.12