From 14d5589032d5330a3d8716a9f59b85951514412d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 16 Nov 2022 08:16:46 +0100 Subject: [PATCH] OtherTests.cmake: check for cross-compile, not for toolchain Build systems like vcpkg alway sets `CMAKE_TOOLCHAIN_FILE` so it should not be used as a sign that this is a cross-compile. Also indented the function correctly. Reported-by: Philip Chan Fixes #9921 Closes #9923 --- CMake/OtherTests.cmake | 80 +++++++++++++++++++++--------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/CMake/OtherTests.cmake b/CMake/OtherTests.cmake index b3031f749..ed8d28a21 100644 --- a/CMake/OtherTests.cmake +++ b/CMake/OtherTests.cmake @@ -85,51 +85,51 @@ endif() unset(CMAKE_TRY_COMPILE_TARGET_TYPE) -if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) +if(NOT CMAKE_CROSSCOMPILING) if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "iOS") - # only try this on non-apple platforms + # only try this on non-apple platforms - # if not cross-compilation... - include(CheckCSourceRuns) - set(CMAKE_REQUIRED_FLAGS "") - if(HAVE_SYS_POLL_H) - set(CMAKE_REQUIRED_FLAGS "-DHAVE_SYS_POLL_H") - elseif(HAVE_POLL_H) - set(CMAKE_REQUIRED_FLAGS "-DHAVE_POLL_H") - endif() - check_c_source_runs(" - #include - #include + # if not cross-compilation... + include(CheckCSourceRuns) + set(CMAKE_REQUIRED_FLAGS "") + if(HAVE_SYS_POLL_H) + set(CMAKE_REQUIRED_FLAGS "-DHAVE_SYS_POLL_H") + elseif(HAVE_POLL_H) + set(CMAKE_REQUIRED_FLAGS "-DHAVE_POLL_H") + endif() + check_c_source_runs(" + #include + #include - #ifdef HAVE_SYS_POLL_H - # include - #elif HAVE_POLL_H - # include - #endif + #ifdef HAVE_SYS_POLL_H + # include + #elif HAVE_POLL_H + # include + #endif - int main(void) - { - if(0 != poll(0, 0, 10)) { - return 1; /* fail */ - } - else { - /* detect the 10.12 poll() breakage */ - struct timeval before, after; - int rc; - size_t us; - - gettimeofday(&before, NULL); - rc = poll(NULL, 0, 500); - gettimeofday(&after, NULL); - - us = (after.tv_sec - before.tv_sec) * 1000000 + - (after.tv_usec - before.tv_usec); - - if(us < 400000) { - return 1; + int main(void) + { + if(0 != poll(0, 0, 10)) { + return 1; /* fail */ } - } - return 0; + else { + /* detect the 10.12 poll() breakage */ + struct timeval before, after; + int rc; + size_t us; + + gettimeofday(&before, NULL); + rc = poll(NULL, 0, 500); + gettimeofday(&after, NULL); + + us = (after.tv_sec - before.tv_sec) * 1000000 + + (after.tv_usec - before.tv_usec); + + if(us < 400000) { + return 1; + } + } + return 0; }" HAVE_POLL_FINE) endif() endif()