support more identification flags

This commit is contained in:
Daniel Wolf 2021-03-09 19:22:57 -05:00
parent 7ad73da647
commit f08eb0674a
Signed by: nephatrine
GPG Key ID: F402AF4822FB01F5
1 changed files with 111 additions and 21 deletions

View File

@ -105,19 +105,19 @@ function(nx_identify_architecture)
set(NX_TARGET_BITS 0)
endif()
set(NX_ARCHITECTURES_AARCH64 "ARM64")
set(NX_ARCHITECTURES_AMD64 "AMD64" "X64" "X86_64")
set(NX_ARCHITECTURES_ARM "ARM")
set(NX_ARCHITECTURES_IA32 "WIN32")
set(NX_ARCHITECTURES_AMD64 "AMD64" "X64" "X86_64" "X86_64H")
set(NX_ARCHITECTURES_ARM64 "AARCH64" "ARM64")
set(NX_ARCHITECTURES_ARMV7 "ARM")
set(NX_ARCHITECTURES_IA32 "I386" "I486" "I586" "I686" "IA32" "WIN32" "X86")
set(NX_HOST_ARCHITECTURE_AARCH64 OFF)
set(NX_HOST_ARCHITECTURE_AMD64 OFF)
set(NX_HOST_ARCHITECTURE_ARM OFF)
set(NX_HOST_ARCHITECTURE_ARM64 OFF)
set(NX_HOST_ARCHITECTURE_ARMV7 OFF)
set(NX_HOST_ARCHITECTURE_IA32 OFF)
set(NX_TARGET_ARCHITECTURE_AARCH64 OFF)
set(NX_TARGET_ARCHITECTURE_AMD64 OFF)
set(NX_TARGET_ARCHITECTURE_ARM OFF)
set(NX_TARGET_ARCHITECTURE_ARM64 OFF)
set(NX_TARGET_ARCHITECTURE_ARMV7 OFF)
set(NX_TARGET_ARCHITECTURE_IA32 OFF)
set(NX_TARGET_ARCHITECTURE_CROSS OFF)
@ -126,13 +126,13 @@ function(nx_identify_architecture)
list(
APPEND
_NX_PROPAGATE_SET
"NX_HOST_ARCHITECTURE_AARCH64"
"NX_HOST_ARCHITECTURE_ARM"
"NX_HOST_ARCHITECTURE_AMD64"
"NX_HOST_ARCHITECTURE_ARM64"
"NX_HOST_ARCHITECTURE_ARMV7"
"NX_HOST_ARCHITECTURE_IA32"
"NX_TARGET_ARCHITECTURE_AARCH64"
"NX_TARGET_ARCHITECTURE_ARM"
"NX_TARGET_ARCHITECTURE_AMD64"
"NX_TARGET_ARCHITECTURE_ARM64"
"NX_TARGET_ARCHITECTURE_ARMV7"
"NX_TARGET_ARCHITECTURE_IA32"
"NX_TARGET_ARCHITECTURE_CROSS"
"NX_TARGET_ARCHITECTURE_NATIVE"
@ -140,19 +140,20 @@ function(nx_identify_architecture)
"NX_TARGET_ARCHITECTURE_MACRO")
list(APPEND _NX_PROPAGATE_SORT "NX_TARGET_ARCHITECTURE_MACRO")
if("${NX_HOST_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_AARCH64)
set(NX_HOST_ARCHITECTURE_AARCH64 ON)
elseif("${NX_HOST_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_AMD64)
if("${NX_HOST_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_AMD64)
set(NX_HOST_ARCHITECTURE_AMD64 ON)
elseif("${NX_HOST_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_ARM)
set(NX_HOST_ARCHITECTURE_ARM ON)
elseif("${NX_HOST_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_AARCH64)
set(NX_HOST_ARCHITECTURE_AARCH64 ON)
elseif("${NX_HOST_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_ARM64)
set(NX_HOST_ARCHITECTURE_ARM64 ON)
elseif("${NX_HOST_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_ARMV7)
set(NX_HOST_ARCHITECTURE_ARMV7 ON)
elseif("${NX_HOST_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_IA32)
set(NX_HOST_ARCHITECTURE_IA32 ON)
else()
message(WARNING "Unknown Host Architecture ('${NX_HOST_ARCHITECTURE}')")
endif()
list(APPEND NX_ARCHITECTURES_IA32 ${NX_ARCHITECTURES_AMD64})
list(APPEND NX_ARCHITECTURES_ARMV7 ${NX_ARCHITECTURES_ARM64})
if("${NX_TARGET_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_AMD64 AND NX_TARGET_BITS EQUAL 64)
set(NX_TARGET_ARCHITECTURE_STRING "AMD64")
@ -160,6 +161,18 @@ function(nx_identify_architecture)
if(NX_HOST_ARCHITECTURE_AMD64)
set(NX_TARGET_ARCHITECTURE_NATIVE ON)
endif()
elseif("${NX_TARGET_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_ARM64 AND NX_TARGET_BITS EQUAL 64)
set(NX_TARGET_ARCHITECTURE_STRING "ARM64")
set(NX_TARGET_ARCHITECTURE_ARM64 ON)
if(NX_HOST_ARCHITECTURE_ARM64)
set(NX_TARGET_ARCHITECTURE_NATIVE ON)
endif()
elseif("${NX_TARGET_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_ARMV7 AND NX_TARGET_BITS EQUAL 32)
set(NX_TARGET_ARCHITECTURE_STRING "ARMv7")
set(NX_TARGET_ARCHITECTURE_ARMV7 ON)
if(NX_HOST_ARCHITECTURE_ARMV7 OR NX_HOST_ARCHITECTURE_ARM64)
set(NX_TARGET_ARCHITECTURE_NATIVE ON)
endif()
elseif("${NX_TARGET_ARCHITECTURE}" IN_LIST NX_ARCHITECTURES_IA32 AND NX_TARGET_BITS EQUAL 32)
set(NX_TARGET_ARCHITECTURE_STRING "IA32")
set(NX_TARGET_ARCHITECTURE_IA32 ON)
@ -187,45 +200,118 @@ function(nx_identify_platform)
string(TOUPPER "${CMAKE_SYSTEM_NAME}" NX_TARGET_PLATFORM)
string(TOUPPER "${CMAKE_HOST_SYSTEM_NAME}" NX_HOST_PLATFORM)
set(NX_PLATFORMS_ANDROID "ANDROID")
set(NX_PLATFORMS_DARWIN "DARWIN")
set(NX_PLATFORMS_FREEBSD "FREEBSD")
set(NX_PLATFORMS_HAIKU "HAIKU")
set(NX_PLATFORMS_LINUX "LINUX")
set(NX_PLATFORMS_MSDOS "MSDOS")
set(NX_PLATFORMS_SOLARIS "SUNOS")
set(NX_PLATFORMS_WINDOWS "WINDOWS")
set(NX_HOST_PLATFORM_DARWIN OFF)
set(NX_HOST_PLATFORM_FREEBSD OFF)
set(NX_HOST_PLATFORM_HAIKU OFF)
set(NX_HOST_PLATFORM_LINUX OFF)
set(NX_HOST_PLATFORM_SOLARIS OFF)
set(NX_HOST_PLATFORM_WINDOWS OFF)
set(NX_TARGET_PLATFORM_ANDROID OFF)
set(NX_TARGET_PLATFORM_DARWIN OFF)
set(NX_TARGET_PLATFORM_FREEBSD OFF)
set(NX_TARGET_PLATFORM_HAIKU OFF)
set(NX_TARGET_PLATFORM_LINUX OFF)
set(NX_TARGET_PLATFORM_MSDOS OFF)
set(NX_TARGET_PLATFORM_SOLARIS OFF)
set(NX_TARGET_PLATFORM_WINDOWS OFF)
set(NX_TARGET_PLATFORM_CROSS OFF)
set(NX_TARGET_PLATFORM_NATIVE OFF)
set(NX_TARGET_PLATFORM_POSIX OFF)
list(
APPEND
_NX_PROPAGATE_SET
"NX_HOST_PLATFORM_DARWIN"
"NX_HOST_PLATFORM_FREEBSD"
"NX_HOST_PLATFORM_HAIKU"
"NX_HOST_PLATFORM_LINUX"
"NX_HOST_PLATFORM_SOLARIS"
"NX_HOST_PLATFORM_WINDOWS"
"NX_TARGET_PLATFORM_ANDROID"
"NX_TARGET_PLATFORM_DARWIN"
"NX_TARGET_PLATFORM_FREEBSD"
"NX_TARGET_PLATFORM_HAIKU"
"NX_TARGET_PLATFORM_LINUX"
"NX_TARGET_PLATFORM_MSDOS"
"NX_TARGET_PLATFORM_SOLARIS"
"NX_TARGET_PLATFORM_WINDOWS"
"NX_TARGET_PLATFORM_CROSS"
"NX_TARGET_PLATFORM_NATIVE"
"NX_TARGET_PLATFORM_POSIX"
"NX_TARGET_PLATFORM_STRING"
"NX_TARGET_PLATFORM_MACRO")
list(APPEND _NX_PROPAGATE_SORT "NX_TARGET_PLATFORM_MACRO")
if("${NX_HOST_PLATFORM}" IN_LIST NX_PLATFORMS_LINUX)
if("${NX_HOST_PLATFORM}" IN_LIST NX_PLATFORMS_DARWIN)
set(NX_HOST_PLATFORM_DARWIN ON)
elseif("${NX_HOST_PLATFORM}" IN_LIST NX_PLATFORMS_FREEBSD)
set(NX_HOST_PLATFORM_FREEBSD ON)
elseif("${NX_HOST_PLATFORM}" IN_LIST NX_PLATFORMS_HAIKU)
set(NX_HOST_PLATFORM_HAIKU ON)
elseif("${NX_HOST_PLATFORM}" IN_LIST NX_PLATFORMS_LINUX)
set(NX_HOST_PLATFORM_LINUX ON)
elseif("${NX_HOST_PLATFORM}" IN_LIST NX_PLATFORMS_SOLARIS)
set(NX_HOST_PLATFORM_SOLARIS ON)
elseif("${NX_HOST_PLATFORM}" IN_LIST NX_PLATFORMS_WINDOWS)
set(NX_HOST_PLATFORM_WINDOWS ON)
else()
message(WARNING "Unknown Host Platform ('${NX_HOST_PLATFORM}')")
endif()
if("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_LINUX)
if("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_ANDROID)
set(NX_TARGET_PLATFORM_STRING "Android")
set(NX_TARGET_PLATFORM_ANDROID ON)
set(NX_TARGET_PLATFORM_LINUX ON)
set(NX_TARGET_PLATFORM_POSIX ON)
elseif("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_DARWIN)
set(NX_TARGET_PLATFORM_STRING "Darwin")
set(NX_TARGET_PLATFORM_DARWIN ON)
set(NX_TARGET_PLATFORM_POSIX ON)
if(NX_HOST_PLATFORM_DARWIN)
set(NX_TARGET_PLATFORM_NATIVE ON)
endif()
elseif("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_FREEBSD)
set(NX_TARGET_PLATFORM_STRING "FreeBSD")
set(NX_TARGET_PLATFORM_FREEBSD ON)
set(NX_TARGET_PLATFORM_POSIX ON)
if(NX_HOST_PLATFORM_FREEBSD)
set(NX_TARGET_PLATFORM_NATIVE ON)
endif()
elseif("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_HAIKU)
set(NX_TARGET_PLATFORM_STRING "Haiku")
set(NX_TARGET_PLATFORM_HAIKU ON)
set(NX_TARGET_PLATFORM_POSIX ON)
if(NX_HOST_PLATFORM_HAIKU)
set(NX_TARGET_PLATFORM_NATIVE ON)
endif()
elseif("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_LINUX)
set(NX_TARGET_PLATFORM_STRING "Linux")
set(NX_TARGET_PLATFORM_LINUX ON)
set(NX_TARGET_PLATFORM_POSIX ON)
if(NX_HOST_PLATFORM_LINUX)
set(NX_TARGET_PLATFORM_NATIVE ON)
endif()
elseif("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_MSDOS)
set(NX_TARGET_PLATFORM_STRING "MSDOS")
set(NX_TARGET_PLATFORM_MSDOS ON)
elseif("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_SOLARIS)
set(NX_TARGET_PLATFORM_STRING "Solaris")
set(NX_TARGET_PLATFORM_SOLARIS ON)
set(NX_TARGET_PLATFORM_POSIX ON)
if(NX_HOST_PLATFORM_SOLARIS)
set(NX_TARGET_PLATFORM_NATIVE ON)
endif()
elseif("${NX_TARGET_PLATFORM}" IN_LIST NX_PLATFORMS_WINDOWS)
set(NX_TARGET_PLATFORM_STRING "Windows")
set(NX_TARGET_PLATFORM_WINDOWS ON)
@ -238,6 +324,10 @@ function(nx_identify_platform)
string(TOUPPER "KYUII_PLATFORM_${NX_TARGET_PLATFORM_STRING}" NX_TARGET_PLATFORM_MACRO)
list(APPEND NX_TARGET_PLATFORM_MACRO KYUII_PLATFORM_STRING="${NX_TARGET_PLATFORM_STRING}")
if(NX_TARGET_PLATFORM_POSIX)
list(APPEND NX_TARGET_PLATFORM_MACRO "NX_TARGET_PLATFORM_POSIX")
endif()
if(NOT NX_TARGET_PLATFORM_NATIVE)
set(NX_TARGET_PLATFORM_CROSS ON)