OSDN Git Service

deal with TODO in mkspecs and review architectures checks in global header
authorIvailo Monev <xakepa10@laimg.moc>
Wed, 10 Jul 2019 19:48:52 +0000 (19:48 +0000)
committerIvailo Monev <xakepa10@laimg.moc>
Wed, 10 Jul 2019 19:48:52 +0000 (19:48 +0000)
Signed-off-by: Ivailo Monev <xakepa10@laimg.moc>
mkspecs/mkspecs.cmake
src/core/global/qglobal.cpp
src/core/global/qglobal.h.cmake

index e91a4ab..ac59f74 100644 (file)
@@ -8,7 +8,6 @@ if(NOT KATIE_TYPE)
     katie_definition(-DQT_SHARED)
 endif()
 
-# TODO: more platforms/architectures support
 include_directories(${KATIE_MKSPECS_DIR})
 if(NOT KATIE_PLATFORM)
     if(CMAKE_SYSTEM_NAME MATCHES "Linux")
@@ -46,14 +45,34 @@ elseif(CMAKE_HOST_SYSTEM_PROCESSOR)
     string(TOLOWER ${CMAKE_HOST_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
 endif()
 if(NOT KATIE_ARCHITECTURE)
-    if(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
+    # https://en.wikipedia.org/wiki/Uname
+    # TODO: NACL?
+    if(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^alpha")
+        set(KATIE_ARCHITECTURE "alpha")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
         set(KATIE_ARCHITECTURE "arm")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^avr")
+        set(KATIE_ARCHITECTURE "avr")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^blackfin")
+        set(KATIE_ARCHITECTURE "blackfin")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|i[3-6]86|i86pc)")
+        set(KATIE_ARCHITECTURE "i386")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^ia64")
+        set(KATIE_ARCHITECTURE "ia64")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^m68k")
+        set(KATIE_ARCHITECTURE "m68k")
     elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
         set(KATIE_ARCHITECTURE "mips")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc")
+        set(KATIE_ARCHITECTURE "powerpc")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^s390")
+        set(KATIE_ARCHITECTURE "s390")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^sparc")
+        set(KATIE_ARCHITECTURE "sparc")
+    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^sh")
+        set(KATIE_ARCHITECTURE "sh")
     elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)")
         set(KATIE_ARCHITECTURE "x86_64")
-    elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86|i[3-6]86)")
-        set(KATIE_ARCHITECTURE "i386")
     else()
         message(FATAL_ERROR "Unknown CPU '${CMAKE_SYSTEM_PROCESSOR}'")
     endif()
index f5d6b3e..e3106d0 100644 (file)
@@ -1195,13 +1195,6 @@ bool qSharedBuild()
 */
 
 /*!
-    \macro Q_OS_QNX
-    \relates <QtGlobal>
-
-    Defined on QNX Neutrino.
-*/
-
-/*!
     \macro Q_OS_LYNX
     \relates <QtGlobal>
 
index a8e98f1..4278c4d 100644 (file)
 
      ALPHA     - ...
      ARM       - ...
-     !ARMV6     - ...
+     ARMV6     - ...
      AVR32     - ...
      BFIN      - ...
-     !GENERIC   - ...
      I386      - ...
      IA64      - ...
      M68K      - ...
      MIPS      - ...
+     NACL      - ...
      !PARISC    - ...
-     !POWERPC   - ...
+     POWERPC   - ...
      S390      - ...
      SPARC     - ...
-     X86_64    - ...
      SH        - ...
-     !SH4A      - ...
-     NACL      - ...
+     SH4A      - ...
+     X86_64    - ...
 
    Useful hyper-links:
 
      https://en.wikipedia.org/wiki/GNU_Compiler_Collection#Architectures
 */
 
-#if defined(__alpha__) || defined(_M_ALPHA)
+#if defined(__alpha__)
 #  define QT_ARCH_ALPHA
-#elif defined(__arm__) || defined(_M_ARM)
+#elif defined(__arm__)
 #  define QT_ARCH_ARM
+#  if defined(__ARM_ARCH_6__)
+#    define QT_ARCH_ARMV6
+#  endif
 #elif defined(__avr__)
 #  define QT_ARCH_AVR32
 #elif defined(__bfin__)
 #  define QT_ARCH_BFIN
-#elif defined(__ia64__) || defined(_M_IA64)
+#elif defined(__i386__)
+#  define QT_ARCH_I386
+#elif defined(__ia64__)
 #  define QT_ARCH_IA64
 #elif defined(__m68k__)
 #  define QT_ARCH_M68K
 #elif defined(__mips__)
 #  define QT_ARCH_MIPS
+#elif defined(__native_client__)
+#  define QT_ARCH_NACL
 #elif defined(__s390__)
 #  define QT_ARCH_S390
+#elif defined(__powerpc__) || defined(__powerpc64__)
+#  define QT_ARCH_POWERPC
 #elif defined(__sparc__)
 #  define QT_ARCH_SPARC
 #elif defined(__sh__)
 #  define QT_ARCH_SH
-#elif defined(__native_client__)
-#  define QT_ARCH_NACL
-#elif defined(__x86_64__) || defined(_M_X64)
+#  if defined(__SH4__)
+#    define QT_ARCH_SH4A
+#  endif
+#elif defined(__x86_64__)
 #  define QT_ARCH_X86_64
-#elif defined(__i386__) || defined(_M_IX86)
-#  define QT_ARCH_I386
 #else
 # error Unable to detect architecture, please update above list
 #endif
@@ -189,7 +196,6 @@ QT_USE_NAMESPACE
      DGUX     - DG/UX
      RELIANT  - Reliant UNIX
      DYNIX    - DYNIX/ptx
-     QNX      - QNX
      LYNX     - LynxOS
      BSD4     - Any BSD 4.4 system
      UNIX     - Any UNIX BSD/SYSV system