summaryrefslogtreecommitdiff
path: root/CMake/DolphinToolchain.cmake
blob: fb08c68fec104555925cb167815074f54d38da75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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_HOST_SYSTEM_NAME} STREQUAL "Windows")
        if (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "AMD64")
            set(QT_HOST_PATH "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt6.8.3/x64")
        else()
            set(QT_HOST_PATH "${CMAKE_SOURCE_DIR}/Externals/Qt/Qt6.8.3/ARM64")
        endif()
    else()
        set(QT_HOST_PATH "/usr")
    endif()
endif()