1
0
Fork 0
forked from lthn/blockchain

Fix quoting issues in CMake scripts and enhance OS/architecture detection logic

This commit is contained in:
snider 2025-10-06 17:34:55 +01:00
parent c5ebeeca06
commit eacc0a9f1c
3 changed files with 16 additions and 9 deletions

View file

@ -36,7 +36,7 @@ function(selective_clean_build_dir)
string(FIND "${item}" "${CMAKE_SOURCE_DIR}/build" is_prefixed)
if(is_prefixed EQUAL 0)
message(STATUS "Removing: ${item}")
if(IS_DIRECTORY ${item})
if(IS_DIRECTORY "${item}")
file(REMOVE_RECURSE "${item}")
else()
file(REMOVE "${item}")

View file

@ -18,11 +18,11 @@ if(NOT CMAKE_BINARY_DIR)
set(CMAKE_BINARY_DIR "${CONAN_INSTALL_DIR}")
endif()
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
set(CONAN_EXECUTABLE "${CONAN_INSTALL_DIR}/bin/conan.exe")
set(CONAN_INSTALL_DIR "${CMAKE_SOURCE_DIR}/build/bin")
set(CONAN_EXECUTABLE "${CONAN_INSTALL_DIR}/bin/conan.exe")
else ()
set(CONAN_EXECUTABLE "${CONAN_INSTALL_DIR}/bin/conan")
set(CONAN_INSTALL_DIR "${CMAKE_SOURCE_DIR}/build")
set(CONAN_EXECUTABLE "${CONAN_INSTALL_DIR}/bin/conan")
endif ()
# Check if Conan is already installed
if(NOT EXISTS "${CONAN_EXECUTABLE}")
@ -30,10 +30,17 @@ if(NOT EXISTS "${CONAN_EXECUTABLE}")
file(MAKE_DIRECTORY "${CONAN_INSTALL_DIR}")
# Determine the processor architecture, with a fallback
if(CMAKE_HOST_SYSTEM_PROCESSOR)
set(HOST_PROCESSOR ${CMAKE_HOST_SYSTEM_PROCESSOR})
else()
set(HOST_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR})
endif()
# Detect the operating system and architecture
message(STATUS "Detecting OS and architecture: ${CMAKE_HOST_SYSTEM_PROCESSOR} on ${CMAKE_HOST_SYSTEM_NAME}")
message(STATUS "Detecting OS and architecture: ${HOST_PROCESSOR} on ${CMAKE_HOST_SYSTEM_NAME}")
if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64")
if(HOST_PROCESSOR MATCHES "arm64")
set(CONAN_URL ${CONAN_URL_MACOS_ARM})
set(CONAN_ARCHIVE_TYPE "tgz")
else()
@ -41,7 +48,7 @@ if(NOT EXISTS "${CONAN_EXECUTABLE}")
set(CONAN_ARCHIVE_TYPE "tgz")
endif()
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows")
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "ARM64")
if(HOST_PROCESSOR MATCHES "ARM64")
set(CONAN_URL ${CONAN_URL_WINDOWS_ARM64})
set(CONAN_ARCHIVE_TYPE "zip")
else()
@ -49,7 +56,7 @@ if(NOT EXISTS "${CONAN_EXECUTABLE}")
set(CONAN_ARCHIVE_TYPE "zip")
endif()
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64")
if(HOST_PROCESSOR MATCHES "aarch64|arm64|ARM64")
set(CONAN_URL ${CONAN_URL_LINUX_AARCH64})
set(CONAN_ARCHIVE_TYPE "tgz")
else()

View file

@ -572,9 +572,9 @@ macro(conan_provide_dependency method package_name)
endif ()
if(NOT EXISTS ${CONAN_COMMAND})
message(STATUS "CMake-Conan: Local conan not found, attempting to download it.")
execute_process(COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_LIST_DIR}/GetConan.cmake
execute_process(COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_LIST_DIR}/GetConan.cmake"
RESULT_VARIABLE result
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}")
if(NOT result EQUAL 0)
message(FATAL_ERROR "Failed to download conan.")
endif()