make mkspecs not mess up library and include search paths

adding shared install paths to QMAKE_{INCDIR,LIBDIR} in the spec has the
tiny side effect that they are searched _first_, which is generally a
really bad idea - they should be _last_.

for that purpose, make QMAKE_{INCDIR,LIBDIR}_POST live up to their names
(i.e., search them actually last) and migrate all affected specs to use
them.

Task-number: QTBUG-40825
Change-Id: Ie0de81c3cc49e193186d2fedd7d6c77590c8ef79
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Oswald Buddenhagen 2017-05-16 17:28:22 +02:00
parent 27f0d8db91
commit 6dcd944dee
18 changed files with 35 additions and 33 deletions

View File

@ -74,8 +74,8 @@ else: \
LIBGCC_PATH = $$dirname(LIBGCC_PATH_FULL)
QMAKE_INCDIR = $$ANDROID_SOURCES_CXX_STL_INCDIR $$QMAKE_ANDROID_PLATFORM_INCDIR
QMAKE_LIBDIR = $$ANDROID_SOURCES_CXX_STL_LIBDIR $$QMAKE_ANDROID_PLATFORM_LIBDIR $$LIBGCC_PATH
QMAKE_INCDIR_POST = $$ANDROID_SOURCES_CXX_STL_INCDIR $$QMAKE_ANDROID_PLATFORM_INCDIR
QMAKE_LIBDIR_POST = $$ANDROID_SOURCES_CXX_STL_LIBDIR $$QMAKE_ANDROID_PLATFORM_LIBDIR $$LIBGCC_PATH
QMAKE_INCDIR_X11 =
QMAKE_LIBDIR_X11 =
QMAKE_INCDIR_OPENGL = $$QMAKE_ANDROID_PLATFORM_INCDIR

View File

@ -38,8 +38,8 @@ isEmpty(QNX_DIR) {
error("QNX_TARGET environment variable not set")
}
QMAKE_INCDIR = $${QNX_DIR}/usr/include $${QNX_DIR}/usr/include/freetype2
QMAKE_LIBDIR = $${QNX_DIR}/$${QNX_CPUDIR}/lib $${QNX_DIR}/$${QNX_CPUDIR}/usr/lib
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_LFLAGS += -Wl,-rpath-link,$${QNX_DIR}/$${QNX_CPUDIR}/lib -Wl,-rpath-link,$${QNX_DIR}/$${QNX_CPUDIR}/usr/lib
QMAKE_CXXFLAGS_CXX11 = -Wc,-std=gnu++11

View File

@ -24,4 +24,4 @@ QMAKE_STRIP = $${CROSS_COMPILE}strip
# it messes up system include order. --sysroot is
# sufficient. See link for details:
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213217
QMAKE_LIBDIR = $$[QT_SYSROOT]/usr/lib
QMAKE_LIBDIR_POST = $$[QT_SYSROOT]/usr/lib

View File

@ -19,8 +19,8 @@
include(../common/linux_device_pre.conf)
QMAKE_INCDIR += /usr/arm-linux-gnueabihf/include
QMAKE_LIBDIR += /usr/arm-linux-gnueabihf/lib
QMAKE_INCDIR_POST += /usr/arm-linux-gnueabihf/include
QMAKE_LIBDIR_POST += /usr/arm-linux-gnueabihf/lib
QMAKE_LIBS += -lrt

View File

@ -50,9 +50,9 @@ QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
QMAKE_NM = $${CROSS_COMPILE}nm -P
QMAKE_STRIP = $${CROSS_COMPILE}strip
QMAKE_INCDIR += $${TRIDENT_SHINER_SDK_BUILDTREE}/target/output/objs/$${TRIDENT_SHINER_SDK_BUILDSPEC}/comps/generic_apps/usr/include
QMAKE_LIBDIR += $${TRIDENT_SHINER_SDK_BUILDTREE}/target/output/objs/$${TRIDENT_SHINER_SDK_BUILDSPEC}/comps/generic_apps/usr/lib
QMAKE_LIBDIR += $${TRIDENT_SHINER_SDK_BUILDTREE}/target/output/objs/$${TRIDENT_SHINER_SDK_BUILDSPEC}/comps/generated/lib/armgnu_linux_el_cortex-a9
QMAKE_INCDIR_POST += $${TRIDENT_SHINER_SDK_BUILDTREE}/target/output/objs/$${TRIDENT_SHINER_SDK_BUILDSPEC}/comps/generic_apps/usr/include
QMAKE_LIBDIR_POST += $${TRIDENT_SHINER_SDK_BUILDTREE}/target/output/objs/$${TRIDENT_SHINER_SDK_BUILDSPEC}/comps/generic_apps/usr/lib
QMAKE_LIBDIR_POST += $${TRIDENT_SHINER_SDK_BUILDTREE}/target/output/objs/$${TRIDENT_SHINER_SDK_BUILDSPEC}/comps/generated/lib/armgnu_linux_el_cortex-a9
QMAKE_INCDIR_EGL = $${TRIDENT_SHINER_SDK_INCDIR_EGL_OPENGL_ES2}
QMAKE_LIBDIR_EGL = $${TRIDENT_SHINER_SDK_LIBDIR_EGL_OPENGL_ES2}

View File

@ -16,11 +16,11 @@
include(../common/linux_device_pre.conf)
QMAKE_INCDIR += \
QMAKE_INCDIR_POST += \
$${VIBRANTE_SDK_TOPDIR}/include \
$$[QT_SYSROOT]/usr/include
QMAKE_LIBDIR += \
QMAKE_LIBDIR_POST += \
$${VIBRANTE_SDK_TOPDIR}/lib-target \
$$[QT_SYSROOT]/usr/lib \
$$[QT_SYSROOT]/lib/aarch64-linux-gnu \

View File

@ -11,11 +11,11 @@
include(../common/linux_device_pre.conf)
QMAKE_INCDIR += \
QMAKE_INCDIR_POST += \
$$[QT_SYSROOT]/usr/include \
$$[QT_SYSROOT]/usr/include/arm-linux-gnueabihf
QMAKE_LIBDIR += \
QMAKE_LIBDIR_POST += \
$$[QT_SYSROOT]/usr/lib \
$$[QT_SYSROOT]/lib/arm-linux-gnueabihf \
$$[QT_SYSROOT]/usr/lib/arm-linux-gnueabihf

View File

@ -14,11 +14,11 @@
include(../common/linux_device_pre.conf)
QMAKE_INCDIR += \
QMAKE_INCDIR_POST += \
$${VIBRANTE_SDK_TOPDIR}/include \
$$[QT_SYSROOT]/usr/include
QMAKE_LIBDIR += \
QMAKE_LIBDIR_POST += \
$${VIBRANTE_SDK_TOPDIR}/lib-target \
$$[QT_SYSROOT]/usr/lib \
$$[QT_SYSROOT]/lib/arm-linux-gnueabihf \

View File

@ -25,11 +25,11 @@
include(../common/linux_device_pre.conf)
QMAKE_INCDIR += \
QMAKE_INCDIR_POST += \
$$[QT_SYSROOT]/usr/include \
$$[QT_SYSROOT]/usr/include/aarch64-linux-gnu
QMAKE_LIBDIR += \
QMAKE_LIBDIR_POST += \
$$[QT_SYSROOT]/usr/lib \
$$[QT_SYSROOT]/lib/aarch64-linux-gnu \
$$[QT_SYSROOT]/usr/lib/aarch64-linux-gnu

View File

@ -52,8 +52,8 @@ QMAKE_LIBDIR_OPENGL_ES2 = $${BRCM_ROCKFORD_PATH}/middleware/v3d/lib_$${BRCM_PLAT
QMAKE_LIBS_OPENGL_ES2 = -lv3ddriver -lrt
QMAKE_LIBS_EGL =
INCLUDEPATH += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
QMAKE_LIBDIR += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
QMAKE_INCDIR_POST += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
QMAKE_LIBDIR_POST += $${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3
QMAKE_LFLAGS += -Wl,-rpath-link,$$QMAKE_LIBDIR_OPENGL_ES2 -Wl,-rpath-link,$${BRCM_APPLIBS_PATH}/opensource/zlib/zlib-1.2.3

View File

@ -10,9 +10,9 @@
include(../common/linux_device_pre.conf)
QMAKE_INCDIR += $$[QT_SYSROOT]/usr/include
QMAKE_INCDIR_POST += $$[QT_SYSROOT]/usr/include
QMAKE_LIBDIR += $$[QT_SYSROOT]/usr/lib \
QMAKE_LIBDIR_POST += $$[QT_SYSROOT]/usr/lib \
$$[QT_SYSROOT]/lib/arm-linux-gnueabi \
$$[QT_SYSROOT]/usr/lib/arm-linux-gnueabi

View File

@ -139,6 +139,3 @@ utf8_source {
}
!precompile_header: SOURCES += $$NO_PCH_SOURCES
QMAKE_INCDIR += $$QMAKE_INCDIR_POST
QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST

View File

@ -8,8 +8,8 @@ QMAKE_PLATFORM = freebsd
include(../common/bsd/bsd.conf)
# Addon software goes into /usr/local on FreeBSD, by default we will look there
QMAKE_INCDIR = /usr/local/include
QMAKE_LIBDIR = /usr/local/lib
QMAKE_INCDIR_POST = /usr/local/include
QMAKE_LIBDIR_POST = /usr/local/lib
QMAKE_LFLAGS_NOUNDEF = -Wl,--no-undefined

View File

@ -8,8 +8,8 @@ QMAKE_PLATFORM = freebsd
include(../common/bsd/bsd.conf)
# Addon software goes into /usr/local on FreeBSD, by default we will look there
QMAKE_INCDIR = /usr/local/include
QMAKE_LIBDIR = /usr/local/lib
QMAKE_INCDIR_POST = /usr/local/include
QMAKE_LIBDIR_POST = /usr/local/lib
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

View File

@ -8,8 +8,8 @@ QMAKE_PLATFORM = netbsd
include(../common/bsd/bsd.conf)
# Addon software goes into /usr/pkg on NetBSD, by default we will look there
QMAKE_INCDIR = /usr/pkg/include
QMAKE_LIBDIR = /usr/pkg/lib
QMAKE_INCDIR_POST = /usr/pkg/include
QMAKE_LIBDIR_POST = /usr/pkg/lib
# System provided X11 defaults to X11R7 path on NetBSD since 5.0
QMAKE_INCDIR_X11 = /usr/X11R7/include

View File

@ -8,8 +8,8 @@ QMAKE_PLATFORM = openbsd
include(../common/bsd/bsd.conf)
# Addon software goes into /usr/local on OpenBSD, by default we will look there
QMAKE_INCDIR = /usr/local/include
QMAKE_LIBDIR = /usr/local/lib
QMAKE_INCDIR_POST = /usr/local/include
QMAKE_LIBDIR_POST = /usr/local/lib
# System provided X11 defaults to X11R6 path on OpenBSD
QMAKE_INCDIR_X11 = /usr/X11R6/include

View File

@ -94,6 +94,8 @@ UnixMakefileGenerator::init()
!project->values("QMAKE_LIB_FLAG").isEmpty() &&
project->isActiveConfig("dll"))
project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_PREBIND");
project->values("QMAKE_INCDIR") += project->values("QMAKE_INCDIR_POST");
project->values("QMAKE_LIBDIR") += project->values("QMAKE_LIBDIR_POST");
if(!project->isEmpty("QMAKE_INCDIR"))
project->values("INCLUDEPATH") += project->values("QMAKE_INCDIR");
ProStringList ldadd;

View File

@ -174,6 +174,9 @@ void Win32MakefileGenerator::processVars()
else if (project->first("TEMPLATE").startsWith("vc"))
project->values("MAKEFILE") = project->values("QMAKE_PROJECT_NAME");
project->values("QMAKE_INCDIR") += project->values("QMAKE_INCDIR_POST");
project->values("QMAKE_LIBDIR") += project->values("QMAKE_LIBDIR_POST");
if (!project->values("QMAKE_INCDIR").isEmpty())
project->values("INCLUDEPATH") += project->values("QMAKE_INCDIR");