#
# qmake configuration derived from linux-g++
#
# This mkspec is intended for use with scratchbox 2 (sb2) and assumes the
# default sb2 target is set appropriately, or you will have to append the
# appropriate -t $target argument to sb2

# If you want to use pkg-config you have to explicitly force it by passing
# -force-pkg-config to configure. You will probably want to export your
# PKG_CONFIG_PATH shell variable in order for the host pkg-config to
# correctly query and utilize your targets .pc files (normally stored in
# $staging/usr/lib/pkgconfig)

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)

# modifications to g++.conf
QMAKE_CC                = sb2 gcc
QMAKE_CXX               = sb2 g++
QMAKE_LINK              = sb2 g++
QMAKE_LINK_SHLIB        = sb2 g++

# modifications to linux.conf
QMAKE_AR                = sb2 ar cqs
QMAKE_OBJCOPY           = sb2 objcopy
QMAKE_NM                = sb2 nm -P
QMAKE_STRIP             = sb2 strip

load(qt_config)
