1 defineReplace(cleanPath) {
3 contains(1, ^/.*):pfx = /
8 equals(seg, ..):out = $$member(out, 0, -2)
9 else:!equals(seg, .):out += $$seg
11 return($$join(out, /, $$pfx))
14 defineReplace(targetPath) {
15 return($$replace(1, /, $$QMAKE_DIR_SEP))
18 defineReplace(addNewline) {
19 return($$escape_expand(\\n\\t))
22 defineReplace(qtLibraryName) {
25 CONFIG(debug, debug|release) {
26 !debug_and_release|build_pass {
27 mac:RET = $$member(LIBRARY_NAME, 0)_debug
28 else:win32:RET = $$member(LIBRARY_NAME, 0)d
31 isEmpty(RET):RET = $$LIBRARY_NAME
35 # For use in custom compilers which just copy files
37 defineReplace(stripSrcDir) {
39 !contains(1, ^.:.*):1 = $$OUT_PWD/$$1
41 !contains(1, ^/.*):1 = $$OUT_PWD/$$1
43 out = $$cleanPath($$1)
44 out ~= s|^$$re_escape($$_PRO_FILE_PWD_/)||$$i_flag
48 isEmpty(TEST):CONFIG(debug, debug|release) {
49 !debug_and_release|build_pass {
54 isEmpty(GCS_LIBRARY_BASENAME) {
55 GCS_LIBRARY_BASENAME = lib
58 DEFINES += GCS_LIBRARY_BASENAME=\\\"$$GCS_LIBRARY_BASENAME\\\"
65 #ideally, we would want a qmake.conf patch, but this does the trick...
66 win32:!isEmpty(QMAKE_SH):QMAKE_COPY_DIR = cp -r -f
68 GCS_SOURCE_TREE = $$PWD
69 isEmpty(GCS_BUILD_TREE) {
70 sub_dir = $$_PRO_FILE_PWD_
71 sub_dir ~= s,^$$re_escape($$PWD),,
72 GCS_BUILD_TREE = $$cleanPath($$OUT_PWD)
73 GCS_BUILD_TREE ~= s,$$re_escape($$sub_dir)$,,
75 GCS_APP_PATH = $$GCS_BUILD_TREE/bin
77 GCS_APP_TARGET = "OpenPilot GCS"
78 GCS_LIBRARY_PATH = $$GCS_APP_PATH/$${GCS_APP_TARGET}.app/Contents/Plugins
79 GCS_PLUGIN_PATH = $$GCS_LIBRARY_PATH
80 GCS_QT_QML_PATH = $$GCS_APP_PATH/$${GCS_APP_TARGET}.app/Contents/Imports
81 GCS_LIBEXEC_PATH = $$GCS_APP_PATH/$${GCS_APP_TARGET}.app/Contents/Resources
82 GCS_DATA_PATH = $$GCS_APP_PATH/$${GCS_APP_TARGET}.app/Contents/Resources
83 GCS_DATA_BASENAME = Resources
84 GCS_DOC_PATH = $$GCS_DATA_PATH/doc
88 contains(TEMPLATE, vc.*)|contains(TEMPLATE_PREFIX, vc):vcproj = 1
89 GCS_APP_TARGET = openpilotgcs
91 GCS_APP_WRAPPER = openpilotgcs
92 GCS_APP_TARGET = openpilotgcs.bin
93 GCS_QT_LIBRARY_PATH = $$GCS_BUILD_TREE/$$GCS_LIBRARY_BASENAME/qt5
94 GCS_QT_PLUGINS_PATH = $$GCS_BUILD_TREE/$$GCS_LIBRARY_BASENAME/qt5/plugins
95 GCS_QT_QML_PATH = $$GCS_BUILD_TREE/$$GCS_LIBRARY_BASENAME/qt5/qml
97 GCS_LIBRARY_PATH = $$GCS_BUILD_TREE/$$GCS_LIBRARY_BASENAME/openpilotgcs
98 GCS_PLUGIN_PATH = $$GCS_LIBRARY_PATH/plugins
99 GCS_LIBEXEC_PATH = $$GCS_APP_PATH # FIXME
100 GCS_DATA_PATH = $$GCS_BUILD_TREE/share/openpilotgcs
101 GCS_DATA_BASENAME = share/openpilotgcs
102 GCS_DOC_PATH = $$GCS_BUILD_TREE/share/doc
103 !isEqual(GCS_SOURCE_TREE, $$GCS_BUILD_TREE):copydata = 1
107 DEFINES += GCS_DATA_BASENAME=\\\"$$GCS_DATA_BASENAME\\\"
111 $$GCS_SOURCE_TREE/src/libs
114 $$GCS_SOURCE_TREE/src/libs
116 LIBS += -L$$GCS_LIBRARY_PATH
118 # DEFINES += QT_NO_CAST_FROM_ASCII
119 DEFINES += QT_NO_CAST_TO_ASCII
120 #DEFINES += QT_USE_FAST_OPERATOR_PLUS
121 #DEFINES += QT_USE_FAST_CONCATENATION
124 CONFIG(debug, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/debug-shared
125 CONFIG(release, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/release-shared
127 CONFIG(debug, debug|release):MOC_DIR = $${OUT_PWD}/.moc/debug-shared
128 CONFIG(release, debug|release):MOC_DIR = $${OUT_PWD}/.moc/release-shared
130 RCC_DIR = $${OUT_PWD}/.rcc
131 UI_DIR = $${OUT_PWD}/.uic
135 # Bail out on non-selfcontained libraries. Just a security measure
136 # to prevent checking in code that does not compile on other platforms.
137 QMAKE_LFLAGS += -Wl,--allow-shlib-undefined -Wl,--no-undefined
141 # Fix ((packed)) pragma handling issue introduced when upgrading MinGW from 4.4 to 4.8
142 # See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991
143 # The ((packet)) pragma is used in uav metadata struct and other places
144 QMAKE_CXXFLAGS += -mno-ms-bitfields