qt5base-lts/mkspecs/features/spec_pre.prf
Oswald Buddenhagen 3444e23652 make QMAKE_CXX/CROSS_COMPILE verification work under windows
automatically append the .exe extension. this is done unconditionally,
which means that providing it in the spec is wrong by definition.

don't use system("which") (which won't do what we want in a windows
shell), but scan PATH ourselves. as a bonus, this is also faster.

to avoid fetching and splitting the path multiple times, factor out a
function in spec_pre.prf.

Change-Id: I95f0fa285c158b347d45422111f91540e3a595fd
Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2015-04-21 12:05:50 +00:00

54 lines
1.4 KiB
Plaintext

# This file is loaded by qmake right before loading the qmakespec.
# At this point, the built-in variables have been set up and the project's
# .qmake.super was read (if present).
QMAKE_DIR_SEP = $$DIR_SEPARATOR
QMAKE_DIRLIST_SEP = $$DIRLIST_SEPARATOR
QMAKE_EXT_C = .c
QMAKE_EXT_CPP = .cpp .cc .cxx
QMAKE_EXT_CPP_MOC = .moc
QMAKE_EXT_H = .h .hpp .hh .hxx
QMAKE_EXT_H_MOC = .cpp
QMAKE_EXT_JS = .js
QMAKE_EXT_LEX = .l
QMAKE_EXT_LIBTOOL = .la
QMAKE_EXT_PKGCONFIG = .pc
QMAKE_EXT_PRL = .prl
QMAKE_EXT_UI = .ui
QMAKE_EXT_YACC = .y
QMAKE_CPP_MOD_MOC =
QMAKE_H_MOD_MOC = moc_
QMAKE_MOD_LEX = _lex
QMAKE_MOD_YACC = _yacc
defineTest(ensurePathEnv) {
isEmpty(QMAKE_PATH_ENV) {
QMAKE_PATH_ENV = $$(PATH)
QMAKE_PATH_ENV = $$split(QMAKE_PATH_ENV, $$QMAKE_DIRLIST_SEP)
export(QMAKE_PATH_ENV)
}
}
equals(QMAKE_HOST.os, Windows) {
QMAKE_EXT_OBJ = .obj
QMAKE_EXT_RES = .res
QMAKE_SH =
ensurePathEnv()
for(dir, QMAKE_PATH_ENV) {
exists($$dir/sh.exe) {
QMAKE_SH = $$dir/sh.exe
break()
}
}
} else {
QMAKE_EXT_CPP += .C
QMAKE_EXT_H += .H
QMAKE_EXT_OBJ = .o
QMAKE_SH = sh
}
CONFIG = qt warn_on release link_prl
QT = core gui