diff options
Diffstat (limited to 'tools/ResourceExtractor')
-rw-r--r-- | tools/ResourceExtractor/Makefile.in | 16 | ||||
-rw-r--r-- | tools/ResourceExtractor/ResourceExtractor.lpi | 106 | ||||
-rw-r--r-- | tools/ResourceExtractor/ResourceExtractor.pas | 152 |
3 files changed, 0 insertions, 274 deletions
diff --git a/tools/ResourceExtractor/Makefile.in b/tools/ResourceExtractor/Makefile.in deleted file mode 100644 index 101b14e2..00000000 --- a/tools/ResourceExtractor/Makefile.in +++ /dev/null @@ -1,16 +0,0 @@ -PPC = @PPC@ -PFLAGS = -dRELEASE - -NAME = ResourceExtractor -SRC = $(NAME).pas -BIN = $(NAME)@EXEEXT@ - -.PHONY: all clean distclean - -all: $(BIN) - -clean: - rm -f $(BIN) *.o *.ppu *.rst - -$(BIN): $(SRC) - $(PPC) $(PFLAGS) -o$@ $(SRC) diff --git a/tools/ResourceExtractor/ResourceExtractor.lpi b/tools/ResourceExtractor/ResourceExtractor.lpi deleted file mode 100644 index 82ecf87e..00000000 --- a/tools/ResourceExtractor/ResourceExtractor.lpi +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0"?> -<CONFIG> - <ProjectOptions> - <PathDelim Value="/"/> - <Version Value="6"/> - <General> - <Flags> - <MainUnitHasUsesSectionForAllUnits Value="False"/> - <MainUnitHasCreateFormStatements Value="False"/> - <MainUnitHasTitleStatement Value="False"/> - </Flags> - <MainUnit Value="0"/> - <IconPath Value="./"/> - <TargetFileExt Value=""/> - <ActiveEditorIndexAtStart Value="0"/> - </General> - <VersionInfo> - <ProjectVersion Value=""/> - <Language Value=""/> - <CharSet Value=""/> - </VersionInfo> - <PublishOptions> - <Version Value="2"/> - <IgnoreBinaries Value="False"/> - <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/> - <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/> - </PublishOptions> - <RunParams> - <local> - <FormatVersion Value="1"/> - <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/> - </local> - </RunParams> - <Units Count="3"> - <Unit0> - <Filename Value="ResourceExtractor.pas"/> - <IsPartOfProject Value="True"/> - <UnitName Value="ResourceExtractor"/> - <CursorPos X="1" Y="131"/> - <TopLine Value="108"/> - <EditorIndex Value="0"/> - <UsageCount Value="21"/> - <Loaded Value="True"/> - </Unit0> - <Unit1> - <Filename Value="../USDXResCompiler.lpr"/> - <UnitName Value="USDXResCompiler"/> - <CursorPos X="17" Y="96"/> - <TopLine Value="89"/> - <UsageCount Value="10"/> - </Unit1> - <Unit2> - <Filename Value="../../Game/Code/resource.inc"/> - <CursorPos X="1" Y="1"/> - <TopLine Value="1"/> - <UsageCount Value="10"/> - </Unit2> - </Units> - <JumpHistory Count="8" HistoryIndex="7"> - <Position1> - <Filename Value="ResourceExtractor.pas"/> - <Caret Line="144" Column="23" TopLine="104"/> - </Position1> - <Position2> - <Filename Value="ResourceExtractor.pas"/> - <Caret Line="120" Column="1" TopLine="99"/> - </Position2> - <Position3> - <Filename Value="ResourceExtractor.pas"/> - <Caret Line="140" Column="25" TopLine="105"/> - </Position3> - <Position4> - <Filename Value="ResourceExtractor.pas"/> - <Caret Line="146" Column="32" TopLine="103"/> - </Position4> - <Position5> - <Filename Value="ResourceExtractor.pas"/> - <Caret Line="139" Column="27" TopLine="105"/> - </Position5> - <Position6> - <Filename Value="ResourceExtractor.pas"/> - <Caret Line="140" Column="8" TopLine="105"/> - </Position6> - <Position7> - <Filename Value="ResourceExtractor.pas"/> - <Caret Line="139" Column="27" TopLine="106"/> - </Position7> - <Position8> - <Filename Value="ResourceExtractor.pas"/> - <Caret Line="144" Column="7" TopLine="106"/> - </Position8> - </JumpHistory> - </ProjectOptions> - <CompilerOptions> - <Version Value="5"/> - <SearchPaths> - <SrcPath Value="../../Game/Code/"/> - </SearchPaths> - <CodeGeneration> - <Generate Value="Faster"/> - </CodeGeneration> - <Other> - <CompilerPath Value="$(CompPath)"/> - </Other> - </CompilerOptions> -</CONFIG> diff --git a/tools/ResourceExtractor/ResourceExtractor.pas b/tools/ResourceExtractor/ResourceExtractor.pas deleted file mode 100644 index aa9cc3bc..00000000 --- a/tools/ResourceExtractor/ResourceExtractor.pas +++ /dev/null @@ -1,152 +0,0 @@ -program ResourceExtractor; - -{$ifdef FPC} - {$mode delphi}{$H+} -{$endif} - -uses - Classes, - SysUtils, - StrUtils; - - -var - ResCount: integer; - OutStream: TStringList; - - -procedure Init(); -begin - OutStream := TStringList.Create(); - - OutStream.Add('const'); - // placeholder for array-header (will be filled on file-saving) - OutStream.Add(''); -end; - -procedure SaveToFile(const OutFileName: string); -begin - // add array-header - OutStream[1] := ' resources: array[0..'+IntToStr(ResCount-1)+', 0..2] of string = ('; - // add trailer - OutStream.Add(' );'); - - // save file - try - OutStream.SaveToFile(OutFileName); - except - OutStream.Free(); - raise Exception.Create('Could not save to file: "' + OutFileName + '"'); - end; - - OutStream.Free(); -end; - -function AddResource(Fields: TStringList; const RCFileDir, ResDir: string): boolean; -var - ResName, ResType, ResFile: string; -begin - if (Fields.Count < 3) or - (AnsiStartsStr('//', Fields[0])) or - (Length(Fields[2]) < 3) then - begin - Result := false; - Exit; - end; - - // add a trailing comma to the last line - if (ResCount > 0) then - OutStream[OutStream.Count-1] := OutStream[OutStream.Count-1] + ','; - - ResName := Fields[0]; - ResType := Fields[1]; - ResFile := Fields[2]; - - Writeln('ADD: [' + ResType + ':' + ResName + ' = ' +ResFile + ']'); - - // quote fields - ResName := AnsiQuotedStr(ResName, '''')+','; - ResType := AnsiQuotedStr(ResType, '''')+','; - // strip surrounding quotes of filename - ResFile := AnsiMidStr(ResFile, 2, Length(Fields[2])-2); - // now translate the resource filename (relative to the RC-file) to be relative to the resource-dir - // 1st step: get absolute path of the resource - ResFile := ExpandFileName(RCFileDir + ResFile); - // 2nd step: get path of the resource relative to the resource-dir - // Note: both paths must be absolute and the base-path must have a trailing '/' or '\' - ResFile := ExtractRelativepath(ResDir, ResFile); - // 3rd step: ... and quote - ResFile := AnsiQuotedStr(ResFile, ''''); - - // compose line - OutStream.Add(Format(' (%-20S%-8S%S)', [ResName, ResType, ResFile])); - - Inc(ResCount); - - Result := true; -end; - -procedure ExtractResources(const InFileName, ResDir: string); -var - Fields: TStringList; - LineIndex: integer; - Lines: TStringList; - RCFileDirAbs, ResDirAbs: string; -begin - // get absolute paths - RCFileDirAbs := ExtractFilePath(ExpandFileName(InFileName)); - ResDirAbs := ExpandFileName(ResDir) + '/'; - - Lines := TStringList.Create(); - try - Lines.LoadFromFile(InFileName); - except - raise Exception.Create('Failed to open file: "' + InFileName + '"'); - end; - - Fields := TStringList.Create(); - for LineIndex := 0 to Lines.Count-1 do - begin - Fields.Clear(); - // split line into [Name, Type, File] - ExtractStrings([' ', #9], [], PChar(Lines[LineIndex]), Fields); - if (not AddResource(Fields, RCFileDirAbs, ResDirAbs)) then - Writeln( 'SKIP: "'+Lines[LineIndex]+'"'); - end; - - Lines.Free(); - Fields.Free(); -end; - -var - ProgName: string; -begin - if (ParamCount <> 3) then - begin - ProgName := ExtractFileName(ParamStr(0)); - WriteLn('Usage: ' + ProgName + ' RC-File Resource-Dir Output-File'); - Exit; - end; - - WriteLn('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'); - WriteLn('Converting "' + ParamStr(1) + '" to "' + ParamStr(3) + '"'); - WriteLn('>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'); - - try - Init(); - ExtractResources(ParamStr(1), ParamStr(2)); - SaveToFile(ParamStr(3)); - except on E:Exception do - begin - WriteLn('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); - WriteLn('Conversion failed: ' + E.Message + '!'); - WriteLn('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'); - Exit; - end; - end; - - WriteLn('<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'); - WriteLn('Conversion finished!'); - WriteLn('<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<'); -end. - |