Skip to content

Commit 9d49102

Browse files
committed
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/
1 parent 89747bd commit 9d49102

File tree

12 files changed

+27
-20
lines changed

12 files changed

+27
-20
lines changed

examples/QMLPlayer/QMLPlayer.pro

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
VERSION = $$QTAV_VERSION
1+
!static:VERSION = $$QTAV_VERSION # vc: will create exp and lib, result in static build error
22
QT += sql
33
android {
44
QT += androidextras

examples/QMLPlayer/QMLPlayer_sdk.pro

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
TARGET = QMLPlayer
2-
VERSION = $$QTAV_VERSION
2+
!static:VERSION = $$QTAV_VERSION
33
QT += av svg qml quick sql
44
android {
55
QT += androidextras

examples/common/libcommon.pri

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ LIB_VERSION = $$QTAV_VERSION #0.x.y may be wrong for dll
5252

5353
# If user haven't supplied STATICLINK, then auto-detect
5454
isEmpty(STATICLINK) {
55-
contains(CONFIG, staticlib) {
55+
static|contains(CONFIG, staticlib) {
5656
STATICLINK = 1
5757
} else {
5858
STATICLINK = 0

examples/filters/main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ int main(int argc, char *argv[])
6363
VideoRenderer *renderer = 0;
6464
bool textfilter = false;
6565
if (vo == QLatin1String("gl")) {
66-
renderer = VideoRenderer::create(VideoRendererId_GLWidget);
66+
renderer = VideoRenderer::create(VideoRendererId_GLWidget2);
6767
textfilter = true;
6868
} else if (vo == QLatin1String("d2d")) {
6969
renderer = VideoRenderer::create(VideoRendererId_Direct2D);

examples/player/player.pro

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ contains(QT_CONFIG, opengl): QT += opengl
44
QT += sql svg
55
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
66
TRANSLATIONS = res/player_zh_CN.ts
7-
VERSION = $$QTAV_VERSION
7+
!static:VERSION = $$QTAV_VERSION # vc: will create exp and lib, result in static build error
88

99
PROJECTROOT = $$PWD/../..
1010
include($$PROJECTROOT/src/libQtAV.pri)

qml/libQmlAV.pri

+3-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ eval(LIB$$upper($$NAME)_PRI_INCLUDED = 1)
5151
LIB_VERSION = $$QTAV_VERSION #0.x.y may be wrong for dll
5252
# If user haven't supplied STATICLINK, then auto-detect
5353
isEmpty(STATICLINK) {
54-
contains(CONFIG, staticlib) {
54+
static|contains(CONFIG, staticlib) {
5555
STATICLINK = 1
5656
} else {
5757
STATICLINK = 0
@@ -60,6 +60,8 @@ isEmpty(STATICLINK) {
6060
# in iOS 8.1.
6161
ios:STATICLINK = 1
6262
}
63+
isEqual(STATICLINK, 1):DEFINES += BUILD_$$upper($$NAME)_STATIC
64+
6365
TEMPLATE += fakelib
6466
PROJECT_TARGETNAME = $$qtLibraryTarget($$NAME)
6567
TEMPLATE -= fakelib

src/libQtAV.pri

+4-4
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,9 @@ NAME = QtAV
4949
eval(LIB$$upper($$NAME)_PRI_INCLUDED = 1)
5050

5151
LIB_VERSION = $$QTAV_VERSION #0.x.y may be wrong for dll
52-
5352
# If user haven't supplied STATICLINK, then auto-detect
5453
isEmpty(STATICLINK) {
55-
contains(CONFIG, staticlib) {
54+
static|contains(CONFIG, staticlib) {
5655
STATICLINK = 1
5756
} else {
5857
STATICLINK = 0
@@ -61,6 +60,7 @@ isEmpty(STATICLINK) {
6160
# in iOS 8.1.
6261
ios:STATICLINK = 1
6362
}
63+
isEqual(STATICLINK, 1):DEFINES += BUILD_$$upper($$NAME)_STATIC
6464

6565
TEMPLATE += fakelib
6666
PROJECT_TARGETNAME = $$qtLibraryTarget($$NAME)
@@ -109,9 +109,9 @@ DEPENDPATH *= $$PROJECT_SRCPATH
109109
CONFIG *= create_prl #
110110
DEFINES += BUILD_$$upper($$NAME)_LIB #win32-msvc*
111111
isEqual(STATICLINK, 1) {
112-
CONFIG -= shared dll ##otherwise the following shared is true, why?
112+
CONFIG -= shared dll ##otherwise the following shared is true, why?
113113
CONFIG *= staticlib
114-
} else {
114+
} else {
115115
CONFIG *= shared #shared includes dll
116116
}
117117

src/libQtAV.pro

+3-4
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@ greaterThan(QT_MAJOR_VERSION, 4) {
1414
config_gl: QT += opengl
1515
}
1616
CONFIG *= qtav-buildlib
17-
staticlib: DEFINES += BUILD_QTAV_STATIC
1817
static: CONFIG *= static_ffmpeg
19-
INCLUDEPATH += $$[QT_INSTALL_HEADERS]
18+
INCLUDEPATH += $$[QT_INSTALL_HEADERS] # TODO: ffmpeg dir
2019

2120
#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
2221
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/..
3130
preparePaths($$OUT_PWD/../out)
3231
exists($$PROJECTROOT/extra/qtLongName(include)): INCLUDEPATH += $$PROJECTROOT/extra/qtLongName(include)
3332
exists($$PROJECTROOT/extra/qtLongName(lib)): LIBS += -L$$PROJECTROOT/extra/qtLongName(lib)
34-
33+
staticlib: DEFINES += BUILD_QTAV_STATIC
3534

3635
config_uchardet {
3736
DEFINES += LINK_UCHARDET
@@ -97,7 +96,7 @@ win32 {
9796
}
9897
debug: QMAKE_LFLAGS += /SAFESEH:NO
9998
#CXXFLAGS debug: /MTd
100-
QMAKE_LFLAGS *= /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib #for msbuild vs2013
99+
!static:QMAKE_LFLAGS *= /NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:libcmtd.lib #for msbuild vs2013
101100

102101
}
103102
capi {

tests/qiodevice/qiodevice.pro

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ TEMPLATE = app
88
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
99
CONFIG -= app_bundle
1010

11-
STATICLINK = 0
1211
PROJECTROOT = $$PWD/../..
1312
include($$PROJECTROOT/src/libQtAV.pri)
1413
include($$PROJECTROOT/widgets/libQtAVWidgets.pri)

tools/install_sdk/install_sdk.pro

+8-2
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,13 @@ defineTest(createForModule) {
6161
MODULE = $$lower($$MODULE_NAME)
6262
MODULE_DEPENDS = $$eval($${MODULE}.depends)
6363
MODULE_DEFINES = QT_$$upper($${MODULE})_LIB
64-
ORIG_LIB = $${LIBPREFIX}$$qtLibName($$MODULE_FULL_NAME, $$QTAV_MAJOR_VERSION).$${LIBSUFFIX}
65-
ORIG_LIB_D = $${LIBPREFIX}$$qtLibName($$MODULE_FULL_NAME$${DEBUG_SUF}, $$QTAV_MAJOR_VERSION).$${LIBSUFFIX}
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+
}
6671
greaterThan(QT_MAJOR_VERSION, 4) {
6772
MODULE_PRF_FILE = $$OUT_PWD/mkspecs/features/$${MODULE}.prf
6873
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"
117122
AV_PRF_CONT += "QTAV_MINOR_VERSION=$$QTAV_MINOR_VERSION"
118123
AV_PRF_CONT += "QTAV_PATCH_VERSION=$$QTAV_PATCH_VERSION"
119124
AV_PRF_CONT += "android: QMAKE_LFLAGS += -lOpenSLES"
125+
AV_PRF_CONT += "static: DEFINES += BUILD_QT$$upper($${MODULE})_STATIC"
120126
#AV_PRF_CONT += "QMAKE_LFLAGS += -lavutil -lavcodec -lavformat -lswscale"
121127
#config_avresample: AV_PRF_CONT += "QMAKE_LFLAGS += -lavresample"
122128
#config_swresample: AV_PRF_CONT += "QMAKE_LFLAGS += -lswresample"

widgets/libQtAVWidgets.pri

+4-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ eval(LIB$$upper($$NAME)_PRI_INCLUDED = 1)
5151
LIB_VERSION = $$QTAV_VERSION #0.x.y may be wrong for dll
5252
# If user haven't supplied STATICLINK, then auto-detect
5353
isEmpty(STATICLINK) {
54-
contains(CONFIG, staticlib) {
54+
static|contains(CONFIG, staticlib) {
5555
STATICLINK = 1
5656
} else {
5757
STATICLINK = 0
@@ -60,6 +60,8 @@ isEmpty(STATICLINK) {
6060
# in iOS 8.1.
6161
ios:STATICLINK = 1
6262
}
63+
isEqual(STATICLINK, 1):DEFINES += BUILD_$$upper($$NAME)_STATIC
64+
6365
TEMPLATE += fakelib
6466
PROJECT_TARGETNAME = $$qtLibraryTarget($$NAME)
6567
TEMPLATE -= fakelib
@@ -109,7 +111,7 @@ DEPENDPATH *= $$PROJECT_SRCPATH
109111
isEqual(STATICLINK, 1) {
110112
CONFIG -= shared dll ##otherwise the following shared is true, why?
111113
CONFIG *= staticlib
112-
} else {
114+
} else {
113115
CONFIG *= shared #shared includes dll
114116
}
115117

widgets/libQtAVWidgets.pro

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ greaterThan(QT_MAJOR_VERSION, 4) {
1313
}
1414
}
1515
CONFIG *= qtavwidgets-buildlib
16-
staticlib: DEFINES += BUILD_QTAVWIDGETS_STATIC
1716

1817
INCLUDEPATH += $$[QT_INSTALL_HEADERS]
1918
#release: DEFINES += QT_NO_DEBUG_OUTPUT

0 commit comments

Comments
 (0)