24 QMAKE_CFLAGS_WARN_OFF = |
24 QMAKE_CFLAGS_WARN_OFF = |
25 QMAKE_CFLAGS_RELEASE = |
25 QMAKE_CFLAGS_RELEASE = |
26 QMAKE_CFLAGS_DEBUG = |
26 QMAKE_CFLAGS_DEBUG = |
27 QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses |
27 QMAKE_CFLAGS_YACC = -Wno-unused -Wno-parentheses |
28 |
28 |
|
29 |
|
30 VERSION_FLAGS.ARMCC = ARMCC_4_0 |
29 QMAKE_CXX = g++ |
31 QMAKE_CXX = g++ |
30 QMAKE_CXXFLAGS = $$QMAKE_CFLAGS |
32 QMAKE_CXXFLAGS = $$QMAKE_CFLAGS |
31 QMAKE_CXXFLAGS.CW = |
33 QMAKE_CXXFLAGS.CW = |
32 QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden |
34 QMAKE_CXXFLAGS.ARMCC = --visibility_inlines_hidden |
|
35 QMAKE_CXXFLAGS.ARMCC_4_0 = --import_all_vtbl |
33 QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden |
36 QMAKE_CXXFLAGS.GCCE = -fvisibility-inlines-hidden |
34 QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS |
37 QMAKE_CXXFLAGS_DEPS = $$QMAKE_CFLAGS_DEPS |
35 QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON |
38 QMAKE_CXXFLAGS_WARN_ON = $$QMAKE_CFLAGS_WARN_ON |
36 QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF |
39 QMAKE_CXXFLAGS_WARN_OFF = $$QMAKE_CFLAGS_WARN_OFF |
37 QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE |
40 QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE |
62 QMAKE_LFLAGS_WINDOWS = |
65 QMAKE_LFLAGS_WINDOWS = |
63 QMAKE_LFLAGS_DLL = |
66 QMAKE_LFLAGS_DLL = |
64 QMAKE_LINK_OBJECT_MAX = |
67 QMAKE_LINK_OBJECT_MAX = |
65 QMAKE_LINK_OBJECT_SCRIPT= |
68 QMAKE_LINK_OBJECT_SCRIPT= |
66 |
69 |
67 QMAKE_LIBS = -llibc -llibm -leuser -llibdl -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lavkon -lefsrv -lcharconv -lws32 -lhal -lgdi -lapgrfx |
70 QMAKE_LIBS = -llibc -llibm -leuser -llibdl |
68 QMAKE_LIBS_CORE = $$QMAKE_LIBS -llibpthread -lefsrv |
71 QMAKE_LIBS_CORE = $$QMAKE_LIBS -llibpthread -lefsrv |
69 QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository |
72 QMAKE_LIBS_GUI = $$QMAKE_LIBS_CORE -lfbscli -lbitgdi -lhal -lgdi -lws32 -lapgrfx -lcone -leikcore -lmediaclientaudio -leikcoctl -leiksrv -lapparc -lcentralrepository |
70 QMAKE_LIBS_NETWORK = |
73 QMAKE_LIBS_NETWORK = |
71 QMAKE_LIBS_EGL = -llibEGL |
74 QMAKE_LIBS_EGL = -llibEGL |
72 QMAKE_LIBS_OPENGL = |
75 QMAKE_LIBS_OPENGL = |
73 QMAKE_LIBS_OPENVG = -llibOpenVG -lgraphicsresource -lfbscli -lbitgdi -lgdi |
76 QMAKE_LIBS_OPENVG = -llibOpenVG -lfbscli -lbitgdi -lgdi |
74 QMAKE_LIBS_COMPAT = |
77 QMAKE_LIBS_COMPAT = |
75 QMAKE_LIBS_QT_ENTRY = -llibcrt0.lib |
78 QMAKE_LIBS_QT_ENTRY = -llibcrt0.lib |
76 QMAKE_LIBS_S60 = -lavkon |
79 QMAKE_LIBS_S60 = -lavkon |
77 |
80 |
78 !isEmpty(QMAKE_SH) { |
81 exists($${EPOCROOT}epoc32/include/platform/sgresource/sgimage.h) { |
|
82 QMAKE_LIBS_OPENVG += -lsgresource |
|
83 } |
|
84 |
|
85 contains(QMAKE_HOST.os,Windows) { |
|
86 QMAKE_COPY = copy /y |
|
87 QMAKE_COPY_DIR = xcopy /s /q /y /i |
|
88 QMAKE_MOVE = move |
|
89 QMAKE_DEL_FILE = del |
|
90 QMAKE_MKDIR = mkdir |
|
91 QMAKE_DEL_DIR = rmdir |
|
92 QMAKE_CHK_DIR_EXISTS = if not exist |
|
93 } else { |
79 QMAKE_COPY = cp |
94 QMAKE_COPY = cp |
80 QMAKE_COPY_DIR = cp -r |
95 QMAKE_COPY_DIR = cp -r |
81 QMAKE_MOVE = mv |
96 QMAKE_MOVE = mv |
82 QMAKE_DEL_FILE = rm -f |
97 QMAKE_DEL_FILE = rm -f |
83 QMAKE_MKDIR = mkdir |
98 QMAKE_MKDIR = mkdir |
84 QMAKE_DEL_DIR = rmdir |
99 QMAKE_DEL_DIR = rmdir |
85 QMAKE_CHK_DIR_EXISTS = test -d |
100 QMAKE_CHK_DIR_EXISTS = test -d |
86 } else { |
|
87 QMAKE_COPY = copy /y |
|
88 QMAKE_COPY_DIR = xcopy /s /q /y /i |
|
89 QMAKE_MOVE = move |
|
90 QMAKE_DEL_FILE = del |
|
91 QMAKE_MKDIR = mkdir |
|
92 QMAKE_DEL_DIR = rmdir |
|
93 QMAKE_CHK_DIR_EXISTS = if not exist |
|
94 } |
101 } |
95 |
102 |
96 QMAKE_MOC = /epoc32/tools/qt/moc$$(DOTEXE) |
103 QMAKE_MOC = /epoc32/tools/qt/moc$$(DOTEXE) |
97 QMAKE_UIC = /epoc32/tools/qt/uic$$(DOTEXE) |
104 QMAKE_UIC = /epoc32/tools/qt/uic$$(DOTEXE) |
98 QMAKE_IDC = /epoc32/tools/qt/idc$$(DOTEXE) |
105 QMAKE_IDC = /epoc32/tools/qt/idc$$(DOTEXE) |
105 QMAKE_STRIP = $${EPOCROOT}epoc32/gcc_mingw/bin/strip |
112 QMAKE_STRIP = $${EPOCROOT}epoc32/gcc_mingw/bin/strip |
106 QMAKE_STRIPFLAGS_LIB += --strip-unneeded |
113 QMAKE_STRIPFLAGS_LIB += --strip-unneeded |
107 |
114 |
108 load(qt_config) |
115 load(qt_config) |
109 load(platform_paths) |
116 load(platform_paths) |
|
117 load(add_mmp_rules) |
110 |
118 |
111 symbian-abld { |
119 symbian-abld { |
112 # Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it |
120 # Versions of abld prior to Symbian^3 have a bug where you cannot remove something from the command line without replacing it |
113 # Rather than figure out which version of abld we're using, we'll replace the command with a macro *that should never be used* |
121 # Rather than figure out which version of abld we're using, we'll replace the command with a macro *that should never be used* |
114 MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE" |
122 MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl -D__QT_NOEFFECTMACRO_DONOTUSE" |
115 } else { |
123 } else { |
116 MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl" |
124 MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl" |
117 } |
125 } |
118 MMP_RULES += PAGED |
126 MMP_RULES += PAGED BYTEPAIRCOMPRESSTARGET |
119 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA |
127 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA |
120 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6 |
128 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6 |
121 |
129 |
122 # Legacy support requires some hardcoded stdapis paths. |
|
123 INCLUDEPATH = \ |
130 INCLUDEPATH = \ |
124 $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \ |
131 $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \ |
125 $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \ |
132 $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \ |
126 $${EPOCROOT}epoc32/include \ |
133 $${EPOCROOT}epoc32/include \ |
127 $$OS_LAYER_LIBC_SYSTEMINCLUDE \ |
134 $$OS_LAYER_LIBC_SYSTEMINCLUDE \ |
128 $$INCLUDEPATH |
135 $$INCLUDEPATH |
129 |
136 |
|
137 # Ensure '.' directory is the first in include path. |
|
138 # RVCT seems to do this automatically, but WINSCW compiler does not, so add it here. |
|
139 MMP_RULES += "USERINCLUDE ." |
|
140 |
|
141 # pkg_depends_webkit, pkg_depends_core, and pkg_platform_dependencies can be removed by developer |
|
142 # if multiple languages need to be supported by pkg file. In that case the developer should declare |
|
143 # multiple language compatible dependency statements him/herself. |
|
144 |
|
145 default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies |
|
146 |
130 # Supports S60 3.0, 3.1, 3.2 and 5.0 by default |
147 # Supports S60 3.0, 3.1, 3.2 and 5.0 by default |
131 default_deployment.pkg_prerules = \ |
148 pkg_platform_dependencies = \ |
132 "; Default HW/platform dependencies" \ |
149 "; Default HW/platform dependencies" \ |
133 "[0x101F7961],0,0,0,{\"S60ProductID\"}" \ |
150 "[0x101F7961],0,0,0,{\"S60ProductID\"}" \ |
134 "[0x102032BE],0,0,0,{\"S60ProductID\"}" \ |
151 "[0x102032BE],0,0,0,{\"S60ProductID\"}" \ |
135 "[0x102752AE],0,0,0,{\"S60ProductID\"}" \ |
152 "[0x102752AE],0,0,0,{\"S60ProductID\"}" \ |
136 "[0x1028315F],0,0,0,{\"S60ProductID\"}" \ |
153 "[0x1028315F],0,0,0,{\"S60ProductID\"}" \ |
143 } else { |
160 } else { |
144 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v3.2.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/Series60v3.2.sis) { |
161 exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v3.2.sis )|exists($${EPOCROOT}epoc32/data/z/system/install/Series60v3.2.sis) { |
145 S60_VERSION = 3.2 |
162 S60_VERSION = 3.2 |
146 } else { |
163 } else { |
147 S60_VERSION = 3.1 |
164 S60_VERSION = 3.1 |
148 MMP_RULES -= PAGED |
165 MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET |
149 } |
166 } |
150 } |
167 } |
|
168 |
|
169 QMAKE_CXXFLAGS_FAST_VFP.ARMCC = --fpmode fast |
|
170 # [TODO] QMAKE_CXXFLAGS_FAST_VFP.GCCE = |
|
171 |
|
172 symbian { |
|
173 armfpu = $$find(MMP_RULES, "ARMFPU") |
|
174 !isEmpty(armfpu) { |
|
175 vfpv2 = $$find(MMP_RULES, "vfpv2") |
|
176 !isEmpty(vfpv2) { |
|
177 # we will respect fpu setting obtained from configure, but, |
|
178 # if vfpv2 or softvfp+vfpv2 used we want to force RunFast VFP mode |
|
179 QMAKE_CXXFLAGS.ARMCC += $${QMAKE_CXXFLAGS_FAST_VFP.ARMCC} |
|
180 # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE} |
|
181 } |
|
182 } |
|
183 } |
|
184 |
|
185 # QMAKE_CXXFLAGS.ARMCC doesn't provide support for conditional options, so use MMP_RULES # to enable support for newer armcc compilers. |
|
186 # MMP files support combining multiple OPTION statements, so this is not a problem. |
|
187 newArmccRule = \ |
|
188 "$${LITERAL_HASH}if defined(ARMCC) && !defined(ARMCC_2_2) && !defined(ARMCC_3_1)"\ |
|
189 "OPTION ARMCC --import_all_vtbl" \ |
|
190 "$${LITERAL_HASH}endif" |
|
191 MMP_RULES += newArmccRule |
|
192 |