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.
 | 
						|
 |