diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf index 79bac42..621a42b 100644 --- a/mkspecs/common/symbian/symbian.conf +++ b/mkspecs/common/symbian/symbian.conf @@ -28,7 +28,7 @@ QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses QMAKE_CXX = g++ QMAKE_CXXFLAGS = $$QMAKE_CFLAGS -QMAKE_CXXFLAGS.CW = +QMAKE_CXXFLAGS.CW = QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON @@ -52,7 +52,7 @@ QMAKE_RUN_CXX_IMP = $(CXX) -c $(CXXFLAGS) $(INCPATH) -o $@ $< QMAKE_LINK = QMAKE_LFLAGS = -QMAKE_LFLAGS.ARMCC = +QMAKE_LFLAGS.ARMCC = QMAKE_LFLAGS_EXCEPTIONS_ON = QMAKE_LFLAGS_EXCEPTIONS_OFF = QMAKE_LFLAGS_RELEASE = @@ -65,14 +65,14 @@ QMAKE_LINK_OBJECT_SCRIPT= QMAKE_LIBS = -llibc -llibm -leuser -llibdl QMAKE_LIBS_CORE = $$QMAKE_LIBS -llibpthread -lefsrv -QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -QMAKE_LIBS_NETWORK = +QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lsendas2 -letext -lapmime -lbafl -lestor -lfntstr -lecom +QMAKE_LIBS_NETWORK = -lesock -linsock QMAKE_LIBS_EGL = -llibEGL -QMAKE_LIBS_OPENGL = +QMAKE_LIBS_OPENGL = QMAKE_LIBS_OPENVG = -llibOpenVG -lgraphicsresource -QMAKE_LIBS_COMPAT = +QMAKE_LIBS_COMPAT = QMAKE_LIBS_QT_ENTRY = -llibcrt0.lib -QMAKE_LIBS_S60 = -lavkon +QMAKE_LIBS_S60 = -lavkon -lplatformenv -lcommonui -lfepbase -laknicon -laknskins -laknskinsrv -lfontutils !isEmpty(QMAKE_SH) { QMAKE_COPY = cp @@ -118,14 +118,14 @@ MMP_RULES += PAGED MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6 -# Legacy support requires some hardcoded stdapis paths. +# Legacy support requires some hardcoded stdapis paths. INCLUDEPATH = \ $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \ $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \ $${EPOCROOT}epoc32/include \ $$OS_LAYER_LIBC_SYSTEMINCLUDE \ $$INCLUDEPATH - + # Supports S60 3.0, 3.1, 3.2 and 5.0 by default default_deployment.pkg_prerules = \ "; Default HW/platform dependencies" \ diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf index 1be6d9b..6a1fd53 100644 --- a/mkspecs/features/qt_functions.prf +++ b/mkspecs/features/qt_functions.prf @@ -46,6 +46,9 @@ defineTest(qtAddLibrary) { } } symbian { + contains(CONFIG, staticlib)|contains(CONFIG, static): LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}.lib + else: LINKAGE = -l$${LIB_NAME}$${QT_LIBINFIX}.dll + isEqual(LIB_NAME, QtGui) { # Needed for #include because qs60mainapplication.h includes aknapp.h INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE diff --git a/mkspecs/features/symbian/default_post.prf b/mkspecs/features/symbian/default_post.prf index 7c9e8ee..fe2d6a6 100644 --- a/mkspecs/features/symbian/default_post.prf +++ b/mkspecs/features/symbian/default_post.prf @@ -1,23 +1,38 @@ load(default_post) contains(TEMPLATE, ".*app") { - contains(CONFIG, stdbinary) { - QMAKE_LIBS += - } else:contains(QT, gui):contains(CONFIG,qt) { - S60MAIN_LIBS = -leuser - QMAKE_LIBS += -lqtmain.lib $$S60MAIN_LIBS + S60MAIN_LIBS = -leuser + QTMAIN_LIBS = -lqtmain.lib $$S60MAIN_LIBS + contains(CONFIG, staticlib)|contains(CONFIG, static): { + # Application with static linking must include all dependencies of static libraries + contains(QT, core): QMAKE_LIBS += $$QMAKE_LIBS_CORE + contains(QT, gui) { + QMAKE_LIBS += $$QMAKE_LIBS_GUI + QMAKE_LIBS += $$QTMAIN_LIBS + contains(QT_CONFIG, s60): QMAKE_LIBS+= $$QMAKE_LIBS_S60 + } + contains(QT, network): QMAKE_LIBS += $$QMAKE_LIBS_NETWORK + contains(QT, egl): QMAKE_LIBS += $$QMAKE_LIBS_EGL + contains(QT, opengl): QMAKE_LIBS += $$QMAKE_LIBS_OPENGL + contains(QT, openvg): QMAKE_LIBS += $$QMAKE_LIBS_OPENVG } else { - QMAKE_LIBS += $$QMAKE_LIBS_QT_ENTRY + contains(CONFIG, stdbinary) { + QMAKE_LIBS += + } else:contains(QT, gui):contains(CONFIG,qt) { + QMAKE_LIBS += $$QTMAIN_LIBS + } else { + QMAKE_LIBS += $$QMAKE_LIBS_QT_ENTRY + } } } contains(TEMPLATE, lib): { - contains(CONFIG, staticlib)|contains(CONFIG, static): { + contains(CONFIG, staticlib)|contains(CONFIG, static) { # Static libs should not have LIBRARY statements in S60 QMAKE_LIBS = # Static libs do not need def files MMP_RULES -= EXPORTUNFROZEN } - contains(CONFIG, plugin):!contains(CONFIG, stdbinary): { + contains(CONFIG, plugin):!contains(CONFIG, stdbinary) { # Plugins based on normal libraries have predefined def file MMP_RULES -= EXPORTUNFROZEN } diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp index afaf338..10cfb25 100644 --- a/qmake/generators/symbian/symmake.cpp +++ b/qmake/generators/symbian/symmake.cpp @@ -733,7 +733,8 @@ void SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symb } t << endl; - if (!project->values("CONFIG").contains("static") && !project->values("CONFIG").contains("staticlib")) { + if ((!project->values("CONFIG").contains("static") && !project->values("CONFIG").contains("staticlib")) || + project->values("TEMPLATE").contains("app")) { writeMmpFileLibraryPart(t); } diff --git a/src/corelib/kernel/qcore_symbian_p.cpp b/src/corelib/kernel/qcore_symbian_p.cpp diff --git a/src/gui/inputmethod/inputmethod.pri b/src/gui/inputmethod/inputmethod.pri index 6d9f748..8302f71 100644 --- a/src/gui/inputmethod/inputmethod.pri +++ b/src/gui/inputmethod/inputmethod.pri @@ -26,6 +26,5 @@ mac:!embedded { symbian:contains(QT_CONFIG, s60) { HEADERS += inputmethod/qcoefepinputcontext_p.h SOURCES += inputmethod/qcoefepinputcontext_s60.cpp - LIBS += -lfepbase } diff --git a/src/gui/kernel/kernel.pri b/src/gui/kernel/kernel.pri index 7d0e5c7..4a1f43f 100644 --- a/src/gui/kernel/kernel.pri +++ b/src/gui/kernel/kernel.pri @@ -124,7 +124,6 @@ symbian { HEADERS += \ kernel/qt_s60_p.h \ kernel/qeventdispatcher_s60_p.h - LIBS += -lbafl -lestor INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE } diff --git a/src/gui/styles/styles.pri b/src/gui/styles/styles.pri index 88a2cce..243b0a4 100644 --- a/src/gui/styles/styles.pri +++ b/src/gui/styles/styles.pri @@ -168,7 +168,6 @@ contains( styles, s60 ):contains(QT_CONFIG, s60) { SOURCES += styles/qs60style.cpp symbian { SOURCES += styles/qs60style_s60.cpp - LIBS += -laknicon -laknskins -laknskinsrv -lfontutils } else { SOURCES += styles/qs60style_simulated.cpp RESOURCES += styles/qstyle_s60_simulated.qrc diff --git a/src/gui/text/text.pri b/src/gui/text/text.pri index b7615a4..1da6953 100644 --- a/src/gui/text/text.pri +++ b/src/gui/text/text.pri @@ -122,7 +122,6 @@ symbian { text/qfontengine_s60.cpp HEADERS += \ text/qfontengine_s60_p.h - LIBS += -lfntstr -lecom } } @@ -186,7 +185,7 @@ contains(QT_CONFIG, freetype) { ../3rdparty/freetype/include DEFINES += FT2_BUILD_LIBRARY FT_CONFIG_OPTION_SYSTEM_ZLIB - + embedded:CONFIG += opentype } else:contains(QT_CONFIG, system-freetype) { embedded:CONFIG += opentype diff --git a/src/gui/util/util.pri b/src/gui/util/util.pri index cdbb7cc..80c94df 100644 --- a/src/gui/util/util.pri +++ b/src/gui/util/util.pri @@ -37,9 +37,4 @@ embedded { !embedded:!x11:mac { OBJECTIVE_SOURCES += util/qsystemtrayicon_mac.mm -} - -symbian { - LIBS += -lsendas2 -letext -lapmime - contains(QT_CONFIG, s60): LIBS += -lplatformenv -lcommonui -} +} \ No newline at end of file diff --git a/src/network/network.pro b/src/network/network.pro index e890b94..3611024 100644 --- a/src/network/network.pro +++ b/src/network/network.pro @@ -26,5 +26,4 @@ QMAKE_LIBS += $$QMAKE_LIBS_NETWORK symbian { TARGET.UID3=0x2001B2DE - LIBS += -lesock -linsock }