From a91183f93a4a8e79fff2fe07aa8d1eaf8f5befa2 Mon Sep 17 00:00:00 2001 From: Tamas Petz Date: Tue, 23 Jan 2024 08:48:37 +0100 Subject: [PATCH] [NFC] Improve feature check for SME2 In the original code when INTRINSICCV_ENABLE_SME2 was OFF and clang compiler version was 18 or newer, the message was printed that the compiler did not support SME2. --- intrinsiccv/CMakeLists.txt | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/intrinsiccv/CMakeLists.txt b/intrinsiccv/CMakeLists.txt index 1bd532bf9..6f5b6c55d 100644 --- a/intrinsiccv/CMakeLists.txt +++ b/intrinsiccv/CMakeLists.txt @@ -17,6 +17,7 @@ if (INTRINSICCV_ENABLE_SVE2 AND INTRINSICCV_ENABLE_SVE2_SELECTIVELY) message(FATAL_ERROR "[IntrinsicCV] INTRINSICCV_ENABLE_SVE2 and INTRINSICCV_ENABLE_SVE2_SELECTIVELY cannot be set at the same time") endif() +# Compiler feature check for SVE2. set(INTRINSICCV_BUILD_SVE2 OFF) if (INTRINSICCV_ENABLE_SVE2 OR INTRINSICCV_ENABLE_SVE2_SELECTIVELY) check_cxx_compiler_flag("-march=armv8-a+sve2" INTRINSICCV_COMPILER_SUPPORTS_SVE2) @@ -27,22 +28,21 @@ if (INTRINSICCV_ENABLE_SVE2 OR INTRINSICCV_ENABLE_SVE2_SELECTIVELY) endif() endif() -# Assuming clang -if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18) - set(INTRINSICCV_COMPILER_SUPPORTS_SME2 OFF) -else() - set(INTRINSICCV_COMPILER_SUPPORTS_SME2 ON) -endif() - -if (INTRINSICCV_COMPILER_SUPPORTS_SME2 AND INTRINSICCV_ENABLE_SME2) - check_cxx_compiler_flag("-march=armv9-a+sve2+sme2" INTRINSICCV_COMPILER_SUPPORTS_SME2) -endif() - +# Compiler feature check for SME2. set(INTRINSICCV_BUILD_SME2 OFF) -if (INTRINSICCV_COMPILER_SUPPORTS_SME2 AND INTRINSICCV_ENABLE_SME2) - set(INTRINSICCV_BUILD_SME2 ON) -else() - message(STATUS "[IntrinsicCV] Compiler does not support SME2") +if (INTRINSICCV_ENABLE_SME2) + # Assuming clang + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 18) + set(INTRINSICCV_COMPILER_SUPPORTS_SME2 OFF) + else() + check_cxx_compiler_flag("-march=armv9-a+sme2" INTRINSICCV_COMPILER_SUPPORTS_SME2) + endif() + + if (INTRINSICCV_COMPILER_SUPPORTS_SME2) + set(INTRINSICCV_BUILD_SME2 ON) + else() + message(STATUS "[IntrinsicCV] Compiler does not support SME2") + endif() endif() file(GLOB INTRINSICCV_API_SOURCES -- GitLab