forked from lthn/blockchain
Fix quoting issues in CMake scripts and enhance OS/architecture detection logic
This commit is contained in:
parent
c5ebeeca06
commit
eacc0a9f1c
3 changed files with 16 additions and 9 deletions
|
|
@ -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}")
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue