forked from qreal/qreal
-
Notifications
You must be signed in to change notification settings - Fork 8
/
global.pri
118 lines (95 loc) · 2.91 KB
/
global.pri
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# Copyright 2007-2015 QReal Research Group
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
win32 {
PLATFORM = windows
} else {
PLATFORM = linux
}
CONFIG(debug, debug | release) {
CONFIGURATION = debug
CONFIGURATION_SUFFIX = -d
} else {
CONFIGURATION = release
CONFIGURATION_SUFFIX =
}
DESTDIR = $$PWD/bin/$$CONFIGURATION
PROJECT_BASENAME = $$basename(_PRO_FILE_)
PROJECT_NAME = $$section(PROJECT_BASENAME, ".", 0, 0)
isEmpty(TARGET) {
TARGET = $$PROJECT_NAME$$CONFIGURATION_SUFFIX
} else {
TARGET = $$TARGET$$CONFIGURATION_SUFFIX
}
equals(TEMPLATE, app) {
!macx {
QMAKE_LFLAGS += -Wl,-O1,-rpath,.
QMAKE_LFLAGS += -Wl,-rpath-link,$$DESTDIR
} else {
CONFIG -= app_bundle
}
}
OBJECTS_DIR = .build/$$CONFIGURATION/obj
MOC_DIR = .build/$$CONFIGURATION/moc
RCC_DIR = .build/$$CONFIGURATION/rcc
UI_DIR = .build/$$CONFIGURATION/ui
INCLUDEPATH += $$_PRO_FILE_PWD_ \
$$_PRO_FILE_PWD_/include \
$$PWD \
LIBS += -L$$DESTDIR
CONFIG += c++11
QMAKE_CXXFLAGS += -Wextra -Wcast-qual -Wwrite-strings -Wredundant-decls -Wunreachable-code -Wnon-virtual-dtor
GLOBAL_PWD = $$PWD
# Useful function to copy additional files to destination,
# from http://stackoverflow.com/questions/3984104/qmake-how-to-copy-a-file-to-the-output
defineTest(copyToDestdir) {
FILES = $$1
NOW = $$2
for(FILE, FILES) {
DESTDIR_SUFFIX =
# This ugly code is needed because xcopy requires to add source directory name to target directory name when copying directories
win32:AFTER_SLASH = $$section(FILE, "/", -1, -1)
win32:BASE_NAME = $$section(FILE, "/", -2, -2)
win32:equals(AFTER_SLASH, ""):DESTDIR_SUFFIX = /$$BASE_NAME
win32:FILE ~= s,/$,,g
win32:FILE ~= s,/,\,g
DDIR = $$DESTDIR$$DESTDIR_SUFFIX/
win32:DDIR ~= s,/,\,g
isEmpty(NOW) {
# In case this is directory add "*" to copy contents of a directory instead of directory itself under linux.
!win32:equals(AFTER_SLASH, ""):FILE = $$FILE*
QMAKE_POST_LINK += $(COPY_DIR) $$quote($$FILE) $$quote($$DDIR) $$escape_expand(\\n\\t)
} else {
win32 {
system("cmd /C "xcopy $$quote($$FILE) $$quote($$DDIR) /s /e /q /y /i"")
} else {
system("cp -r $$FILE $$DESTDIR")
}
}
}
export(QMAKE_POST_LINK)
}
defineTest(includes) {
PROJECTS = $$1
for(PROJECT, PROJECTS) {
INCLUDEPATH += $$GLOBAL_PWD/$$PROJECT $$GLOBAL_PWD/$$PROJECT/include
}
export(INCLUDEPATH)
}
defineTest(links) {
PROJECTS = $$1
for(PROJECT, PROJECTS) {
LIBS += -l$$PROJECT$$CONFIGURATION_SUFFIX
}
export(LIBS)
}