123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- {
- projectparser.pas
- Parses the project file
- Copyright (C) 2006-2007 Felipe Monteiro de Carvalho
- This file is part of MkSymbian build tool.
- MkSymbian is free software;
- you can redistribute it and/or modify it under the
- terms of the GNU General Public License version 2
- as published by the Free Software Foundation.
- MkSymbian is distributed in the hope
- that it will be useful, but WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the GNU General Public License for more details.
- Please note that the General Public License version 2 does not permit
- incorporating MkSymbian into proprietary programs.
- }
- unit projectparser;
- {$ifdef fpc}
- {$mode delphi}{$H+}
- {$endif}
- interface
- uses
- Classes, SysUtils, IniFiles,
- constants;
- type
- { TProject }
- TProject = class(TObject)
- public
- opts: TMkSymbianOptions;
- { Main section }
- ExeName, Language: string;
- { FPC section }
- CompilerPath, AssemblerPath, RTLUnitsDir: string;
- { UIDs section }
- UID2, UID3: string;
- { Files section }
- MainSource, MainSourceNoExt, MainResource, RegResource: string;
- { Objects section }
- ObjectFiles: TStringList;
- public
- constructor Create;
- destructor Destroy; override;
- procedure ParseFile;
- end;
- var
- vProject: TProject;
- implementation
- { TProject }
- constructor TProject.Create;
- begin
- inherited Create;
-
- ObjectFiles := TStringList.Create;
- end;
- destructor TProject.Destroy;
- begin
- ObjectFiles.Free;
- inherited Destroy;
- end;
- {*******************************************************************
- * TProject.ParseFile ()
- *
- * DESCRIPTION: Parses the project file
- *
- * PARAMETERS: None
- *
- * RETURNS: Nothing
- *
- *******************************************************************}
- procedure TProject.ParseFile;
- var
- IniFile: TIniFile;
- begin
- IniFile := TIniFile.Create(opts.ProjectFile);
- try
- ExeName := IniFile.ReadString(STR_PRJ_Files, STR_PRJ_ExeName, 'default.exe');
- Language := IniFile.ReadString(STR_PRJ_Files, STR_PRJ_Language, 'Pascal');
- CompilerPath := IniFile.ReadString(STR_PRJ_FPC, STR_PRJ_CompilerPath, 'C:\Programas\fpc21\compiler\ppc386.exe');
- AssemblerPath := IniFile.ReadString(STR_PRJ_FPC, STR_PRJ_AssemblerPath, 'C:\Programas\lazarus20\fpc\2.1.5\bin\i386-win32\as.exe');
- RTLUnitsDir := IniFile.ReadString(STR_PRJ_FPC, STR_PRJ_RTLUnitsDir, 'C:\Programas\fpc21\rtl\units\i386-symbian\');
- UID2 := IniFile.ReadString(STR_PRJ_UIDs, STR_PRJ_UID2, '0x100039CE');
- UID3 := IniFile.ReadString(STR_PRJ_UIDs, STR_PRJ_UID3, '0xE1000002');
- MainSource := IniFile.ReadString(STR_PRJ_Files, STR_PRJ_MainSource, 'default.pas');
- MainSourceNoExt := ExtractFileExt(MainSource);
- 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);
- finally
- IniFile.Free;
- end;
- end;
- end.
|