Selaa lähdekoodia

Improved mksymbian

git-svn-id: trunk@8003 -
sekelsenmat 18 vuotta sitten
vanhempi
commit
b8a378144a

+ 33 - 5
utils/mksymbian/compiler.pas

@@ -51,6 +51,7 @@ type
     procedure MakeBuildBindings;
     procedure MakeBuildBindings;
     procedure BuildUIDFile;
     procedure BuildUIDFile;
     procedure BuildResource(AFileName: string);
     procedure BuildResource(AFileName: string);
+    procedure InstallResource(AFileName: string);
     procedure RegisterInEmulator;
     procedure RegisterInEmulator;
   end;
   end;
 
 
@@ -121,6 +122,11 @@ procedure TCompiler.FileCopy(source, dest: string);
 var
 var
   SourceStream, DestStream: TFileStream;
   SourceStream, DestStream: TFileStream;
 begin
 begin
+  WriteLn('');
+  WriteLn('Copying file: ', source);
+  WriteLn('To: ', dest);
+  WriteLn('');
+
   SourceStream := TFileStream.Create(source, fmOpenRead);
   SourceStream := TFileStream.Create(source, fmOpenRead);
   try
   try
     DestStream := TFileStream.Create(dest, fmCreate);
     DestStream := TFileStream.Create(dest, fmCreate);
@@ -454,9 +460,36 @@ begin
     ' -o"' + MakeFolder + ChangeFileExt(AFileName, STR_RESOURCE_EXT) + '"' +
     ' -o"' + MakeFolder + ChangeFileExt(AFileName, STR_RESOURCE_EXT) + '"' +
     ' -s"' + MakeFolder + ChangeFileExt(AFileName, STR_RESOURCE_TMP_EXT) + '"';
     ' -s"' + MakeFolder + ChangeFileExt(AFileName, STR_RESOURCE_TMP_EXT) + '"';
   WriteLn(AProcess.CommandLine);
   WriteLn(AProcess.CommandLine);
+  WriteLn('');
+  System.Flush(System.StdOut);
   AProcess.Execute;
   AProcess.Execute;
 end;
 end;
 
 
+{*******************************************************************
+*  TCompiler.InstallResource ()
+*
+*  DESCRIPTION:    Install a resource file
+*
+*  PARAMETERS:     None
+*
+*  RETURNS:        Nothing
+*
+*******************************************************************}
+procedure TCompiler.InstallResource(AFileName: string);
+var
+  StrFrom, StrTo: string;
+begin
+  WriteLn('');
+  WriteLn('Installing resource file: ', AFileName);
+  WriteLn('');
+
+  StrFrom := MakeFolder + ChangeFileExt(vProject.MainResource, STR_RESOURCE_EXT);
+  StrTo := vSDKUtil.SDKFolder + Str_Path_Resource_Files +
+   ChangeFileExt(vProject.MainResource, STR_RESOURCE_EXT);
+
+  FileCopy(StrFrom, StrTo);
+end;
+
 {*******************************************************************
 {*******************************************************************
 *  TCompiler.RegisterInEmulator ()
 *  TCompiler.RegisterInEmulator ()
 *
 *
@@ -480,11 +513,6 @@ begin
   StrTo := vSDKUtil.SDKFolder + Str_Path_Emulator_Registration +
   StrTo := vSDKUtil.SDKFolder + Str_Path_Emulator_Registration +
    ChangeFileExt(vProject.MainResource, STR_RESOURCE_EXT);
    ChangeFileExt(vProject.MainResource, STR_RESOURCE_EXT);
 
 
-  WriteLn('');
-  WriteLn('Copying file: ', StrFrom);
-  WriteLn('To: ', StrTo);
-  WriteLn('');
-
   FileCopy(StrFrom, StrTo);
   FileCopy(StrFrom, StrTo);
 end;
 end;
 
 

+ 2 - 0
utils/mksymbian/constants.pas

@@ -54,6 +54,7 @@ const
   Str_Path_CWTools = 'epoc32\tools\nokia_compiler\Symbian_Tools\Command_Line_Tools\';
   Str_Path_CWTools = 'epoc32\tools\nokia_compiler\Symbian_Tools\Command_Line_Tools\';
   Str_Path_RComp = 'epoc32\tools\rcomp.exe';
   Str_Path_RComp = 'epoc32\tools\rcomp.exe';
   Str_Path_Cpp = 'epoc32\tools\scpp.exe';
   Str_Path_Cpp = 'epoc32\tools\scpp.exe';
+  Str_Path_Resource_Files = 'epoc32\release\winscw\udeb\Z\resource\apps\';
   Str_Path_Emulator_Registration = 'epoc32\release\winscw\udeb\Z\private\10003a3f\apps\';
   Str_Path_Emulator_Registration = 'epoc32\release\winscw\udeb\Z\private\10003a3f\apps\';
 
 
 { Other constants }
 { Other constants }
@@ -92,6 +93,7 @@ const
 
 
   STR_PRJ_MainSource = 'mainsource';
   STR_PRJ_MainSource = 'mainsource';
   STR_PRJ_MainResource = 'mainresource';
   STR_PRJ_MainResource = 'mainresource';
+  STR_PRJ_RegResource = 'regresource';
 
 
   STR_PRJ_File = 'file';
   STR_PRJ_File = 'file';
 
 

+ 9 - 0
utils/mksymbian/mksymbian.pas

@@ -53,13 +53,22 @@ begin
       begin
       begin
         vProject.ParseFile;
         vProject.ParseFile;
         
         
+        { compilation }
         if CompareText(vProject.Language, STR_OPT_Cpp) = 0 then
         if CompareText(vProject.Language, STR_OPT_Cpp) = 0 then
          vCompiler.MakeBuildCpp
          vCompiler.MakeBuildCpp
         else
         else
          vCompiler.MakeBuildPascal;
          vCompiler.MakeBuildPascal;
 
 
+        { Main resource file }
+        
         vCompiler.BuildResource(vProject.MainResource);
         vCompiler.BuildResource(vProject.MainResource);
 
 
+        vCompiler.InstallResource(vProject.MainResource);
+
+        { Registration resource file }
+        
+        vCompiler.BuildResource(vProject.RegResource);
+
         vCompiler.RegisterInEmulator;
         vCompiler.RegisterInEmulator;
       end;
       end;
 
 

+ 3 - 2
utils/mksymbian/projectparser.pas

@@ -46,7 +46,7 @@ type
     { UIDs section }
     { UIDs section }
     UID2, UID3: string;
     UID2, UID3: string;
     { Files section }
     { Files section }
-    MainSource, MainSourceNoExt, MainResource: string;
+    MainSource, MainSourceNoExt, MainResource, RegResource: string;
     { Objects section }
     { Objects section }
     ObjectFiles: TStringList;
     ObjectFiles: TStringList;
   public
   public
@@ -105,7 +105,8 @@ begin
     MainSource := IniFile.ReadString(STR_PRJ_Files, STR_PRJ_MainSource, 'default.pas');
     MainSource := IniFile.ReadString(STR_PRJ_Files, STR_PRJ_MainSource, 'default.pas');
     MainSourceNoExt := ExtractFileExt(MainSource);
     MainSourceNoExt := ExtractFileExt(MainSource);
     MainResource := IniFile.ReadString(STR_PRJ_Files, STR_PRJ_MainResource, 'default.rss');
     MainResource := IniFile.ReadString(STR_PRJ_Files, STR_PRJ_MainResource, 'default.rss');
-
+    RegResource :=  IniFile.ReadString(STR_PRJ_Files, STR_PRJ_RegResource, 'default_reg.rss');
+    
     IniFile.ReadSection(STR_PRJ_Objects, ObjectFiles);
     IniFile.ReadSection(STR_PRJ_Objects, ObjectFiles);
   finally
   finally
     IniFile.Free;
     IniFile.Free;