mirror of
https://github.com/wang-bin/QtAV.git
synced 2026-10-16 20:21:20 +08:00
support msvc static build. qml is not supported yet
tested qt5.7.0 vs2015 x86 from http://www.npcglib.org/~stathis/blog/ precompiled-qt4-qt5/
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
VERSION = $$QTAV_VERSION
|
||||
!static:VERSION = $$QTAV_VERSION # vc: will create exp and lib, result in static build error
|
||||
QT += sql
|
||||
android {
|
||||
QT += androidextras
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
TARGET = QMLPlayer
|
||||
VERSION = $$QTAV_VERSION
|
||||
!static:VERSION = $$QTAV_VERSION
|
||||
QT += av svg qml quick sql
|
||||
android {
|
||||
QT += androidextras
|
||||
|
||||
@@ -52,7 +52,7 @@ LIB_VERSION = $$QTAV_VERSION #0.x.y may be wrong for dll
|
||||
|
||||
# If user haven't supplied STATICLINK, then auto-detect
|
||||
isEmpty(STATICLINK) {
|
||||
contains(CONFIG, staticlib) {
|
||||
static|contains(CONFIG, staticlib) {
|
||||
STATICLINK = 1
|
||||
} else {
|
||||
STATICLINK = 0
|
||||
|
||||
@@ -63,7 +63,7 @@ int main(int argc, char *argv[])
|
||||
VideoRenderer *renderer = 0;
|
||||
bool textfilter = false;
|
||||
if (vo == QLatin1String("gl")) {
|
||||
renderer = VideoRenderer::create(VideoRendererId_GLWidget);
|
||||
renderer = VideoRenderer::create(VideoRendererId_GLWidget2);
|
||||
textfilter = true;
|
||||
} else if (vo == QLatin1String("d2d")) {
|
||||
renderer = VideoRenderer::create(VideoRendererId_Direct2D);
|
||||
|
||||
@@ -4,7 +4,7 @@ contains(QT_CONFIG, opengl): QT += opengl
|
||||
QT += sql svg
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
TRANSLATIONS = res/player_zh_CN.ts
|
||||
VERSION = $$QTAV_VERSION
|
||||
!static:VERSION = $$QTAV_VERSION # vc: will create exp and lib, result in static build error
|
||||
|
||||
PROJECTROOT = $$PWD/../..
|
||||
include($$PROJECTROOT/src/libQtAV.pri)
|
||||
|
||||
+3
-1
@@ -51,7 +51,7 @@ eval(LIB$$upper($$NAME)_PRI_INCLUDED = 1)
|
||||
LIB_VERSION = $$QTAV_VERSION #0.x.y may be wrong for dll
|
||||
# If user haven't supplied STATICLINK, then auto-detect
|
||||
isEmpty(STATICLINK) {
|
||||
contains(CONFIG, staticlib) {
|
||||
static|contains(CONFIG, staticlib) {
|
||||
STATICLINK = 1
|
||||
} else {
|
||||
STATICLINK = 0
|
||||
@@ -60,6 +60,8 @@ isEmpty(STATICLINK) {
|
||||
# in iOS 8.1.
|
||||
ios:STATICLINK = 1
|
||||
}
|
||||
isEqual(STATICLINK, 1):DEFINES += BUILD_$$upper($$NAME)_STATIC
|
||||
|
||||
TEMPLATE += fakelib
|
||||
PROJECT_TARGETNAME = $$qtLibraryTarget($$NAME)
|
||||
TEMPLATE -= fakelib
|
||||
|
||||
+4
-4
@@ -49,10 +49,9 @@ NAME = QtAV
|
||||
eval(LIB$$upper($$NAME)_PRI_INCLUDED = 1)
|
||||
|
||||
LIB_VERSION = $$QTAV_VERSION #0.x.y may be wrong for dll
|
||||
|
||||
# If user haven't supplied STATICLINK, then auto-detect
|
||||
isEmpty(STATICLINK) {
|
||||
contains(CONFIG, staticlib) {
|
||||
static|contains(CONFIG, staticlib) {
|
||||
STATICLINK = 1
|
||||
} else {
|
||||
STATICLINK = 0
|
||||
@@ -61,6 +60,7 @@ isEmpty(STATICLINK) {
|
||||
# in iOS 8.1.
|
||||
ios:STATICLINK = 1
|
||||
}
|
||||
isEqual(STATICLINK, 1):DEFINES += BUILD_$$upper($$NAME)_STATIC
|
||||
|
||||
TEMPLATE += fakelib
|
||||
PROJECT_TARGETNAME = $$qtLibraryTarget($$NAME)
|
||||
@@ -109,9 +109,9 @@ DEPENDPATH *= $$PROJECT_SRCPATH
|
||||
CONFIG *= create_prl #
|
||||
DEFINES += BUILD_$$upper($$NAME)_LIB #win32-msvc*
|
||||
isEqual(STATICLINK, 1) {
|
||||
CONFIG -= shared dll ##otherwise the following shared is true, why?
|
||||
CONFIG -= shared dll ##otherwise the following shared is true, why?
|
||||
CONFIG *= staticlib
|
||||
} else {
|
||||
} else {
|
||||
CONFIG *= shared #shared includes dll
|
||||
}
|
||||
|
||||
|
||||
+3
-4
@@ -14,9 +14,8 @@ greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
config_gl: QT += opengl
|
||||
}
|
||||
CONFIG *= qtav-buildlib
|
||||
staticlib: DEFINES += BUILD_QTAV_STATIC
|
||||
static: CONFIG *= static_ffmpeg
|
||||
INCLUDEPATH += $$[QT_INSTALL_HEADERS]
|
||||
INCLUDEPATH += $$[QT_INSTALL_HEADERS] # TODO: ffmpeg dir
|
||||
|
||||
#mac: simd.prf will load qt_build_config and the result is soname will prefixed with QT_INSTALL_LIBS and link flag will append soname after QMAKE_LFLAGS_SONAME
|
||||
config_libcedarv: CONFIG *= neon config_simd #need by qt4 addSimdCompiler(). neon or config_neon is required because tests/arch can not detect neon
|
||||
@@ -31,7 +30,7 @@ PROJECTROOT = $$PWD/..
|
||||
preparePaths($$OUT_PWD/../out)
|
||||
exists($$PROJECTROOT/extra/qtLongName(include)): INCLUDEPATH += $$PROJECTROOT/extra/qtLongName(include)
|
||||
exists($$PROJECTROOT/extra/qtLongName(lib)): LIBS += -L$$PROJECTROOT/extra/qtLongName(lib)
|
||||
|
||||
staticlib: DEFINES += BUILD_QTAV_STATIC
|
||||
|
||||
config_uchardet {
|
||||
DEFINES += LINK_UCHARDET
|
||||
@@ -97,7 +96,7 @@ win32 {
|
||||
}
|
||||
debug: QMAKE_LFLAGS += /SAFESEH:NO
|
||||
#CXXFLAGS debug: /MTd
|
||||
QMAKE_LFLAGS *= /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib #for msbuild vs2013
|
||||
!static:QMAKE_LFLAGS *= /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib #for msbuild vs2013
|
||||
|
||||
}
|
||||
capi {
|
||||
|
||||
@@ -8,7 +8,6 @@ TEMPLATE = app
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||
CONFIG -= app_bundle
|
||||
|
||||
STATICLINK = 0
|
||||
PROJECTROOT = $$PWD/../..
|
||||
include($$PROJECTROOT/src/libQtAV.pri)
|
||||
include($$PROJECTROOT/widgets/libQtAVWidgets.pri)
|
||||
|
||||
@@ -61,8 +61,13 @@ defineTest(createForModule) {
|
||||
MODULE = $$lower($$MODULE_NAME)
|
||||
MODULE_DEPENDS = $$eval($${MODULE}.depends)
|
||||
MODULE_DEFINES = QT_$$upper($${MODULE})_LIB
|
||||
ORIG_LIB = $${LIBPREFIX}$$qtLibName($$MODULE_FULL_NAME, $$QTAV_MAJOR_VERSION).$${LIBSUFFIX}
|
||||
ORIG_LIB_D = $${LIBPREFIX}$$qtLibName($$MODULE_FULL_NAME$${DEBUG_SUF}, $$QTAV_MAJOR_VERSION).$${LIBSUFFIX}
|
||||
static {
|
||||
ORIG_LIB = $${LIBPREFIX}$${MODULE_FULL_NAME}.$${LIBSUFFIX}
|
||||
ORIG_LIB_D = $${LIBPREFIX}$${MODULE_FULL_NAME}.$${LIBSUFFIX}
|
||||
} else {
|
||||
ORIG_LIB = $${LIBPREFIX}$$qtLibName($$MODULE_FULL_NAME, $$QTAV_MAJOR_VERSION).$${LIBSUFFIX}
|
||||
ORIG_LIB_D = $${LIBPREFIX}$$qtLibName($$MODULE_FULL_NAME$${DEBUG_SUF}, $$QTAV_MAJOR_VERSION).$${LIBSUFFIX}
|
||||
}
|
||||
greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
MODULE_PRF_FILE = $$OUT_PWD/mkspecs/features/$${MODULE}.prf
|
||||
NEW_LIB = $${LIBPREFIX}Qt$${QT_MAJOR_VERSION}$${MODULE_NAME}$${NAME_SUF}.$${LIBSUFFIX}
|
||||
@@ -117,6 +122,7 @@ AV_PRF_CONT = "QTAV_MAJOR_VERSION=$$QTAV_MAJOR_VERSION"
|
||||
AV_PRF_CONT += "QTAV_MINOR_VERSION=$$QTAV_MINOR_VERSION"
|
||||
AV_PRF_CONT += "QTAV_PATCH_VERSION=$$QTAV_PATCH_VERSION"
|
||||
AV_PRF_CONT += "android: QMAKE_LFLAGS += -lOpenSLES"
|
||||
AV_PRF_CONT += "static: DEFINES += BUILD_QT$$upper($${MODULE})_STATIC"
|
||||
#AV_PRF_CONT += "QMAKE_LFLAGS += -lavutil -lavcodec -lavformat -lswscale"
|
||||
#config_avresample: AV_PRF_CONT += "QMAKE_LFLAGS += -lavresample"
|
||||
#config_swresample: AV_PRF_CONT += "QMAKE_LFLAGS += -lswresample"
|
||||
|
||||
@@ -51,7 +51,7 @@ eval(LIB$$upper($$NAME)_PRI_INCLUDED = 1)
|
||||
LIB_VERSION = $$QTAV_VERSION #0.x.y may be wrong for dll
|
||||
# If user haven't supplied STATICLINK, then auto-detect
|
||||
isEmpty(STATICLINK) {
|
||||
contains(CONFIG, staticlib) {
|
||||
static|contains(CONFIG, staticlib) {
|
||||
STATICLINK = 1
|
||||
} else {
|
||||
STATICLINK = 0
|
||||
@@ -60,6 +60,8 @@ isEmpty(STATICLINK) {
|
||||
# in iOS 8.1.
|
||||
ios:STATICLINK = 1
|
||||
}
|
||||
isEqual(STATICLINK, 1):DEFINES += BUILD_$$upper($$NAME)_STATIC
|
||||
|
||||
TEMPLATE += fakelib
|
||||
PROJECT_TARGETNAME = $$qtLibraryTarget($$NAME)
|
||||
TEMPLATE -= fakelib
|
||||
@@ -109,7 +111,7 @@ DEPENDPATH *= $$PROJECT_SRCPATH
|
||||
isEqual(STATICLINK, 1) {
|
||||
CONFIG -= shared dll ##otherwise the following shared is true, why?
|
||||
CONFIG *= staticlib
|
||||
} else {
|
||||
} else {
|
||||
CONFIG *= shared #shared includes dll
|
||||
}
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@ greaterThan(QT_MAJOR_VERSION, 4) {
|
||||
}
|
||||
}
|
||||
CONFIG *= qtavwidgets-buildlib
|
||||
staticlib: DEFINES += BUILD_QTAVWIDGETS_STATIC
|
||||
|
||||
INCLUDEPATH += $$[QT_INSTALL_HEADERS]
|
||||
#release: DEFINES += QT_NO_DEBUG_OUTPUT
|
||||
|
||||
Reference in New Issue
Block a user