set(ARCH "generic" CACHE STRING "Target architecture") set(VALID_ARCHS x86_64 arm64 generic) if(NOT ARCH IN_LIST VALID_ARCHS) message(FATAL_ERROR "Invalid ARCH='${ARCH}'. Valid: ${VALID_ARCHS}") endif() if(ARCH STREQUAL "generic") set(ENABLE_GENERIC "ON") else() set(CMAKE_SYSTEM_PROCESSOR "${ARCH}") endif() if (NOT DEFINED CMAKE_SYSTEM_NAME) if(EXISTS "${CMAKE_SYSROOT}/usr/include/linux") set(CMAKE_SYSTEM_NAME Linux) elseif(EXISTS "${CMAKE_SYSROOT}/Windows/System32") set(CMAKE_SYSTEM_NAME Windows) elseif(EXISTS "${CMAKE_SYSROOT}/System/Library") set(CMAKE_SYSTEM_NAME Darwin) elseif(EXISTS "${CMAKE_SYSROOT}/usr/include/osreldate.h") set(CMAKE_SYSTEM_NAME FreeBSD) elseif(EXISTS "${CMAKE_SYSROOT}/usr/include/c++/v1/__locale_dir/locale_base_api/openbsd.h") set(CMAKE_SYSTEM_NAME OpenBSD) elseif(EXISTS "${CMAKE_SYSROOT}/usr/include/dev/dm/netbsd-dm.h") set(CMAKE_SYSTEM_NAME NetBSD) elseif(EXISTS "${CMAKE_SYSROOT}/boot/system/develop") set(CMAKE_SYSTEM_NAME Haiku) else() message(WARNING "Cannot detect OS from sysroot '${CMAKE_SYSROOT}/'. Cross-compilation has been disabled.") endif() endif() set(CMAKE_FIND_ROOT_PATH "${CMAKE_SYSROOT}") set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) if(NOT QT_HOST_PATH) if(CMAKE_SYSTEM_NAME STREQUAL "Windows") if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "AMD64") set(QT_HOST_PATH "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt6.5.1/x64") else() set(QT_HOST_PATH "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt6.5.1/ARM64") endif() else() set(QT_HOST_PATH "/usr") endif() endif()