1#load(qt_build_config) 2TEMPLATE = subdirs 3av.depends = core gui 4avwidgets.depends = av 5#MODULE_VERSION = $${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION} 6config_gl { 7 avwidgets.depends += opengl 8} 9#load(qt_module) 10PROJECTROOT = $$PWD/../.. 11include($$PROJECTROOT/common.pri) 12preparePaths($$OUT_PWD/../../out) 13 14VERSION = $$QTAV_VERSION 15# windows: Qt5AV.dll, not Qt1AV.dll 16!mac_framework: VERSION = $${QT_MAJOR_VERSION}.$${QT_MINOR_VERSION}.$${QT_PATCH_VERSION} 17 18PROJECT_LIBDIR = $$qtLongName($$BUILD_DIR/lib) 19 20LIBPREFIX = lib 21contains(QMAKE_HOST.os,Windows) { 22 SCRIPT_SUFFIX=bat 23 MOVE = move /y 24 COPY = copy /y 25 COPY_DIR = xcopy /s /q /y /i 26 MKDIR = mkdir 27 RM = del 28 RM_DIR = rd /s /q 29} else { 30 SCRIPT_SUFFIX=sh 31 MOVE = mv 32 COPY = cp -f 33 COPY_DIR = $$COPY -R 34 MKDIR = mkdir -p 35 RM = rm -f 36 RM_DIR = rm -rf 37} 38 39win32 { 40 *g++* { 41 LIBSUFFIX = a 42 } else { 43 LIBSUFFIX = lib 44 LIBPREFIX = 45 } 46} else:macx { 47 LIBSUFFIX = dylib 48} else:ios { 49 LIBSUFFIX = a 50} else { 51 LIBSUFFIX = so 52} 53DEBUG_SUF= 54mac: DEBUG_SUF=_debug 55win32: DEBUG_SUF=d 56NAME_SUF= 57iphonesimulator:!device: NAME_SUF=_iphonesimulator 58defineTest(createForModule) { 59 MODULE_NAME = $$1 60 MODULE_FULL_NAME = Qt$$MODULE_NAME 61 MODULE = $$lower($$MODULE_NAME) 62 MODULE_DEPENDS = $$eval($${MODULE}.depends) 63 MODULE_DEFINES = QT_$$upper($${MODULE})_LIB 64 static { 65 ORIG_LIB = $${LIBPREFIX}$${MODULE_FULL_NAME}.$${LIBSUFFIX} 66 ORIG_LIB_D = $${LIBPREFIX}$${MODULE_FULL_NAME}.$${LIBSUFFIX} 67 } else { 68 ORIG_LIB = $${LIBPREFIX}$$qtLibName($$MODULE_FULL_NAME, $$QTAV_MAJOR_VERSION).$${LIBSUFFIX} 69 ORIG_LIB_D = $${LIBPREFIX}$$qtLibName($$MODULE_FULL_NAME$${DEBUG_SUF}, $$QTAV_MAJOR_VERSION).$${LIBSUFFIX} 70 } 71greaterThan(QT_MAJOR_VERSION, 4) { 72 MODULE_PRF_FILE = $$OUT_PWD/mkspecs/features/$${MODULE}.prf 73 NEW_LIB = $${LIBPREFIX}Qt$${QT_MAJOR_VERSION}$${MODULE_NAME}$${NAME_SUF}.$${LIBSUFFIX} 74 NEW_LIB_D = $${LIBPREFIX}Qt$${QT_MAJOR_VERSION}$${MODULE_NAME}$${NAME_SUF}$${DEBUG_SUF}.$${LIBSUFFIX} 75 MKSPECS_DIR = $$[QT_HOST_DATA]/mkspecs 76} else { 77 MODULE_PRF_FILE = $$PWD/qt4/$${MODULE}.prf 78 NEW_LIB = $${ORIG_LIB} 79 NEW_LIB_D = $${ORIG_LIB_D} 80 MKSPECS_DIR=$$[QMAKE_MKSPECS] 81} 82 83# copy files to a dir need '/' at the end 84mac_framework { 85 sdk_install.commands = $$quote($$COPY_DIR $$system_path($$PROJECT_LIBDIR/$${MODULE_FULL_NAME}.framework) $$system_path($$[QT_INSTALL_LIBS])) 86 sdk_install.commands += $$quote($$RM $$system_path($$[QT_INSTALL_LIBS])/$${MODULE_FULL_NAME}.framework/*.prl) 87} else { 88 sdk_install.commands = $$quote($$MKDIR $$system_path($$[QT_INSTALL_HEADERS]/$${MODULE_FULL_NAME}/)) 89 sdk_install.commands += $$quote($$COPY $$system_path($$PROJECT_LIBDIR/*Qt*AV*.$$LIBSUFFIX*) $$system_path($$[QT_INSTALL_LIBS]/)) 90 sdk_install.commands += $$quote($$COPY $$system_path($$PROJECT_LIBDIR/$$ORIG_LIB) $$system_path($$[QT_INSTALL_LIBS]/$$NEW_LIB)) 91 sdk_install.commands += $$quote($$COPY $$system_path($$PROJECT_LIBDIR/$$ORIG_LIB_D) $$system_path($$[QT_INSTALL_LIBS]/$$NEW_LIB_D)) 92 static { 93 sdk_install.commands += $$quote($$COPY $$system_path($$PROJECT_LIBDIR/$$replace(ORIG_LIB, .$$LIBSUFFIX$, .prl)) $$system_path($$[QT_INSTALL_LIBS]/$$replace(NEW_LIB, .$$LIBSUFFIX$, .prl))) 94 } 95} 96sdk_install.commands += $$quote($$COPY $$system_path($$MODULE_PRF_FILE) $$system_path($$MKSPECS_DIR/features/$${MODULE}.prf)) 97greaterThan(QT_MAJOR_VERSION, 4) { 98 sdk_install.commands += $$quote($$COPY $$system_path($$OUT_PWD/mkspecs/modules/qt_lib_$${MODULE}*.pri) $$system_path($$MKSPECS_DIR/modules/)) 99} 100win32:sdk_install.commands += $$quote($$COPY $$system_path($$BUILD_DIR/bin/Qt*AV*.dll) $$system_path($$[QT_INSTALL_BINS]/)) 101 102mac_framework { 103 sdk_uninstall.commands = $$quote($$RM_DIR $$system_path($$[QT_INSTALL_LIBS]/$${MODULE_FULL_NAME}.framework)) 104} else { 105 sdk_uninstall.commands = $$quote($$QMAKE_DEL_FILE $$system_path($$[QT_INSTALL_LIBS]/*Qt*AV*)) 106} 107sdk_uninstall.commands += $$quote($$QMAKE_DEL_FILE $$system_path($$[QT_INSTALL_LIBS]/$$NEW_LIB)) 108sdk_uninstall.commands += $$quote($$RM_DIR $$system_path($$[QT_INSTALL_HEADERS]/$${MODULE_FULL_NAME})) 109sdk_uninstall.commands += $$quote($$QMAKE_DEL_FILE $$system_path($$MKSPECS_DIR/features/$${MODULE}.prf)) 110greaterThan(QT_MAJOR_VERSION, 4) { 111 sdk_uninstall.commands += $$quote($$QMAKE_DEL_FILE $$system_path($$MKSPECS_DIR/modules/qt_lib_$${MODULE}*.pri)) 112} 113win32: sdk_uninstall.commands += $$quote($$QMAKE_DEL_FILE $$system_path($$[QT_INSTALL_BINS]/Qt*AV*.dll)) 114android: sdk_uninstall.commands += $$quote($$QMAKE_DEL_FILE $$system_path($$[QT_INSTALL_LIBS]/libcommon.so)) 115 116write_file($$BUILD_DIR/sdk_install.$$SCRIPT_SUFFIX, sdk_install.commands, append) 117write_file($$BUILD_DIR/sdk_uninstall.$$SCRIPT_SUFFIX, sdk_uninstall.commands, append) 118 119message(run $$BUILD_DIR/sdk_install.$$SCRIPT_SUFFIX to install $${MODULE_FULL_NAME} as a Qt module) 120 121greaterThan(QT_MAJOR_VERSION, 4) { 122AV_PRF_CONT = "QTAV_MAJOR_VERSION=$$QTAV_MAJOR_VERSION" 123AV_PRF_CONT += "QTAV_MINOR_VERSION=$$QTAV_MINOR_VERSION" 124AV_PRF_CONT += "QTAV_PATCH_VERSION=$$QTAV_PATCH_VERSION" 125AV_PRF_CONT += "android: QMAKE_LFLAGS += -lOpenSLES" 126AV_PRF_CONT += "static: DEFINES += BUILD_QT$$upper($${MODULE})_STATIC" 127#AV_PRF_CONT += "QMAKE_LFLAGS += -lavutil -lavcodec -lavformat -lswscale" 128#config_avresample: AV_PRF_CONT += "QMAKE_LFLAGS += -lavresample" 129#config_swresample: AV_PRF_CONT += "QMAKE_LFLAGS += -lswresample" 130AV_PRF_CONT += "!contains(QT, $${MODULE}): QT *= $${MODULE}" 131mac_framework { 132# mac module with config 'lib_bundle' only include Headers dir. see qtAddModule in qt_functions.prf 133# but will add Qt.$${MODULE}.config to CONFIG 134# $$eval(QT.$${MODULE}.libs) for Qt5 135 AV_PRF_CONT += "INCLUDEPATH *= $$[QT_INSTALL_LIBS]/$${MODULE_FULL_NAME}.framework/Headers/$${MODULE_FULL_NAME}" 136} 137write_file($$MODULE_PRF_FILE, AV_PRF_CONT) 138 139 140MODULE_QMAKE_OUTDIR = $$OUT_PWD 141MODULE_CONFIG = $${MODULE} 142MODULE_INCNAME = $${MODULE_FULL_NAME} 143 144## the following is from mkspecs/features/qt_module_pris.prf 145mod_work_pfx = $$MODULE_QMAKE_OUTDIR/mkspecs/modules 146need_fwd_pri: \ 147 mod_inst_pfx = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst 148else: \ 149 mod_inst_pfx = $$mod_work_pfx 150!internal_module { 151 MODULE_ID = $$MODULE 152 MODULE_PRIVATE_PRI = $$mod_inst_pfx/qt_lib_$${MODULE}_private.pri 153 mods_to_load = $$MODULE $${MODULE}_private 154} else { 155 MODULE_ID = $${MODULE}_private 156 mods_to_load = $${MODULE}_private 157} 158need_fwd_pri: \ 159 pris_to_load = $$MODULE_ID 160else: \ 161 pris_to_load = $$mods_to_load 162MODULE_PRI = $$mod_inst_pfx/qt_lib_$${MODULE_ID}.pri 163MODULE_FWD_PRI = $$mod_work_pfx/qt_lib_$${MODULE_ID}.pri 164 165 166!build_pass { 167 168 # Create a module .pri file 169 host_build: \ 170 module_libs = "\$\$QT_MODULE_HOST_LIB_BASE" 171 else: \ 172 module_libs = "\$\$QT_MODULE_LIB_BASE" 173 unix:!static { 174 host_build: \ 175 module_rpath = "QT.$${MODULE_ID}.rpath = $$[QT_HOST_LIBS]" 176 else: \ 177 module_rpath = "QT.$${MODULE_ID}.rpath = $$[QT_INSTALL_LIBS/raw]" 178 } else { 179 module_rpath = 180 } 181 !isEmpty(QT_PRIVATE): \ 182 module_rundep = "QT.$${MODULE_ID}.run_depends = $$replace(QT_PRIVATE, -private$, _private)" 183 else: \ 184 module_rundep = 185 static: \ 186 module_build_type = staticlib 187 else:mac:contains(QT_CONFIG, qt_framework): \ 188 module_build_type = lib_bundle 189 else: \ 190 module_build_type = 191 internal_module: \ 192 module_build_type += internal_module 193 !isEmpty(MODULE_CONFIG): \ 194 module_config = "QT.$${MODULE_ID}.CONFIG = $$MODULE_CONFIG" 195 else: \ 196 module_config = 197 !isEmpty(MODULE_PLUGIN_TYPES): \ 198 module_plugtypes = "QT.$${MODULE_ID}.plugin_types = $$replace(MODULE_PLUGIN_TYPES, /.*$, )" 199 else: \ 200 module_plugtypes = 201 !no_module_headers:!minimal_syncqt { 202 MODULE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME 203 MODULE_PRIVATE_INCLUDES = \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION \ 204 \$\$QT_MODULE_INCLUDE_BASE/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME 205 } 206 split_incpath: \ 207 MODULE_SHADOW_INCLUDES = $$replace(MODULE_INCLUDES, ^\\\$\\\$QT_MODULE_INCLUDE_BASE, \ 208 $$MODULE_BASE_OUTDIR/include) 209 MODULE_INCLUDES += $$MODULE_AUX_INCLUDES 210 MODULE_PRIVATE_INCLUDES += $$MODULE_PRIVATE_AUX_INCLUDES 211 internal_module: \ 212 MODULE_INCLUDES += $$MODULE_PRIVATE_INCLUDES 213 split_incpath: \ 214 MODULE_FWD_PRI_CONT_SUFFIX += "QT.$${MODULE_ID}.includes += $$MODULE_SHADOW_INCLUDES" 215 MODULE_PRI_CONT = \ 216 "QT.$${MODULE_ID}.VERSION = $${VERSION}" \ 217 "QT.$${MODULE_ID}.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \ 218 "QT.$${MODULE_ID}.MINOR_VERSION = $$section(VERSION, ., 1, 1)" \ 219 "QT.$${MODULE_ID}.PATCH_VERSION = $$section(VERSION, ., 2, 2)" \ 220 "" \ 221 "QT.$${MODULE_ID}.name = $${MODULE_FULL_NAME}" \ 222 "QT.$${MODULE_ID}.libs = $$module_libs" \ 223 $$module_rpath \ 224 "QT.$${MODULE_ID}.includes = $$MODULE_INCLUDES" 225 !host_build: MODULE_PRI_CONT += \ 226 "QT.$${MODULE_ID}.bins = \$\$QT_MODULE_BIN_BASE" \ 227 "QT.$${MODULE_ID}.libexecs = \$\$QT_MODULE_LIBEXEC_BASE" \ 228 "QT.$${MODULE_ID}.plugins = \$\$QT_MODULE_PLUGIN_BASE" \ 229 "QT.$${MODULE_ID}.imports = \$\$QT_MODULE_IMPORT_BASE" \ 230 "QT.$${MODULE_ID}.qml = \$\$QT_MODULE_QML_BASE" \ 231 $$module_plugtypes 232 MODULE_PRI_CONT += \ 233 "QT.$${MODULE_ID}.depends =$$join(MODULE_DEPENDS, " ", " ")" \ 234 $$module_rundep \ 235 "QT.$${MODULE_ID}.module_config =$$join(module_build_type, " ", " ")" \ 236 $$module_config \ 237 "QT.$${MODULE_ID}.DEFINES = $$MODULE_DEFINES" \ # assume sufficient quoting 238 "" \ 239 "QT_MODULES += $$MODULE" 240 write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") 241 !internal_module { 242 module_build_type += internal_module no_link 243 MODULE_PRIVATE_PRI_CONT = \ 244 "QT.$${MODULE}_private.VERSION = $${VERSION}" \ 245 "QT.$${MODULE}_private.MAJOR_VERSION = $$section(VERSION, ., 0, 0)" \ 246 "QT.$${MODULE}_private.MINOR_VERSION = $$section(VERSION, ., 1, 1)" \ 247 "QT.$${MODULE}_private.PATCH_VERSION = $$section(VERSION, ., 2, 2)" \ 248 "" \ 249 "QT.$${MODULE}_private.name = $${MODULE_FULL_NAME}" \ # Same name as base module 250 "QT.$${MODULE}_private.libs = $$module_libs" \ 251 "QT.$${MODULE}_private.includes = $$MODULE_PRIVATE_INCLUDES" \ 252 "QT.$${MODULE}_private.depends = $$replace($$list($$MODULE $$QT_FOR_PRIVATE), -private$, _private)" \ 253 "QT.$${MODULE}_private.module_config =$$join(module_build_type, " ", " ")" 254 write_file($$MODULE_PRIVATE_PRI, MODULE_PRIVATE_PRI_CONT)|error("Aborting.") 255 } 256 MODULE_PRI_FILES = $$MODULE_PRI $$MODULE_PRIVATE_PRI 257 258 need_fwd_pri { 259 260 split_incpath: \ 261 MODULE_BASE_INCDIR = $$MODULE_BASE_INDIR 262 else: \ 263 MODULE_BASE_INCDIR = $$MODULE_BASE_OUTDIR 264 265 # Create a forwarding module .pri file 266 MODULE_FWD_PRI_CONT = \ 267 "QT_MODULE_BIN_BASE = $$MODULE_BASE_OUTDIR/bin" \ 268 "QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_INCDIR/include" \ 269 "QT_MODULE_IMPORT_BASE = $$MODULE_BASE_OUTDIR/imports" \ 270 "QT_MODULE_QML_BASE = $$MODULE_BASE_OUTDIR/qml" \ 271 "QT_MODULE_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \ 272 "QT_MODULE_HOST_LIB_BASE = $$MODULE_BASE_OUTDIR/lib" \ 273 "QT_MODULE_LIBEXEC_BASE = $$MODULE_BASE_OUTDIR/libexec" \ 274 "QT_MODULE_PLUGIN_BASE = $$MODULE_BASE_OUTDIR/plugins" \ 275 "include($$MODULE_PRI)" 276 !internal_module: MODULE_FWD_PRI_CONT += \ 277 "include($$MODULE_PRIVATE_PRI)" 278 MODULE_FWD_PRI_CONT += $$MODULE_FWD_PRI_CONT_SUFFIX 279 write_file($$MODULE_FWD_PRI, MODULE_FWD_PRI_CONT)|error("Aborting.") 280 touch($$MODULE_FWD_PRI, $$MODULE_PRI) 281 MODULE_PRI_FILES += $$MODULE_FWD_PRI 282 283 } else { 284 285 # This is needed for the direct include() below. Mirrors qt_config.prf 286 QT_MODULE_BIN_BASE = $$[QT_INSTALL_BINS] 287 QT_MODULE_INCLUDE_BASE = $$[QT_INSTALL_HEADERS] 288 QT_MODULE_IMPORT_BASE = $$[QT_INSTALL_IMPORTS] 289 QT_MODULE_QML_BASE = $$[QT_INSTALL_QML] 290 QT_MODULE_LIB_BASE = $$[QT_INSTALL_LIBS] 291 QT_MODULE_HOST_LIB_BASE = $$[QT_HOST_LIBS] 292 QT_MODULE_LIBEXEC_BASE = $$[QT_INSTALL_LIBEXECS] 293 QT_MODULE_PLUGIN_BASE = $$[QT_INSTALL_PLUGINS] 294 295 } 296 297 # Then, inject the new module into the current cache state 298 !contains(QMAKE_INTERNAL_INCLUDED_FILES, $$MODULE_PRI): \ # before the actual include()! 299 cache(QMAKE_INTERNAL_INCLUDED_FILES, add transient, MODULE_PRI_FILES) 300 for(pri, pris_to_load): \ 301 include($$mod_work_pfx/qt_lib_$${pri}.pri) 302 for(mod, mods_to_load) { 303 for(var, $$list(VERSION MAJOR_VERSION MINOR_VERSION PATCH_VERSION \ 304 name depends run_depends plugin_types module_config CONFIG DEFINES \ 305 includes bins libs libexecs plugins imports qml \ 306 )):defined(QT.$${mod}.$$var, var):cache(QT.$${mod}.$$var, transient) 307 } 308 cache(QT_MODULES, transient) 309 310} # !build_pass 311 312 313# Schedule the regular .pri file for installation 314CONFIG += qt_install_module 315} #Qt5 316 317eval(qt$${MODULE}_pri.files = $$MODULE_PRI_FILES) 318eval(qt$${MODULE}_pri.path = $$MKSPECS_DIR/modules) 319greaterThan(QT_MAJOR_VERSION, 4): INSTALLS += qt$${MODULE}_pri 320eval(qt$${MODULE}_prf.files = $$MODULE_PRF_FILE) 321eval(qt$${MODULE}_prf.path = $$MKSPECS_DIR/features) 322INSTALLS += qt$${MODULE}_prf 323 324# export is required, otherwise INSTALLS is not valid 325 export(qt$${MODULE}_pri.files) 326 export(qt$${MODULE}_pri.path) 327 export(qt$${MODULE}_prf.files) 328 export(qt$${MODULE}_prf.path) 329 !contains(QMAKE_HOST.os, Windows):export(INSTALLS) 330 331 return(true) 332} #createForModule 333 334write_file($$BUILD_DIR/sdk_install.$$SCRIPT_SUFFIX) 335write_file($$BUILD_DIR/sdk_uninstall.$$SCRIPT_SUFFIX) 336 337avmodules = AV 338!no-widgets: avmodules += AVWidgets 339for(module, $$list($$avmodules)) { 340message("creating script for module Qt$$module ...") 341 createForModule($$module) 342} 343 344#headers 345!mac_framework { 346 sdk_h_install.commands = $$quote($$COPY $$system_path($$PROJECTROOT/src/QtAV/*.h) $$system_path($$[QT_INSTALL_HEADERS]/QtAV/)) 347 sdk_h_install.commands += $$quote($$COPY $$system_path($$PROJECTROOT/src/QtAV/QtAV) $$system_path($$[QT_INSTALL_HEADERS]/QtAV/)) 348 !no-widgets { 349 sdk_h_install.commands += $$quote($$COPY $$system_path($$PROJECTROOT/widgets/QtAVWidgets/*.h) $$system_path($$[QT_INSTALL_HEADERS]/QtAVWidgets/)) 350 sdk_h_install.commands += $$quote($$COPY $$system_path($$PROJECTROOT/widgets/QtAVWidgets/QtAVWidgets) $$system_path($$[QT_INSTALL_HEADERS]/QtAVWidgets/)) 351 } 352 sdk_h_install.commands += $$quote($$MKDIR $$system_path($$[QT_INSTALL_HEADERS]/QtAV/$$VERSION/QtAV/)) 353 contains(QMAKE_HOST.os,Windows) { 354 sdk_h_install.commands += $$quote($$COPY_DIR $$system_path($$PROJECTROOT/src/QtAV/private) $$system_path($$[QT_INSTALL_HEADERS]/QtAV/private)) 355 sdk_h_install.commands += $$quote($$COPY_DIR $$system_path($$PROJECTROOT/src/QtAV/private) $$system_path($$[QT_INSTALL_HEADERS]/QtAV/$$VERSION/QtAV/private)) 356 } else { 357 sdk_h_install.commands += $$quote($$COPY_DIR $$system_path($$PROJECTROOT/src/QtAV/private) $$system_path($$[QT_INSTALL_HEADERS]/QtAV)) 358 sdk_h_install.commands += $$quote($$COPY_DIR $$system_path($$PROJECTROOT/src/QtAV/private) $$system_path($$[QT_INSTALL_HEADERS]/QtAV/$$VERSION/QtAV)) 359 } 360 write_file($$BUILD_DIR/sdk_install.$$SCRIPT_SUFFIX, sdk_h_install.commands, append) 361} 362#qml 363greaterThan(QT_MAJOR_VERSION, 4) { 364 # qtHaveModule does not exist in Qt5.0 365 isEqual(QT_MINOR_VERSION, 0)|qtHaveModule(quick) { 366 contains(QMAKE_HOST.os,Windows) { 367 sdk_qml_install.commands = $$quote($$COPY_DIR $$system_path($$BUILD_DIR/bin/QtAV) $$system_path($$[QT_INSTALL_QML]/QtAV)) 368 } else { 369 sdk_qml_install.commands = $$quote($$COPY_DIR $$system_path($$BUILD_DIR/bin/QtAV) $$system_path($$[QT_INSTALL_QML])) 370 } 371 static: sdk_qml_install.commands += $$quote($$COPY $$system_path($$PROJECT_LIBDIR/$$ORIG_LIB/libQmlAV*) $$system_path($$[QT_INSTALL_QML]/QtAV/)) 372#static qml plugin is not copied to bin/QtAV. copy it and prl 373 sdk_qml_install.commands += $$quote($$COPY $$system_path($$PROJECTROOT/qml/plugins.qmltypes) $$system_path($$[QT_INSTALL_QML]/QtAV/)) 374 sdk_qml_uninstall.commands = $$quote($$RM_DIR $$system_path($$[QT_INSTALL_QML]/QtAV)) 375 write_file($$BUILD_DIR/sdk_install.$$SCRIPT_SUFFIX, sdk_qml_install.commands, append) 376 write_file($$BUILD_DIR/sdk_uninstall.$$SCRIPT_SUFFIX, sdk_qml_uninstall.commands, append) 377 } 378} 379