Search code examples
qtarmcross-platformqmakeqnx

QMAKE. How to figure out host platform and target platform when cross compiling QT projects


I compiling for QNX, ARM, My Host platform can be Win32/64 , Linux or Mac I want to find a way to see wheat is my host platform in my PRO file (on computer I building my project)

Apparently using:

win32 {}
unix {}
macx {}

does not work because on different OSes it will always report unix, so I assume this is target platform So what is the way to obtain current host platform to make PRO file flexible because on different platform I would like to do different things.

Thank you


Solution

  • Could not get anything better then:

    QMAKE_SPEC_T = $$[QMAKE_SPEC]
    
    contains(QMAKE_SPEC_T,.*win32.*){
        HOST_PLATFORM=WIN
        IS_WIN = 1
    }
    
    contains(QMAKE_SPEC_T,.*macx.*){
        HOST_PLATFORM=MAC
        IS_MAC = 1
    }
    
    contains(QMAKE_SPEC_T,.*linux.*){
        HOST_PLATFORM=LINUX
        IS_LINUX = 1
    }
    

    and then anywhere to check:

    !isEmpty(IS_WIN):message($${HOST_PLATFORM})
    !isEmpty(IS_MAC):message($${HOST_PLATFORM})
    !isEmpty(IS_LINUX):message($${HOST_PLATFORM})