--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/build/omj.pri Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,257 @@
+#
+# Copyright (c) 2009,2010 Nokia Corporation and/or its subsidiary(-ies).
+# All rights reserved.
+# This component and the accompanying materials are made available
+# under the terms of "Eclipse Public License v1.0"
+# which accompanies this distribution, and is available
+# at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#
+# Initial Contributors:
+# Nokia Corporation - initial contribution.
+#
+# Contributors:
+#
+# Description:
+#
+
+
+omj {
+
+ # Load project defines (if not already loaded). Fail if can not loaded.
+ !include(../inc/build_defines.pri):error(Could not load build_defines.pri)
+
+ # Allow JAVATARGET to be used for defining the Java project name (java artifacts)
+ isEmpty(JAVATARGET): JAVATARGET = $${TARGET}
+
+ !contains(TARGET, javautils): LIBS += -ljavautils
+
+ # Add general project defines
+ DEFINES += $${PROJECT_DEFINES}
+
+ !symbian {
+
+ # Check release/debug
+ !debug:!release:error(Define either debug or release configuration)
+
+ contains(TEMPLATE,app) {
+ DESTDIR = $$(JAVA_BIN_ROOT)/bin
+ } else {
+ DESTDIR = $$(JAVA_BIN_ROOT)/lib
+ }
+ LIBS += -lpthread
+ LIBS += -L$$(JAVA_BIN_ROOT)/lib -L$$(JAVA_BIN_ROOT)/jsr/lib
+
+ JAVA_ARTIFACTS = $$(JAVA_BIN_ROOT)/javabuild/$${JAVATARGET}
+ JAVAH_ARTIFACTS = $$(JAVA_BIN_ROOT)/javabuild/inc.javah
+
+ debug {
+ DEFINES += LOGGING_ON NGJAVA_LOGGER_ON
+ }
+ }
+
+ symbian {
+
+ # If core is not in QT, there is no QT. If there is no QT, there is no
+ # core/gui
+ !contains(QT, core): CONFIG -= qt
+ !contains(CONFIG, qt): QT -= core gui
+
+ # If we are building for QT, then use simple QT (enables
+ # changes in qt configuraiton)
+ contains(PROJECT_DEFINES,RD_JAVA_UI_QT): CONFIG *= qt
+
+ # Set correct UID2 for DLLs
+ isEmpty(TARGET.UID2): contains(TEMPLATE,lib) {
+
+ # UID2 0x1000008d is KSharedLibraryUidValue from e32uid.h,
+ # but stddlls have 0x20004c45
+ stdbinary: TARGET.UID2 = 0x20004c45
+ else: TARGET.UID2 = 0x1000008d
+ }
+
+ # Load UID3s for Symbian
+ include(symbian_uids.pri)
+
+ DEFINES += __SYMBIAN32__
+ DEFINES += J9EPOC32 RD_JAVA_OMJ_FSERVER
+
+ LIBS += -llibpthread
+
+ # Include platform paths so that MMP macros work in below
+ MMP_RULES += \
+ "$${LITERAL_HASH}include <platform_paths.hrh>" \
+
+ # Use QT defined includes only when really compiling for QT. Otherwise
+ # use the S60 platform paths
+ contains(QT, core) {
+ INCLUDEPATH *= $$APP_LAYER_SYSTEMINCLUDE
+ INCLUDEPATH *= $$OS_LAYER_LIBC_SYSTEMINCLUDE
+ INCLUDEPATH *= $$OS_LAYER_SSL_SYSTEMINCLUDE
+ } else {
+ INCLUDEPATH -= $$APP_LAYER_SYSTEMINCLUDE \
+ $$OS_LAYER_LIBC_SYSTEMINCLUDE \
+ $$OS_LAYER_SSL_SYSTEMINCLUDE \
+ $${EPOCROOT}epoc32/include
+ MMP_RULES += \
+ " APP_LAYER_SYSTEMINCLUDE" \
+ " OS_LAYER_LIBC_SYSTEMINCLUDE"\
+ " OS_LAYER_SSL_SYSTEMINCLUDE"
+ }
+
+ !contains(TEMPLATE,app) {
+ # DLLs have by default these capabilities
+ TARGET.CAPABILITY = all -tcb
+ }
+
+ JAVA_ARTIFACTS = /epoc32/build/jrt/javabuild/$${JAVATARGET}
+ JAVAH_ARTIFACTS = /epoc32/build/jrt/javabuild/inc.javah
+
+ # Specify defblock always. Qmake revisions have diffent variants of
+ # this, so we have to make sure that we define a deffile ourselves
+ !contains(TEMPLATE,app): !contains(CONFIG,stdbinary) {
+ MMP_RULES -= EXPORTUNFROZEN
+ isEmpty(defBlock): defBlock = "deffile ./~/$${TARGET}.def"
+ MMP_RULES += $${defBlock}
+ }
+ MMP_RULES *= "PAGED"
+
+ # By default Symbian toolchain exports all classes on a DLL, unless
+ # NONSHARABLE_CLASS macro is used. Qt exports only classes which
+ # __declspec(dllexport), which is usually made defining
+ # "MYSHAREDLIB_LIB" (see http://doc.trolltech.com/4.6/sharedlibrary.html)
+ # This reverts the exporting to Symbian's convention
+
+ MMP_RULES -= $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
+
+ stl {
+ # If STL is configured and not full qt, add the corresponding
+ # platform macro
+ contains(DEFINES, RD_JAVA_STDCPPV5) {
+ MMP_RULES += " SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)"
+ } else {
+ MMP_RULES += " OS_LAYER_STDCPP_SYSTEMINCLUDE"
+ }
+ }
+ }
+
+ # Define generated paths
+ JXE_SOURCE_PATH = $${JAVA_ARTIFACTS}
+ LOOKUP_SOURCE_PATH = $${JAVA_ARTIFACTS}
+ JAVAH_INCLUDE_PATH = $${JAVAH_ARTIFACTS}
+
+ # Setup local include directories
+ INC_DIRS =
+
+ # Platform incs
+ symbian: exists($${_PRO_FILE_PWD_}/../inc.s60): INC_DIRS += ../inc.s60
+ !symbian: exists($${_PRO_FILE_PWD_}/../inc.linux): INC_DIRS += ../inc.linux
+
+ # Find the project depth
+ TRY_DIR=$${_PRO_FILE_PWD_}
+ for(a, 1..10): {
+ TRY_DIR = $$join(TRY_DIR,,,/..)
+ exists($${TRY_DIR}/build/Makefile.comp) DEPTH=$${a}
+ }
+
+ # Make include paths
+ INC_DIR = inc
+ for(a, 1..$${DEPTH}) {
+ INC_DIR = $$join(INC_DIR,,../,)
+ exists($${_PRO_FILE_PWD_}/$${INC_DIR}): INC_DIRS += $${INC_DIR}
+ }
+
+ # Add javah path.
+ # Symbian: Use MMP_RULES, as the path does not exist yet there
+ # Linux: Java is built before qmake, so path does exist
+ !symbian: INC_DIRS += $${JAVAH_INCLUDE_PATH}
+ symbian: MMP_RULES += "SYSTEMINCLUDE $${JAVAH_INCLUDE_PATH}"
+
+
+ # Define function "findfiles(path, wildcard)", which will find wildcard
+ # files from the path, and from one subdirectory beneath it.
+ defineReplace(findfiles) {
+ # Note that the "files" function is undocumented qmake
+ foundfiles = $$files($${1}/$${2})
+ foundall = $$files($${1}/*)
+ for(d, foundall) : exists($${d}/$${2}): foundfiles += $$files($${d}/$${2})
+ return($$foundfiles)
+ }
+
+
+ !javaonly: isEmpty(SOURCES) {
+ # Make source paths if not defined
+ SOURCES += $$findfiles($${_PRO_FILE_PWD_}/../src, *.cpp)
+ symbian: SOURCES += $$findfiles($${_PRO_FILE_PWD_}/../src.s60, *.cpp)
+ !symbian: SOURCES += $$findfiles($${_PRO_FILE_PWD_}/../src.linux, *.cpp)
+ } else {
+ # Expand also explicit sources, as Qmake fails to expand if CONFIG has no qt
+ EXPANDED_SOURCES=
+ for(s,SOURCES) {
+ EXPANDED_SOURCE = $$files($${_PRO_FILE_PWD_}/$${s})
+ isEmpty(EXPANDED_SOURCE): EXPANDED_SOURCES += $${s}
+ else: EXPANDED_SOURCES += $${EXPANDED_SOURCE}
+ }
+ SOURCES = $${EXPANDED_SOURCES}
+ }
+
+ # Find source directories
+ SRCDIRS = $$dirname(SOURCES)
+ SRCDIRS = $$unique(SRCDIRS)
+ INC_DIRS += $${SRCDIRS}
+
+ # Append and make unique
+ INCLUDEPATH += $${INC_DIRS}
+ INCLUDEPATH = $$unique(INCLUDEPATH)
+ DEPENDPATH += $${INC_DIRS}
+ DEPENDPATH =$$unique(DEPENDPATH)
+
+ # Remove explicitly marked "system" libs
+ LIBS -= $${REMOVELIBS}
+
+ javaonly {
+ symbian {
+ # Setup all required for romization
+ INCLUDEPATH += $$(JAVA_SRC_ROOT)/inc
+ } else {
+ # Nothing to be done for Linux
+ TEMPLATE=subdirs
+ SUBDIRS=
+ }
+ }
+
+ java|javaonly:symbian {
+ MMP_RULES += \
+ "SOURCEPATH $${LOOKUP_SOURCE_PATH}" \
+ "SOURCE lookup.cpp" \
+ "SOURCEPATH $${JXE_SOURCE_PATH}" \
+ "SOURCE jxe.c"
+ }
+
+ symbian:exists($${_PRO_FILE_PWD_}/exports.inf) {
+ # Set exports when the file exists
+ BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include \"exports.inf\""
+ }
+
+ staticdata|contains(PROJECT_DEFINES, RD_JAVA_EPOCALLOWDLLDATA_FIX) {
+ # If project has static data, we need define following on symbian
+ # targets, to ensure that accidental static data additions are caught
+ # by arm linker
+
+ MMP_RULES += \
+ "$${LITERAL_HASH}ifdef WINSCW" \
+ "LIBRARY ewsd.lib" \
+ "$${LITERAL_HASH}endif"
+ contains(PROJECT_DEFINES, RD_JAVA_S60_RELEASE_5_0) {
+ # S60 5.0 does not allow static data on DLLs to be loaded to multiple
+ # processes, therefore this must be variable between armv5 and
+ # winscw. It generates qmake warning on later QTs, but don't be
+ # offended.
+ MMP_RULES += \
+ "$${LITERAL_HASH}ifndef WINSCW" \
+ "EPOCALLOWDLLDATA" \
+ "$${LITERAL_HASH}endif"
+ } else {
+ TARGET.EPOCALLOWDLLDATA = 1
+ }
+ }
+}