
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@4404 8e941d3f-bd1b-0410-a28a-d453659cc2b4
56 lines
1.2 KiB
ObjectPascal
56 lines
1.2 KiB
ObjectPascal
unit xcodeprojutils;
|
|
|
|
{$mode delphi}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, xcodeproj;
|
|
|
|
// proj name is used for ".xcodeprj" bundle-directory
|
|
// hostdir is the hosting directory for the project
|
|
// prj - the content of the project
|
|
function ProjectWriteStruct(prj: PBXProject; const projName: string; const HostDir: string): Boolean;
|
|
|
|
const
|
|
ProjExt = '.xcodeproj';
|
|
ProjFileName = 'project.pbxproj';
|
|
|
|
implementation
|
|
|
|
function ProjectWriteStruct(prj: PBXProject; const projName: string; const HostDir: string): Boolean;
|
|
var
|
|
prjdir : string;
|
|
s : string;
|
|
fs : TFileStream;
|
|
fn : string;
|
|
begin
|
|
if HostDir = ''
|
|
then prjdir:=IncludeTrailingPathDelimiter(GetCurrentDir)+projName+ProjExt
|
|
else prjdir:=IncludeTrailingPathDelimiter(HostDir)+projName+ProjExt;
|
|
|
|
Result:=ForceDirectories(prjdir);
|
|
if not Result then Exit;
|
|
fn:=IncludeTrailingPathDelimiter(prjdir)+ProjFileName;
|
|
|
|
s:=ProjectWrite(prj);
|
|
|
|
try
|
|
fs:=TFileStream.Create(fn, fmCreate);
|
|
try
|
|
if length(s)>0 then begin
|
|
fs.Write(s[1], length(s));
|
|
fs.Size:=length(s);
|
|
end;
|
|
Result:=true;
|
|
finally
|
|
fs.Free;
|
|
end;
|
|
except
|
|
Result:=false;
|
|
end;
|
|
end;
|
|
|
|
end.
|
|
|