Skip to content

Commit

Permalink
make mkspecs not mess up library and include search paths
Browse files Browse the repository at this point in the history
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 <[email protected]>
  • Loading branch information
ossilator committed May 31, 2017
1 parent 27f0d8d commit 6dcd944
Show file tree
Hide file tree
Showing 18 changed files with 35 additions and 33 deletions.
4 changes: 2 additions & 2 deletions mkspecs/common/android-base-tail.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions mkspecs/common/qcc-base-qnx.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion mkspecs/devices/common/freebsd_device_pre.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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
4 changes: 2 additions & 2 deletions mkspecs/devices/linux-arm-hisilicon-hix5hd2-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
6 changes: 3 additions & 3 deletions mkspecs/devices/linux-arm-trident-pnx8473-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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}
Expand Down
4 changes: 2 additions & 2 deletions mkspecs/devices/linux-drive-cx-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down
4 changes: 2 additions & 2 deletions mkspecs/devices/linux-jetson-tk1-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions mkspecs/devices/linux-jetson-tk1-pro-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down
4 changes: 2 additions & 2 deletions mkspecs/devices/linux-jetson-tx1-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions mkspecs/devices/linux-mipsel-broadcom-97425-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions mkspecs/devices/linux-tegra2-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
3 changes: 0 additions & 3 deletions mkspecs/features/default_post.prf
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,3 @@ utf8_source {
}

!precompile_header: SOURCES += $$NO_PCH_SOURCES

QMAKE_INCDIR += $$QMAKE_INCDIR_POST
QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST
4 changes: 2 additions & 2 deletions mkspecs/freebsd-clang/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
4 changes: 2 additions & 2 deletions mkspecs/freebsd-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions mkspecs/netbsd-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions mkspecs/openbsd-g++/qmake.conf
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions qmake/generators/unix/unixmake.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
3 changes: 3 additions & 0 deletions qmake/generators/win32/winmakefile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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");

Expand Down

0 comments on commit 6dcd944

Please sign in to comment.