1# This file is loaded by qmake right after loading the qmakespec. 2# Afterwards, the project's .qmake.conf and .qmake.cache are loaded 3# (if present). 4# Note that up to this point, nothing specific to a particular SUBDIRS 5# project or build pass can be done. 6 7isEmpty(MAKEFILE_GENERATOR):error("Qmake spec does not set MAKEFILE_GENERATOR.") 8isEmpty(QMAKE_PLATFORM) { 9 isEmpty(TARGET_PLATFORM) { 10 equals(MAKEFILE_GENERATOR, UNIX) { 11 equals(QMAKE_HOST.os, Darwin): \ 12 TARGET_PLATFORM = macx # backwards compatibility; cannot change 13 else: \ 14 TARGET_PLATFORM = unix 15 } else:if(equals(MAKEFILE_GENERATOR, MSVC.NET) \ 16 |equals(MAKEFILE_GENERATOR, MSBUILD) \ 17 |equals(MAKEFILE_GENERATOR, MINGW)) { 18 TARGET_PLATFORM = win32 19 } else:if(equals(MAKEFILE_GENERATOR, PROJECTBUILDER) \ 20 |equals(MAKEFILE_GENERATOR, XCODE)) { 21 TARGET_PLATFORM = macx 22 } else { 23 error("Qmake spec sets an invalid MAKEFILE_GENERATOR.") 24 } 25 } 26 equals(TARGET_PLATFORM, unix): \ 27 QMAKE_PLATFORM = unix 28 else:equals(TARGET_PLATFORM, macx): \ 29 QMAKE_PLATFORM = macos osx macx mac darwin unix 30 else:equals(TARGET_PLATFORM, win32): \ 31 QMAKE_PLATFORM = win32 32 else: \ 33 error("Qmake spec sets an invalid TARGET_PLATFORM.") 34} 35 36contains(QMAKE_PLATFORM, macx) { 37 !contains(QMAKE_PLATFORM, osx) { 38 warning("qmake spec specified platform macx, but not osx."); 39 QMAKE_PLATFORM = osx $$QMAKE_PLATFORM 40 } 41 42 !contains(QMAKE_PLATFORM, macos) { 43 warning("qmake spec specifies platform macx, but not macos.") 44 QMAKE_PLATFORM = macos $$QMAKE_PLATFORM 45 } 46} 47 48CONFIG += $$QMAKE_PLATFORM 49 50isEmpty(QMAKE_COMPILER) { 51 *-g++*: \ 52 QMAKE_COMPILER = gcc 53 else:*-llvm*: \ 54 QMAKE_COMPILER = gcc llvm 55 else:*-clang*: \ 56 QMAKE_COMPILER = gcc clang llvm 57 else:*-msvc*: \ 58 QMAKE_COMPILER = msvc 59 else: \ 60 error("qmake spec does not announce the compiler family, and it cannot be guessed.") 61 warning("qmake spec does not announce the compiler family. Guessed $${QMAKE_COMPILER}.") 62} 63CONFIG += $$QMAKE_COMPILER 64 65equals(MAKEFILE_GENERATOR, MSBUILD) \ 66|equals(MAKEFILE_GENERATOR, MSVC.NET) \ 67|isEmpty(QMAKE_SH) { 68 QMAKE_ZIP = zip -r -9 69 70 QMAKE_CD = cd /d 71 QMAKE_COPY = copy /y 72 QMAKE_COPY_FILE = $$QMAKE_COPY 73 QMAKE_COPY_DIR = xcopy /s /q /y /i 74 # xcopy copies the contained files if source is a directory. Deal with it. 75 CONFIG += copy_dir_files 76 QMAKE_MOVE = move 77 QMAKE_DEL_FILE = del 78 QMAKE_DEL_DIR = rmdir 79 QMAKE_DEL_TREE = rmdir /s /q 80 QMAKE_CHK_EXISTS = if not exist %1 81 QMAKE_CHK_DIR_EXISTS = if not exist # legacy 82 QMAKE_MKDIR = mkdir # legacy 83 QMAKE_MKDIR_CMD = if not exist %1 mkdir %1 & if not exist %1 exit 1 84 QMAKE_STREAM_EDITOR = $(QMAKE) -install sed 85 QMAKE_SHELL_NULL_DEVICE = NUL 86 QMAKE_INSTALL_FILE = copy /y 87 QMAKE_INSTALL_PROGRAM = copy /y 88} else { 89 QMAKE_TAR = tar -cf 90 QMAKE_GZIP = gzip -9f 91 92 QMAKE_CD = cd 93 QMAKE_COPY = cp -f 94 QMAKE_COPY_FILE = $$QMAKE_COPY 95 QMAKE_COPY_DIR = $$QMAKE_COPY -R 96 QMAKE_MOVE = mv -f 97 QMAKE_DEL_FILE = rm -f 98 QMAKE_DEL_DIR = rmdir 99 QMAKE_DEL_TREE = rm -rf 100 QMAKE_CHK_EXISTS = test -e %1 || 101 QMAKE_CHK_DIR_EXISTS = test -d # legacy 102 QMAKE_MKDIR = mkdir -p # legacy 103 QMAKE_MKDIR_CMD = test -d %1 || mkdir -p %1 104 QMAKE_STREAM_EDITOR = sed 105 QMAKE_SHELL_NULL_DEVICE = /dev/null 106 107 equals(QMAKE_HOST.os, Windows) { 108 MINGW_IN_SHELL = 1 # legacy 109 # Override built-ins. 110 QMAKE_DIR_SEP = / 111 QMAKE_DIRLIST_SEP = : 112 # Because install's ability to set permissions is not relevant on Windows, 113 # and git's msys does not provide it to start with. 114 QMAKE_INSTALL_FILE = cp -f 115 QMAKE_INSTALL_PROGRAM = cp -f 116 } else { 117 QMAKE_INSTALL_FILE = install -m 644 -p 118 QMAKE_INSTALL_PROGRAM = install -m 755 -p 119 } 120} 121QMAKE_INSTALL_DIR = $$QMAKE_COPY_DIR 122equals(QMAKE_HOST.os, Windows) { 123 QMAKE_SYMBOLIC_LINK = $(QMAKE) -install ln -f -s 124 QMAKE_LN_SHLIB = $(QMAKE) -install ln -s 125 QMAKE_SYSTEM_NULL_DEVICE = NUL 126} else { 127 QMAKE_SYMBOLIC_LINK = ln -f -s 128 QMAKE_LN_SHLIB = ln -s 129 QMAKE_SYSTEM_NULL_DEVICE = /dev/null 130} 131