--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/aknlayoutcompiler/src/AknLayoutCompiler.cpp Thu Dec 17 09:14:18 2009 +0200
@@ -0,0 +1,201 @@
+/*
+* Copyright (c) 2002-2004 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:
+* Defines the entry point for the console application
+*
+*/
+
+
+// disable "identifier was truncated to '255' characters in the browser information" warning
+#pragma warning (disable:4786)
+
+// disable "decorated name length exceeded, name was truncated" warning
+#pragma warning (disable:4503)
+
+
+#include <string>
+#include <vector>
+#include <algorithm>
+#include <iostream>
+#include "extract.h"
+#include "LayoutCompilerErr.h"
+#include "Lay2Cdl.h"
+#include "Cdl2Lag.h"
+#include "LayCdl2Inst.h"
+#include "LayCdlCheck.h"
+#include "LayoutPack.h"
+#include "LayCdl2InstO.h"
+#include "MakeLayConvTest.h"
+#include "LayScale.h"
+#include "AdaptationLayerTemplate.h"
+#include "Lay2LayPerf.h"
+
+#ifdef RD_XML_PARSER_TOOLCHAIN
+#include "MLCompData2Cdl.h"
+#include "MLCompCdl2InstO.h"
+#include "MLCompData2LayPerf.h"
+#include "MLEqCompData2DHuiML.h"
+#endif
+
+using namespace std;
+
+// In debug builds, we want the debugger to catch exceptions. In release mode we want
+// to report exceptions to the command line user.
+// The EXCEPTION_HANDLING macro flag controls this behavior in main()
+#ifndef _DEBUG
+#define EXCEPTION_HANDLING
+#endif
+
+class MainArgsErr : public LayoutCompilerErr
+ {
+ void Show(ostream& aStream) const;
+ };
+
+void MainArgsErr::Show(ostream& stream) const
+ {
+ stream << endl;
+ stream << "AknLayoutCompiler @scriptfile" << endl;
+ stream << "AknLayoutCompiler [<options>] <mode> [args]" << endl;
+ stream << " <options> are:" << endl;
+ stream << " -p<output path> has no effect in this version of AknLayoutCompiler." << endl;
+ stream << " <mode> modes are listed below" << endl;
+ stream << " [args] depends on <mode> as listed below" << endl;
+ LayoutExtract::ShowHelp(stream);
+ LayoutToCdl::ShowHelp(stream);
+ CdlToLag::ShowHelp(stream);
+ LayoutAndCdlToCdlInstance::ShowHelp(stream);
+ LayCdlCheck::ShowHelp(stream);
+ LayoutPackage::ShowHelp(stream);
+ LayoutCdlInstanceOpt::ShowHelp(stream);
+ MakeLayoutConvTest::ShowHelp(stream);
+ LayoutScale::ShowHelp(stream);
+ AdaptationLayerTemplate::ShowHelp(stream);
+ LayoutToLayPerf::ShowHelp(stream);
+#ifdef RD_XML_PARSER_TOOLCHAIN
+ MLCompDataToCdl::ShowHelp(stream);
+ MLCompDataCdlInstanceOpt::ShowHelp(stream);
+ MLEqCompDataToDHuiML::ShowHelp(stream);
+#endif
+ }
+
+int DoMain(int argc, char* argv[])
+ {
+ CdlTkUtil::SetCommandLine(argc, argv);
+
+ vector<string> args;
+ copy(argv, argv+argc, back_inserter(args));
+
+ if (args.size() < 2)
+ {
+ throw MainArgsErr();
+ }
+
+ if (args[1].size() >= 2 && args[1].substr(0,2) == "-p")
+ {
+ CdlTkUtil::SetOutputPath(args[1].substr(2));
+ args.erase(args.begin()+1);
+ }
+
+ string& modeName = CdlTkUtil::ToLower(args[1]);
+
+ if (modeName == "extract")
+ {
+ LayoutExtract extract;
+ return extract.Extract(args);
+ }
+ else if (modeName == "lay2cdl")
+ {
+ return LayoutToCdl::Process(args);
+ }
+ else if (modeName == "cdl2lag")
+ {
+ return CdlToLag::Process(args);
+ }
+ else if (modeName == "laycdl2inst")
+ {
+ return LayoutAndCdlToCdlInstance::Process(args);
+ }
+ else if (modeName == "laycdlcheck")
+ {
+ return LayCdlCheck::Process(args);
+ }
+ else if (modeName == "laypkg")
+ {
+ return LayoutPackage::Process(args);
+ }
+ else if (modeName == "laycdl2insto")
+ {
+ return LayoutCdlInstanceOpt::Process(args);
+ }
+ else if (modeName == "makelayconvtest")
+ {
+ return MakeLayoutConvTest::Process(args);
+ }
+ else if (modeName == "layscale")
+ {
+ return LayoutScale::Process(args);
+ }
+ else if (modeName == "adaptationlayertemplate")
+ {
+ return AdaptationLayerTemplate::Process(args);
+ }
+ else if (modeName == "lay2layperf")
+ {
+ return LayoutToLayPerf::Process(args);
+ }
+#ifdef RD_XML_PARSER_TOOLCHAIN
+ else if (modeName == "mlcompdata2cdl")
+ {
+ return MLCompDataToCdl::Process(args);
+ }
+ else if (modeName == "mlcompcdl2insto")
+ {
+ return MLCompDataCdlInstanceOpt::Process(args);
+ }
+ else if (modeName == "mlcompdata2layperf")
+ {
+ return MLCompDataToLayPerf::Process(args);
+ }
+ else if (modeName == "mleqcompdata2dhuiml")
+ {
+ return MLEqCompDataToDHuiML::Process(args);
+ }
+#endif
+ else
+ {
+ throw MainArgsErr();
+ }
+
+ return 1;
+ }
+
+int main(int argc, char* argv[])
+ {
+#ifdef EXCEPTION_HANDLING
+ try
+ {
+#endif
+ return DoMain(argc, argv);
+#ifdef EXCEPTION_HANDLING
+ }
+ catch (const CdlCompilerToolkitErr& aErr)
+ {
+ aErr.Show(cerr);
+ }
+
+ return 1;
+#endif
+ }
+
+// End of File