95d385466d
it makes no sense to let every spec do that separately, as it's fixed by the generator+shell. putting it into a file which is loaded regardless of the spec also allows us to remove the hardcoded fallbacks from qmake. if somebody overrode the values in their spec for some weird reasons, they'll need to override spec_post.prf. shell-{unix,win32}.conf are now dummies and print warnings. Task-number: QTBUG-37269 Change-Id: I66c24fb4072ce4d63fdbfc57618daa2a48fa1d80 Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
119 lines
4.3 KiB
Plaintext
119 lines
4.3 KiB
Plaintext
# This file is loaded by qmake right after loading the qmakespec.
|
|
# Afterwards, the project's .qmake.conf and .qmake.cache are loaded
|
|
# (if present).
|
|
# Note that up to this point, nothing specific to a particular SUBDIRS
|
|
# project or build pass can be done.
|
|
|
|
isEmpty(MAKEFILE_GENERATOR):error("Qmake spec does not set MAKEFILE_GENERATOR.")
|
|
isEmpty(QMAKE_PLATFORM) {
|
|
isEmpty(TARGET_PLATFORM) {
|
|
equals(MAKEFILE_GENERATOR, UNIX) {
|
|
equals(QMAKE_HOST.os, Darwin): \
|
|
TARGET_PLATFORM = macx # backwards compatibility; cannot change
|
|
else: \
|
|
TARGET_PLATFORM = unix
|
|
} else:if(equals(MAKEFILE_GENERATOR, MSVC.NET) \
|
|
|equals(MAKEFILE_GENERATOR, MSBUILD) \
|
|
|equals(MAKEFILE_GENERATOR, MINGW)) {
|
|
TARGET_PLATFORM = win32
|
|
} else:if(equals(MAKEFILE_GENERATOR, PROJECTBUILDER) \
|
|
|equals(MAKEFILE_GENERATOR, XCODE)) {
|
|
TARGET_PLATFORM = macx
|
|
} else {
|
|
error("Qmake spec sets an invalid MAKEFILE_GENERATOR.")
|
|
}
|
|
}
|
|
equals(TARGET_PLATFORM, unix): \
|
|
QMAKE_PLATFORM = unix
|
|
else:equals(TARGET_PLATFORM, macx): \
|
|
QMAKE_PLATFORM = osx macx mac darwin unix
|
|
else:equals(TARGET_PLATFORM, win32): \
|
|
QMAKE_PLATFORM = win32
|
|
else: \
|
|
error("Qmake spec sets an invalid TARGET_PLATFORM.")
|
|
}
|
|
|
|
contains(QMAKE_PLATFORM, macx):!contains(QMAKE_PLATFORM, osx) {
|
|
warning("qmake spec specifies platform macx, but not osx.")
|
|
QMAKE_PLATFORM = osx $$QMAKE_PLATFORM
|
|
}
|
|
|
|
CONFIG += $$QMAKE_PLATFORM
|
|
|
|
isEmpty(QMAKE_COMPILER) {
|
|
*-g++*: \
|
|
QMAKE_COMPILER = gcc
|
|
else:*-llvm*: \
|
|
QMAKE_COMPILER = gcc llvm
|
|
else:*-clang*: \
|
|
QMAKE_COMPILER = gcc clang llvm
|
|
else:*-msvc*: \
|
|
QMAKE_COMPILER = msvc
|
|
else: \
|
|
error("qmake spec does not announce the compiler family, and it cannot be guessed.")
|
|
warning("qmake spec does not announce the compiler family. Guessed $${QMAKE_COMPILER}.")
|
|
}
|
|
CONFIG += $$QMAKE_COMPILER
|
|
|
|
equals(MAKEFILE_GENERATOR, MSBUILD) \
|
|
|equals(MAKEFILE_GENERATOR, MSVC.NET) \
|
|
|isEmpty(QMAKE_SH) {
|
|
QMAKE_ZIP = zip -r -9
|
|
|
|
QMAKE_COPY = copy /y
|
|
QMAKE_COPY_FILE = $$QMAKE_COPY
|
|
QMAKE_COPY_DIR = xcopy /s /q /y /i
|
|
# xcopy copies the contained files if source is a directory. Deal with it.
|
|
CONFIG += copy_dir_files
|
|
QMAKE_MOVE = move
|
|
QMAKE_DEL_FILE = del
|
|
QMAKE_DEL_DIR = rmdir
|
|
QMAKE_DEL_TREE = rmdir /s /q
|
|
QMAKE_CHK_EXISTS = if not exist %1
|
|
QMAKE_CHK_DIR_EXISTS = if not exist # legacy
|
|
QMAKE_MKDIR = mkdir # legacy
|
|
QMAKE_MKDIR_CMD = if not exist %1 mkdir %1 & if not exist %1 exit 1
|
|
QMAKE_STREAM_EDITOR = $(QMAKE) -install sed
|
|
QMAKE_INSTALL_FILE = copy /y
|
|
QMAKE_INSTALL_PROGRAM = copy /y
|
|
} else {
|
|
QMAKE_TAR = tar -cf
|
|
QMAKE_GZIP = gzip -9f
|
|
|
|
QMAKE_COPY = cp -f
|
|
QMAKE_COPY_FILE = $$QMAKE_COPY
|
|
QMAKE_COPY_DIR = $$QMAKE_COPY -R
|
|
QMAKE_MOVE = mv -f
|
|
QMAKE_DEL_FILE = rm -f
|
|
QMAKE_DEL_DIR = rmdir
|
|
QMAKE_DEL_TREE = rm -rf
|
|
QMAKE_CHK_EXISTS = test -e %1 ||
|
|
QMAKE_CHK_DIR_EXISTS = test -d # legacy
|
|
QMAKE_MKDIR = mkdir -p # legacy
|
|
QMAKE_MKDIR_CMD = test -d %1 || mkdir -p %1
|
|
QMAKE_STREAM_EDITOR = sed
|
|
|
|
equals(QMAKE_HOST.os, Windows) {
|
|
MINGW_IN_SHELL = 1 # legacy
|
|
# Override built-ins.
|
|
QMAKE_DIR_SEP = /
|
|
QMAKE_DIRLIST_SEP = :
|
|
# Because install's ability to set permissions is not relevant on Windows,
|
|
# and git's msys does not provide it to start with.
|
|
QMAKE_INSTALL_FILE = cp -f
|
|
QMAKE_INSTALL_PROGRAM = cp -f
|
|
} else {
|
|
QMAKE_INSTALL_FILE = install -m 644 -p
|
|
QMAKE_INSTALL_PROGRAM = install -m 755 -p
|
|
}
|
|
}
|
|
QMAKE_INSTALL_DIR = $$QMAKE_COPY_DIR
|
|
equals(QMAKE_HOST.os, Windows) {
|
|
# Ugly (and broken for relative paths) hack to support cross-building for Unix.
|
|
QMAKE_SYMBOLIC_LINK = $$QMAKE_COPY
|
|
QMAKE_LN_SHLIB = $$QMAKE_SYMBOLIC_LINK
|
|
} else {
|
|
QMAKE_SYMBOLIC_LINK = ln -f -s
|
|
QMAKE_LN_SHLIB = ln -s
|
|
}
|