#
# Base qmake configuration for QCC on *nix-systems
#

include(qcc-base.conf)

isEmpty(QMAKE_WAYLAND_SCANNER): QMAKE_WAYLAND_SCANNER = $$(QNX_HOST)/usr/bin/wayland-scanner

QMAKE_PLATFORM          = qnx $$QMAKE_PLATFORM

QMAKE_LFLAGS_SHLIB     += -shared
QMAKE_LFLAGS_PLUGIN    += $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME    += -Wl,-soname,
QMAKE_LFLAGS_THREAD    +=
QMAKE_LFLAGS_RPATH      = -Wl,-rpath,
QMAKE_LFLAGS_RPATHLINK  = -Wl,-rpath-link,

# -Bsymbolic-functions (ld) support
QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
QMAKE_LFLAGS_DYNAMIC_LIST   = -Wl,--dynamic-list,
QMAKE_LFLAGS_VERSION_SCRIPT = -Wl,--version-script,

# Generic options for all QNX qcc mkspecs
QMAKE_CFLAGS_THREAD     = -D_REENTRANT
QMAKE_CXXFLAGS_THREAD   = $$QMAKE_CFLAGS_THREAD
QMAKE_COMPILER_DEFINES += __QNXNTO__

QMAKE_LIBS              = -lm
QMAKE_LIBS_NETWORK      = -lsocket

# OpenGL libraries have a dependency on libEGL
QMAKE_LIBS_OPENGL_ES2   = -lGLESv2 -lEGL
QMAKE_LIBS_EGL          = -lEGL

# When using this mkspec to build Qt apps (ie - not Qt itself) we want to build
# against the NDK's target directory which is referenced by the QNX_TARGET environment
# variable, and which is guaranteed by the NDK to be set.
QNX_DIR = $$(QNX_TARGET)
isEmpty(QNX_DIR) {
    error("QNX_TARGET environment variable not set")
}

QMAKE_INCDIR_POST       = $${QNX_DIR}/usr/include $${QNX_DIR}/usr/include/freetype2
QMAKE_LIBDIR_POST       = $${QNX_DIR}/$${QNX_CPUDIR}/lib $${QNX_DIR}/$${QNX_CPUDIR}/usr/lib
QMAKE_RPATHLINKDIR_POST += $${QNX_DIR}/$${QNX_CPUDIR}/lib $${QNX_DIR}/$${QNX_CPUDIR}/usr/lib

QMAKE_CXXFLAGS_CXX11    =
QMAKE_CXXFLAGS_CXX14    =
QMAKE_CXXFLAGS_CXX1Z    =

QMAKE_CXXFLAGS_GNUCXX11 = -Wc,-std=gnu++11
QMAKE_CXXFLAGS_GNUCXX14 = -Wc,-std=gnu++1y
QMAKE_CXXFLAGS_GNUCXX1Z = -Wc,-std=gnu++1z

QMAKE_LINK_C            = $$QMAKE_CC
QMAKE_LINK_C_SHLIB      = $$QMAKE_CC

QMAKE_LINK              = $$QMAKE_CXX
QMAKE_LINK_SHLIB        = $$QMAKE_CXX

QMAKE_STRIPFLAGS_LIB   += --strip-unneeded

equals(QMAKE_HOST.os, Windows) {
    isEmpty(QMAKE_SH): error("This mkspec requires an MSYS environment.")
    QMAKE_DIR_SEP       = /
    QMAKE_DIRLIST_SEP   = :
}
