OP-1516 fixed boundf mistake
[librepilot.git] / ground / openpilotgcs / openpilotgcs.pri
blobea1481589277e8f17d0cd4b48c535f66ca59dbec
1 defineReplace(cleanPath) {
2     win32:1 ~= s|\\\\|/|g
3     contains(1, ^/.*):pfx = /
4     else:pfx =
5     segs = $$split(1, /)
6     out =
7     for(seg, segs) {
8         equals(seg, ..):out = $$member(out, 0, -2)
9         else:!equals(seg, .):out += $$seg
10     }
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) {
23    unset(LIBRARY_NAME)
24    LIBRARY_NAME = $$1
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
29       }
30    }
31    isEmpty(RET):RET = $$LIBRARY_NAME
32    return($$RET)
35 # For use in custom compilers which just copy files
36 win32:i_flag = i
37 defineReplace(stripSrcDir) {
38     win32 {
39         !contains(1, ^.:.*):1 = $$OUT_PWD/$$1
40     } else {
41         !contains(1, ^/.*):1 = $$OUT_PWD/$$1
42     }
43     out = $$cleanPath($$1)
44     out ~= s|^$$re_escape($$_PRO_FILE_PWD_/)||$$i_flag
45     return($$out)
48 isEmpty(TEST):CONFIG(debug, debug|release) {
49     !debug_and_release|build_pass {
50         TEST = 1
51     }
54 isEmpty(GCS_LIBRARY_BASENAME) {
55     GCS_LIBRARY_BASENAME = lib
58 DEFINES += GCS_LIBRARY_BASENAME=\\\"$$GCS_LIBRARY_BASENAME\\\"
60 equals(TEST, 1) {
61     QT +=testlib
62     DEFINES += WITH_TESTS
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)$,,
76 # Find the tools directory,
77 # try from Makefile (not run by Qt Creator),
78 TOOLS_DIR = $$(TOOLS_DIR)
79 isEmpty(TOOLS_DIR) {
80     # check for custom enviroment variable,
81     TOOLS_DIR = $$(OPENPILOT_TOOLS_DIR)
82     # fallback to default location.
83     isEmpty(TOOLS_DIR):TOOLS_DIR = $$clean_path($$GCS_SOURCE_TREE/../../tools)
86 GCS_APP_PATH = $$GCS_BUILD_TREE/bin
87 macx {
88     GCS_APP_TARGET   = "OpenPilot GCS"
89     GCS_LIBRARY_PATH = $$GCS_APP_PATH/$${GCS_APP_TARGET}.app/Contents/Plugins
90     GCS_PLUGIN_PATH  = $$GCS_LIBRARY_PATH
91     GCS_QT_QML_PATH = $$GCS_APP_PATH/$${GCS_APP_TARGET}.app/Contents/Imports
92     GCS_LIBEXEC_PATH = $$GCS_APP_PATH/$${GCS_APP_TARGET}.app/Contents/Resources
93     GCS_DATA_PATH    = $$GCS_APP_PATH/$${GCS_APP_TARGET}.app/Contents/Resources
94     GCS_DATA_BASENAME = Resources
95     GCS_DOC_PATH     = $$GCS_DATA_PATH/doc
96     copydata = 1
97     copyqt = 1
98 } else {
99     !isEqual(GCS_SOURCE_TREE, $$GCS_BUILD_TREE):copydata = 1
100     win32 {
101         SDL_DIR = $$(SDL_DIR)
102         isEmpty(SDL_DIR):SDL_DIR = $${TOOLS_DIR}/SDL-1.2.15
104         OPENSSL_DIR = $$(OPENSSL_DIR)
105         isEmpty(OPENSSL_DIR):OPENSSL_DIR = $${TOOLS_DIR}/openssl-1.0.1e-win32
107         MESAWIN_DIR = $$(MESAWIN_DIR)
108         isEmpty(MESAWIN_DIR):MESAWIN_DIR = $${TOOLS_DIR}/mesawin
110         contains(TEMPLATE, vc.*)|contains(TEMPLATE_PREFIX, vc):vcproj = 1
111         GCS_APP_TARGET   = openpilotgcs
112         copyqt = $$copydata
113     } else {
114         GCS_APP_WRAPPER  = openpilotgcs
115         GCS_APP_TARGET   = openpilotgcs.bin
116         GCS_QT_LIBRARY_PATH = $$GCS_BUILD_TREE/$$GCS_LIBRARY_BASENAME/qt5
117         GCS_QT_PLUGINS_PATH = $$GCS_BUILD_TREE/$$GCS_LIBRARY_BASENAME/qt5/plugins
118         GCS_QT_QML_PATH = $$GCS_BUILD_TREE/$$GCS_LIBRARY_BASENAME/qt5/qml
120         QT_INSTALL_DIR = $$clean_path($$[QT_INSTALL_LIBS]/../../../..)
121         equals(QT_INSTALL_DIR, $$TOOLS_DIR) {
122             copyqt = 1
123         } else {
124             copyqt = 0 
125         }
127         FORCE_COPY_QT = $$(FORCE_COPY_QT)
128         !isEmpty(FORCE_COPY_QT):copyqt = 1 
129     }
130     GCS_LIBRARY_PATH = $$GCS_BUILD_TREE/$$GCS_LIBRARY_BASENAME/openpilotgcs
131     GCS_PLUGIN_PATH  = $$GCS_LIBRARY_PATH/plugins
132     GCS_LIBEXEC_PATH = $$GCS_APP_PATH # FIXME
133     GCS_DATA_PATH    = $$GCS_BUILD_TREE/share/openpilotgcs
134     GCS_DATA_BASENAME = share/openpilotgcs
135     GCS_DOC_PATH     = $$GCS_BUILD_TREE/share/doc
139 DEFINES += GCS_DATA_BASENAME=\\\"$$GCS_DATA_BASENAME\\\"
142 INCLUDEPATH += \
143     $$GCS_SOURCE_TREE/src/libs
145 DEPENDPATH += \
146     $$GCS_SOURCE_TREE/src/libs
148 LIBS += -L$$GCS_LIBRARY_PATH
150 # DEFINES += QT_NO_CAST_FROM_ASCII
151 DEFINES += QT_NO_CAST_TO_ASCII
152 #DEFINES += QT_USE_FAST_OPERATOR_PLUS
153 #DEFINES += QT_USE_FAST_CONCATENATION
155 unix {
156     CONFIG(debug, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/debug-shared
157     CONFIG(release, debug|release):OBJECTS_DIR = $${OUT_PWD}/.obj/release-shared
159     CONFIG(debug, debug|release):MOC_DIR = $${OUT_PWD}/.moc/debug-shared
160     CONFIG(release, debug|release):MOC_DIR = $${OUT_PWD}/.moc/release-shared
162     RCC_DIR = $${OUT_PWD}/.rcc
163     UI_DIR = $${OUT_PWD}/.uic
166 linux-g++-* {
167     # Bail out on non-selfcontained libraries. Just a security measure
168     # to prevent checking in code that does not compile on other platforms.
169     QMAKE_LFLAGS += -Wl,--allow-shlib-undefined -Wl,--no-undefined
172 win32 {
173     # Fix ((packed)) pragma handling issue introduced when upgrading MinGW from 4.4 to 4.8
174     # See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991
175     # The ((packet)) pragma is used in uav metadata struct and other places
176     QMAKE_CXXFLAGS += -mno-ms-bitfields