mirror of
https://github.com/InvisibleUp/uvmac.git
synced 2024-11-26 03:49:19 +00:00
2083 lines
50 KiB
OpenEdge ABL
2083 lines
50 KiB
OpenEdge ABL
/*
|
|
WRXCDFLS.i
|
|
Copyright (C) 2007 Paul C. Pratt
|
|
|
|
You can redistribute this file and/or modify it under the terms
|
|
of version 2 of the GNU General Public License as published by
|
|
the Free Software Foundation. You should have received a copy
|
|
of the license along with this file; see the file COPYING.
|
|
|
|
This file 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
|
|
license for more details.
|
|
*/
|
|
|
|
/*
|
|
WRite XCoDe specific FiLeS
|
|
|
|
(also support older Apple Project Builder)
|
|
*/
|
|
|
|
LOCALPROC WriteNextLineSameDent(void)
|
|
{
|
|
WriteEndDestFileLn();
|
|
WriteBgnDestFileLn();
|
|
}
|
|
|
|
static void WriteAPBXCDObjectId(unsigned int theClass, unsigned int v)
|
|
{
|
|
WriteHexWordToOutput(theClass);
|
|
WriteHexWordToOutput(v);
|
|
WriteCStrToDestFile("0000000000000000");
|
|
}
|
|
|
|
enum {
|
|
APBoclsSrcBld,
|
|
APBoclsIcnsBld,
|
|
APBoclsFramBld,
|
|
APBospcLibStdcBld,
|
|
APBospcMnRsrcBld, /* only if HaveMacRrscs */
|
|
APBospcLangDummyBld,
|
|
|
|
APBospcBuildStyle,
|
|
|
|
APBoclsSrcRf,
|
|
APBoclsHdr, /* only if gbk_ide_xcd == cur_ide */
|
|
APBoclsInc, /* only if gbk_ide_xcd == cur_ide */
|
|
APBoclsIcnsRf,
|
|
APBoclsFramRf,
|
|
APBospcLibStdcRf,
|
|
APBospcProductRef,
|
|
APBospcPlistRf,
|
|
APBospcMainRsrcRf, /* only if HaveMacRrscs */
|
|
APBospcLangRf,
|
|
|
|
APBospcPhaseLibs,
|
|
APBospcSources,
|
|
APBospcResources, /* only if HaveMacBundleApp */
|
|
APBospcLibraries,
|
|
APBospcProducts,
|
|
APBospcMainGroup,
|
|
APBospcSrcHeaders, /* only if gbk_ide_xcd == cur_ide */
|
|
APBospcIncludes, /* only if gbk_ide_xcd == cur_ide */
|
|
|
|
APBospcTarget,
|
|
APBospcRoot,
|
|
APBospcBunRsrcs, /* only if HaveMacBundleApp */
|
|
APBospcPhaseRsrc, /* only if HaveMacRrscs */
|
|
APBospcHeaders,
|
|
APBospcPhaseSrcs,
|
|
|
|
APBospcLangDummyRf,
|
|
|
|
APBospcNatCnfg, /* only if gbk_ide_xcd == cur_ide */
|
|
APBospcPrjCnfg, /* only if gbk_ide_xcd == cur_ide */
|
|
APBospcLstNatCnfg, /* only if gbk_ide_xcd == cur_ide */
|
|
APBospcLstPrjCnfg, /* only if gbk_ide_xcd == cur_ide */
|
|
|
|
kNumAPBocls
|
|
};
|
|
|
|
#define HaveAPBXCD_LangDummy (ide_vers >= 1000)
|
|
#define HaveAPBXCD_PlistFile (ide_vers >= 1000)
|
|
#define HaveAPBXCD_NameCmmnt (ide_vers >= 2100)
|
|
#define HaveAPBXCD_Headers (ide_vers >= 1000)
|
|
#define HaveAPBXCD_StdcLib (ide_vers < 1500)
|
|
#define HaveAPBXCD_IsaFirst (ide_vers >= 2100)
|
|
|
|
static void WriteAPBXCDBgnObjList(char *s)
|
|
{
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile(s);
|
|
WriteCStrToDestFile(" = (");
|
|
WriteEndDestFileLn();
|
|
++DestFileIndent;
|
|
}
|
|
|
|
static void WriteAPBXCDEndObjList(void)
|
|
{
|
|
--DestFileIndent;
|
|
WriteDestFileLn(");");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDObjectIdAndComment(unsigned int theClass,
|
|
unsigned int v, MyProc comment)
|
|
{
|
|
WriteAPBXCDObjectId(theClass, v);
|
|
if (HaveAPBXCD_NameCmmnt) {
|
|
WriteCStrToDestFile(" /* ");
|
|
comment();
|
|
WriteCStrToDestFile(" */");
|
|
}
|
|
}
|
|
|
|
static void WriteAPBXCDBeginObject(unsigned int theClass,
|
|
unsigned int v, MyProc comment)
|
|
{
|
|
WriteBgnDestFileLn();
|
|
WriteAPBXCDObjectIdAndComment(theClass, v, comment);
|
|
WriteCStrToDestFile(" = {");
|
|
WriteEndDestFileLn();
|
|
++DestFileIndent;
|
|
}
|
|
|
|
static void WriteAPBXCDEndObject(void)
|
|
{
|
|
--DestFileIndent;
|
|
WriteDestFileLn("};");
|
|
}
|
|
|
|
static void WriteAPBQuotedField(char *s, char *v)
|
|
{
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile(s);
|
|
WriteCStrToDestFile(" = ");
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile(v);
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile(";");
|
|
WriteEndDestFileLn();
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDobjlistelmp(unsigned int theClass, unsigned int v,
|
|
MyProc comment)
|
|
{
|
|
WriteBgnDestFileLn();
|
|
WriteAPBXCDObjectIdAndComment(theClass, v, comment);
|
|
WriteCStrToDestFile(",");
|
|
WriteEndDestFileLn();
|
|
}
|
|
|
|
LOCALVAR int APBXCDForceSameLine = 0;
|
|
|
|
LOCALPROC WriteAPBXCDSepA(void)
|
|
{
|
|
if (0 == APBXCDForceSameLine) {
|
|
WriteNextLineSameDent();
|
|
} else {
|
|
WriteSpaceToDestFile();
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjectAPropBgn(void)
|
|
{
|
|
if (0 == APBXCDForceSameLine) {
|
|
WriteBgnDestFileLn();
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjectAPropEnd(void)
|
|
{
|
|
WriteCStrToDestFile(";");
|
|
if (0 == APBXCDForceSameLine) {
|
|
WriteEndDestFileLn();
|
|
} else {
|
|
WriteSpaceToDestFile();
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDObjectAp(unsigned int theClass, unsigned int v,
|
|
MyProc comment, MyProc body)
|
|
{
|
|
WriteBgnDestFileLn();
|
|
WriteAPBXCDObjectIdAndComment(theClass, v, comment);
|
|
WriteCStrToDestFile(" = {");
|
|
if (ide_vers < 2100) {
|
|
WriteEndDestFileLn();
|
|
++DestFileIndent;
|
|
body();
|
|
--DestFileIndent;
|
|
WriteBgnDestFileLn();
|
|
} else {
|
|
++APBXCDForceSameLine;
|
|
body();
|
|
--APBXCDForceSameLine;
|
|
}
|
|
WriteCStrToDestFile("};");
|
|
WriteEndDestFileLn();
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAProp_SS(char *ns, char *vs)
|
|
{
|
|
WriteAPBXCDDObjectAPropBgn();
|
|
WriteCStrToDestFile(ns);
|
|
WriteCStrToDestFile(" = ");
|
|
WriteCStrToDestFile(vs);
|
|
WriteAPBXCDDObjectAPropEnd();
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAProp_SP(char *ns, MyProc p)
|
|
{
|
|
WriteAPBXCDDObjectAPropBgn();
|
|
WriteCStrToDestFile(ns);
|
|
WriteCStrToDestFile(" = ");
|
|
p();
|
|
WriteAPBXCDDObjectAPropEnd();
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAProp_SO(char *ns,
|
|
unsigned int theClass, unsigned int v,
|
|
MyProc comment)
|
|
{
|
|
WriteAPBXCDDObjectAPropBgn();
|
|
WriteCStrToDestFile(ns);
|
|
WriteCStrToDestFile(" = ");
|
|
WriteAPBXCDObjectIdAndComment(theClass,
|
|
v, comment);
|
|
WriteAPBXCDDObjectAPropEnd();
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropIsa(char *s)
|
|
{
|
|
WriteAPBXCDDObjAProp_SS("isa", s);
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropIsaBuildFile(void)
|
|
{
|
|
WriteAPBXCDDObjAPropIsa("PBXBuildFile");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropIsaFileReference(void)
|
|
{
|
|
WriteAPBXCDDObjAPropIsa("PBXFileReference");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropIsaGroup(void)
|
|
{
|
|
WriteAPBXCDDObjAPropIsa("PBXGroup");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropFileEncoding30(void)
|
|
{
|
|
WriteAPBXCDDObjAProp_SS("fileEncoding", "30");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropFileEncoding4(void)
|
|
{
|
|
WriteAPBXCDDObjAProp_SS("fileEncoding", "4");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropRefType(char *ns)
|
|
{
|
|
if (ide_vers < 2100) {
|
|
WriteAPBXCDDObjAProp_SS("refType", ns);
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropRefType0(void)
|
|
{
|
|
WriteAPBXCDDObjAPropRefType("0");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropRefType2(void)
|
|
{
|
|
WriteAPBXCDDObjAPropRefType("2");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropRefType3(void)
|
|
{
|
|
WriteAPBXCDDObjAPropRefType("3");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropRefType4(void)
|
|
{
|
|
WriteAPBXCDDObjAPropRefType("4");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropName(MyProc p)
|
|
{
|
|
WriteAPBXCDDObjAProp_SP("name", p);
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropPath(MyProc p)
|
|
{
|
|
WriteAPBXCDDObjAProp_SP("path", p);
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropSourceTree(char *s)
|
|
{
|
|
if (ide_vers >= 1000) {
|
|
WriteAPBXCDDObjAProp_SS("sourceTree", s);
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropSourceTreeRoot(void)
|
|
{
|
|
WriteAPBXCDDObjAPropSourceTree("SOURCE_ROOT");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropSourceTreeSDKRoot(void)
|
|
{
|
|
WriteAPBXCDDObjAPropSourceTree("SDKROOT");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropSourceTreeAbsolute(void)
|
|
{
|
|
WriteAPBXCDDObjAPropSourceTree("\"<absolute>\"");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropSourceTreeGroup(void)
|
|
{
|
|
WriteAPBXCDDObjAPropSourceTree("\"<group>\"");
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropExpectedFileType(MyProc p)
|
|
{
|
|
if ((ide_vers < 1500) && (ide_vers >= 1000)) {
|
|
WriteAPBXCDDObjAProp_SP("expectedFileType", p);
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropLastKnownFType(MyProc p)
|
|
{
|
|
if (ide_vers >= 1500) {
|
|
WriteAPBXCDDObjAProp_SP("lastKnownFileType", p);
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropFileRef(
|
|
unsigned int theClass, unsigned int v,
|
|
MyProc comment)
|
|
{
|
|
WriteAPBXCDDObjAProp_SO("fileRef",
|
|
theClass, v, comment);
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropIncludeII0(void)
|
|
{
|
|
if (ide_vers >= 1000) {
|
|
WriteAPBXCDDObjAProp_SS("includeInIndex", "0");
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropSettingsNull(void)
|
|
{
|
|
if (ide_vers < 2100) {
|
|
WriteAPBXCDDObjectAPropBgn();
|
|
WriteCStrToDestFile("settings = {");
|
|
WriteAPBXCDSepA();
|
|
WriteCStrToDestFile("}");
|
|
WriteAPBXCDDObjectAPropEnd();
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteSrcFileAPBXCDNameInSources(void)
|
|
{
|
|
WriteSrcFileFileName();
|
|
WriteCStrToDestFile(" in Sources");
|
|
}
|
|
|
|
LOCALPROC DoSrcFileAPBXCDaddFileBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropFileRef(APBoclsSrcRf,
|
|
FileCounter, WriteSrcFileFileName);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
WriteAPBXCDDObjAPropSettingsNull();
|
|
}
|
|
|
|
LOCALPROC DoSrcFileAPBXCDaddFile(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBoclsSrcBld, FileCounter,
|
|
WriteSrcFileAPBXCDNameInSources, DoSrcFileAPBXCDaddFileBody);
|
|
}
|
|
|
|
LOCALPROC WriteSrcFileAPBXCDtype(void)
|
|
{
|
|
char *s;
|
|
blnr UseObjc = ((DoSrcFile_gd()->Flgm & kCSrcFlgmOjbc) != 0);
|
|
|
|
if (UseObjc) {
|
|
s = "sourcecode.c.objc";
|
|
} else {
|
|
s = "sourcecode.c.c";
|
|
}
|
|
WriteCStrToDestFile(s);
|
|
}
|
|
|
|
LOCALPROC DoSrcFileAPBXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteSrcFileAPBXCDtype);
|
|
WriteAPBXCDDObjAPropFileEncoding30();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteSrcFileAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteSrcFileFileName);
|
|
WriteAPBXCDDObjAPropPath(WriteSrcFileFilePath);
|
|
WriteAPBXCDDObjAPropRefType2();
|
|
WriteAPBXCDDObjAPropSourceTreeRoot();
|
|
}
|
|
|
|
LOCALPROC DoSrcFileAPBXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBoclsSrcRf, FileCounter,
|
|
WriteSrcFileFileName,
|
|
DoSrcFileAPBXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC DoSrcFileAPBXCDaddToGroup(void)
|
|
{
|
|
WriteAPBXCDobjlistelmp(APBoclsSrcRf, FileCounter,
|
|
WriteSrcFileFileName);
|
|
}
|
|
|
|
LOCALPROC DoSrcFileAPBXCDaddToSources(void)
|
|
{
|
|
WriteAPBXCDobjlistelmp(APBoclsSrcBld, FileCounter,
|
|
WriteSrcFileAPBXCDNameInSources);
|
|
}
|
|
|
|
LOCALPROC WriteHeaderFileAPBXCDtype(void)
|
|
{
|
|
WriteCStrToDestFile("sourcecode.c.h");
|
|
}
|
|
|
|
LOCALPROC DoHeaderFileXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteHeaderFileAPBXCDtype);
|
|
WriteAPBXCDDObjAPropFileEncoding30();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteHeaderFileAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteSrcFileHeaderName);
|
|
WriteAPBXCDDObjAPropPath(WriteSrcFileHeaderPath);
|
|
WriteAPBXCDDObjAPropRefType2();
|
|
WriteAPBXCDDObjAPropSourceTreeRoot();
|
|
}
|
|
|
|
LOCALPROC DoHeaderFileXCDaddFileRef(void)
|
|
{
|
|
if (0 == (DoSrcFile_gd()->Flgm & kCSrcFlgmNoHeader)) {
|
|
WriteAPBXCDObjectAp(APBoclsHdr, FileCounter,
|
|
WriteSrcFileHeaderName,
|
|
DoHeaderFileXCDaddFileRefBody);
|
|
}
|
|
}
|
|
|
|
LOCALPROC DoHeaderFileXCDaddToGroup(void)
|
|
{
|
|
if (0 == (DoSrcFile_gd()->Flgm & kCSrcFlgmNoHeader)) {
|
|
WriteAPBXCDobjlistelmp(APBoclsHdr, FileCounter,
|
|
WriteSrcFileHeaderName);
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteDocTypeAPBXCDIconFileInResources(void)
|
|
{
|
|
WriteDocTypeIconFileName();
|
|
WriteCStrToDestFile(" in Resources");
|
|
}
|
|
|
|
LOCALPROC DoDocTypeAPBXCDaddFileBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropFileRef(APBoclsIcnsRf,
|
|
DocTypeCounter, WriteDocTypeIconFileName);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
WriteAPBXCDDObjAPropSettingsNull();
|
|
}
|
|
|
|
LOCALPROC DoDocTypeAPBXCDaddFile(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBoclsIcnsBld, DocTypeCounter,
|
|
WriteDocTypeAPBXCDIconFileInResources,
|
|
DoDocTypeAPBXCDaddFileBody);
|
|
}
|
|
|
|
LOCALPROC WriteDocTypeAPBXCDtype(void)
|
|
{
|
|
WriteCStrToDestFile("image.icns");
|
|
}
|
|
|
|
LOCALPROC DoDocTypeAPBXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteDocTypeAPBXCDtype);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteDocTypeAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteDocTypeIconFileName);
|
|
WriteAPBXCDDObjAPropPath(WriteDocTypeIconFilePath);
|
|
WriteAPBXCDDObjAPropRefType2();
|
|
WriteAPBXCDDObjAPropSourceTreeRoot();
|
|
}
|
|
|
|
LOCALPROC DoDocTypeAPBXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBoclsIcnsRf, DocTypeCounter,
|
|
WriteDocTypeIconFileName, DoDocTypeAPBXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC DoDocTypeAPBXCDaddToGroup(void)
|
|
{
|
|
WriteAPBXCDobjlistelmp(APBoclsIcnsRf, DocTypeCounter,
|
|
WriteDocTypeIconFileName);
|
|
}
|
|
|
|
LOCALPROC DoDocTypeAPBXCDaddToSources(void)
|
|
{
|
|
WriteAPBXCDobjlistelmp(APBoclsIcnsBld, DocTypeCounter,
|
|
WriteDocTypeAPBXCDIconFileInResources);
|
|
}
|
|
|
|
LOCALPROC WriteFrameWorkAPBXCDFileName(void)
|
|
{
|
|
WriteCStrToDestFile(DoFrameWork_gd()->s);
|
|
WriteCStrToDestFile(".framework");
|
|
}
|
|
|
|
LOCALPROC WriteFrameWorkAPBXCDFilePath(void)
|
|
{
|
|
if (ide_vers < 4000) {
|
|
WriteCStrToDestFile("/");
|
|
}
|
|
WriteCStrToDestFile("System/Library/Frameworks/");
|
|
WriteFrameWorkAPBXCDFileName();
|
|
}
|
|
|
|
LOCALPROC WriteFrameWorkAPBXCDileInFrameworks(void)
|
|
{
|
|
WriteFrameWorkAPBXCDFileName();
|
|
WriteCStrToDestFile(" in Frameworks");
|
|
}
|
|
|
|
LOCALPROC DoFrameWorkAPBXCDaddFileBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropFileRef(APBoclsFramRf,
|
|
FileCounter, WriteFrameWorkAPBXCDFileName);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
WriteAPBXCDDObjAPropSettingsNull();
|
|
}
|
|
|
|
LOCALPROC DoFrameWorkAPBXCDaddFile(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBoclsFramBld, FileCounter,
|
|
WriteFrameWorkAPBXCDileInFrameworks,
|
|
DoFrameWorkAPBXCDaddFileBody);
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropIsaFrameworkRef(void)
|
|
{
|
|
if (ide_vers < 1000) {
|
|
WriteAPBXCDDObjAPropIsa("PBXFrameworkReference");
|
|
} else {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteFrameWorkAPBXCDtype(void)
|
|
{
|
|
WriteCStrToDestFile("wrapper.framework");
|
|
}
|
|
|
|
LOCALPROC DoFrameWorkAPBXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFrameworkRef();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteFrameWorkAPBXCDtype);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFrameworkRef();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteFrameWorkAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteFrameWorkAPBXCDFileName);
|
|
WriteAPBXCDDObjAPropPath(WriteFrameWorkAPBXCDFilePath);
|
|
WriteAPBXCDDObjAPropRefType0();
|
|
if (ide_vers >= 4000) {
|
|
WriteAPBXCDDObjAPropSourceTreeSDKRoot();
|
|
} else {
|
|
WriteAPBXCDDObjAPropSourceTreeAbsolute();
|
|
}
|
|
}
|
|
|
|
LOCALPROC DoFrameWorkAPBXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBoclsFramRf, FileCounter,
|
|
WriteFrameWorkAPBXCDFileName,
|
|
DoFrameWorkAPBXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC DoFrameworkAPBXCDaddToBuild(void)
|
|
{
|
|
WriteAPBXCDobjlistelmp(APBoclsFramBld, FileCounter,
|
|
WriteFrameWorkAPBXCDileInFrameworks);
|
|
}
|
|
|
|
LOCALPROC DoFrameworkAPBXCDaddToLibraries(void)
|
|
{
|
|
WriteAPBXCDobjlistelmp(APBoclsFramRf, FileCounter,
|
|
WriteFrameWorkAPBXCDFileName);
|
|
}
|
|
|
|
LOCALPROC DoExtraHeaderFileXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteHeaderFileAPBXCDtype);
|
|
WriteAPBXCDDObjAPropFileEncoding30();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteHeaderFileAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteExtraHeaderFileName);
|
|
WriteAPBXCDDObjAPropPath(WriteExtraHeaderFilePath);
|
|
WriteAPBXCDDObjAPropRefType2();
|
|
WriteAPBXCDDObjAPropSourceTreeRoot();
|
|
}
|
|
|
|
LOCALPROC DoExtraHeaderFileXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBoclsInc, FileCounter,
|
|
WriteExtraHeaderFileName,
|
|
DoExtraHeaderFileXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC DoExtraHeaderFileXCDaddToGroup(void)
|
|
{
|
|
WriteAPBXCDobjlistelmp(APBoclsInc, FileCounter,
|
|
WriteExtraHeaderFileName);
|
|
}
|
|
|
|
LOCALPROC WriteMainAPBXCDRsrcNameinRez(void)
|
|
{
|
|
WriteMainRsrcName();
|
|
WriteCStrToDestFile(" in Rez");
|
|
}
|
|
|
|
LOCALPROC DoRsrcAPBXCDaddFileBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropFileRef(APBospcMainRsrcRf, 0,
|
|
WriteMainRsrcName);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
WriteAPBXCDDObjAPropSettingsNull();
|
|
}
|
|
|
|
LOCALPROC DoRsrcAPBXCDaddFile(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBospcMnRsrcBld, 0,
|
|
WriteMainAPBXCDRsrcNameinRez,
|
|
DoRsrcAPBXCDaddFileBody);
|
|
}
|
|
|
|
LOCALPROC WriteRsrcAPBXCDtype(void)
|
|
{
|
|
WriteCStrToDestFile("sourcecode.rez");
|
|
}
|
|
|
|
LOCALPROC DoRsrcAPBXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteRsrcAPBXCDtype);
|
|
WriteAPBXCDDObjAPropFileEncoding30();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteRsrcAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteMainRsrcName);
|
|
WriteAPBXCDDObjAPropPath(WriteMainRsrcSrcPath);
|
|
WriteAPBXCDDObjAPropRefType2();
|
|
WriteAPBXCDDObjAPropSourceTreeRoot();
|
|
}
|
|
|
|
LOCALPROC DoRsrcAPBXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBospcMainRsrcRf, 0,
|
|
WriteMainRsrcName,
|
|
DoRsrcAPBXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC WriteLibStdcName(void)
|
|
{
|
|
WriteCStrToDestFile("libstdc++.a");
|
|
}
|
|
|
|
LOCALPROC DoLibStdcAPBXCDaddFileBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropFileRef(APBospcLibStdcRf, 0,
|
|
WriteLibStdcName);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
WriteAPBXCDDObjAPropSettingsNull();
|
|
}
|
|
|
|
LOCALPROC DoLibStdcAPBXCDaddFile(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBospcLibStdcBld, 0,
|
|
WriteLibStdcName,
|
|
DoLibStdcAPBXCDaddFileBody);
|
|
}
|
|
|
|
LOCALPROC WriteLibStdcFileName(void)
|
|
{
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile("libstdc++.a");
|
|
WriteQuoteToDestFile();
|
|
}
|
|
|
|
LOCALPROC WriteLibStdcFilePath(void)
|
|
{
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile("/usr/lib/libstdc++.a");
|
|
WriteQuoteToDestFile();
|
|
}
|
|
|
|
LOCALPROC WriteLibStdcAPBXCDtype(void)
|
|
{
|
|
WriteCStrToDestFile("archive.ar");
|
|
}
|
|
|
|
LOCALPROC DoLibStdcAPBXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteLibStdcAPBXCDtype);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteLibStdcAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteLibStdcFileName);
|
|
WriteAPBXCDDObjAPropPath(WriteLibStdcFilePath);
|
|
WriteAPBXCDDObjAPropRefType0();
|
|
WriteAPBXCDDObjAPropSourceTreeAbsolute();
|
|
}
|
|
|
|
LOCALPROC DoLibStdcAPBXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBospcLibStdcRf, 0,
|
|
WriteLibStdcName,
|
|
DoLibStdcAPBXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC WriteDummyLangFileNameInResources(void)
|
|
{
|
|
WriteDummyLangFileName();
|
|
WriteCStrToDestFile(" in Resources");
|
|
}
|
|
|
|
LOCALPROC DoDummyLangAPBXCDaddFileBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropFileRef(APBospcLangDummyRf, 0,
|
|
WriteDummyLangFileName);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaBuildFile();
|
|
}
|
|
WriteAPBXCDDObjAPropSettingsNull();
|
|
}
|
|
|
|
LOCALPROC DoDummyLangAPBXCDaddFile(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBospcLangDummyBld, 0,
|
|
WriteDummyLangFileNameInResources,
|
|
DoDummyLangAPBXCDaddFileBody);
|
|
}
|
|
|
|
LOCALPROC WriteDummyLangFilePath(void)
|
|
{
|
|
WriteFileInDirToDestFile0(WriteLProjFolderPath,
|
|
WriteDummyLangFileName);
|
|
}
|
|
|
|
LOCALPROC WriteLangDummyAPBXCDtype(void)
|
|
{
|
|
WriteCStrToDestFile("text");
|
|
}
|
|
|
|
LOCALPROC DoLangDummyAPBXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteLangDummyAPBXCDtype);
|
|
WriteAPBXCDDObjAPropFileEncoding30();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteLangDummyAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteLProjName);
|
|
WriteAPBXCDDObjAPropPath(WriteDummyLangFilePath);
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeRoot();
|
|
}
|
|
|
|
LOCALPROC DoLangDummyAPBXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBospcLangRf, 0,
|
|
WriteLProjName,
|
|
DoLangDummyAPBXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC DoLangDummyAPBXCDaddToSources(void)
|
|
{
|
|
WriteAPBXCDobjlistelmp(APBospcLangDummyBld, 0,
|
|
WriteDummyLangFileNameInResources);
|
|
}
|
|
|
|
LOCALPROC DoLangDummyAPBXCDaddVariant(void)
|
|
{
|
|
WriteAPBXCDBeginObject(APBospcLangDummyRf,
|
|
0, WriteDummyLangFileName);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXVariantGroup");
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
WriteAPBXCDobjlistelmp(APBospcLangRf, 0, WriteLProjName);
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXVariantGroup");
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteDummyLangFileName);
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
}
|
|
|
|
static void DoBeginSectionAPBXCD(char *Name)
|
|
{
|
|
if (ide_vers >= 2100) {
|
|
--DestFileIndent; --DestFileIndent;
|
|
WriteBlankLineToDestFile();
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("/* Begin ");
|
|
WriteCStrToDestFile(Name);
|
|
WriteCStrToDestFile(" section */");
|
|
WriteEndDestFileLn();
|
|
++DestFileIndent; ++DestFileIndent;
|
|
}
|
|
}
|
|
|
|
static void DoEndSectionAPBXCD(char *Name)
|
|
{
|
|
if (ide_vers >= 2100) {
|
|
--DestFileIndent; --DestFileIndent;
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("/* End ");
|
|
WriteCStrToDestFile(Name);
|
|
WriteCStrToDestFile(" section */");
|
|
WriteEndDestFileLn();
|
|
++DestFileIndent; ++DestFileIndent;
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteXCDconfigname(void)
|
|
{
|
|
char *s;
|
|
|
|
switch (gbo_dbg) {
|
|
case gbk_dbg_on:
|
|
if (ide_vers < 2100) {
|
|
s = "Development";
|
|
} else {
|
|
s = "Debug";
|
|
}
|
|
break;
|
|
case gbk_dbg_test:
|
|
s = "Test";
|
|
break;
|
|
case gbk_dbg_off:
|
|
if (ide_vers < 2100) {
|
|
s = "Deployment";
|
|
} else {
|
|
s = "Release";
|
|
}
|
|
break;
|
|
default:
|
|
s = "(unknown Debug Level)";
|
|
break;
|
|
}
|
|
|
|
WriteCStrToDestFile(s);
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropIsaApplicationRef(void)
|
|
{
|
|
if (ide_vers < 1000) {
|
|
WriteAPBXCDDObjAPropIsa("PBXApplicationReference");
|
|
} else {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteProductAPBXCDtype(void)
|
|
{
|
|
if (HaveMacBundleApp) {
|
|
WriteCStrToDestFile("wrapper.application");
|
|
} else {
|
|
WriteCStrToDestFile("\"compiled.mach-o.executable\"");
|
|
}
|
|
}
|
|
|
|
LOCALPROC DoProductAPBXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaApplicationRef();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WriteProductAPBXCDtype);
|
|
WriteAPBXCDDObjAPropIncludeII0();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaApplicationRef();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WriteProductAPBXCDtype);
|
|
WriteAPBXCDDObjAPropPath(WriteAppNameStr);
|
|
WriteAPBXCDDObjAPropRefType3();
|
|
WriteAPBXCDDObjAPropSourceTree("BUILT_PRODUCTS_DIR");
|
|
}
|
|
|
|
LOCALPROC DoProductAPBXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBospcProductRef, 0,
|
|
WriteAppNameStr,
|
|
DoProductAPBXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC WritePlistAPBXCDtype(void)
|
|
{
|
|
if (ide_vers >= 3100) {
|
|
WriteCStrToDestFile("text.plist.xml");
|
|
} else {
|
|
WriteCStrToDestFile("text.xml");
|
|
}
|
|
}
|
|
|
|
LOCALPROC DoPlistAPBXCDaddFileRefBody(void)
|
|
{
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropExpectedFileType(WritePlistAPBXCDtype);
|
|
WriteAPBXCDDObjAPropFileEncoding4();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaFileReference();
|
|
}
|
|
WriteAPBXCDDObjAPropLastKnownFType(WritePlistAPBXCDtype);
|
|
WriteAPBXCDDObjAPropName(WriteInfoPlistFileName);
|
|
WriteAPBXCDDObjAPropPath(WriteInfoPlistFilePath);
|
|
WriteAPBXCDDObjAPropRefType2();
|
|
WriteAPBXCDDObjAPropSourceTreeRoot();
|
|
}
|
|
|
|
LOCALPROC DoPlistAPBXCDaddFileRef(void)
|
|
{
|
|
WriteAPBXCDObjectAp(APBospcPlistRf, 0,
|
|
WriteInfoPlistFileName,
|
|
DoPlistAPBXCDaddFileRefBody);
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDBuildSettings(void)
|
|
{
|
|
if (ide_vers >= 3100) {
|
|
WriteDestFileLn("ALWAYS_SEARCH_USER_PATHS = NO;");
|
|
}
|
|
|
|
if (ide_vers >= 2100) {
|
|
/* if (CrossCompile) */ {
|
|
if (gbk_cpufam_x86 == gbo_cpufam) {
|
|
WriteDestFileLn("ARCHS = i386;");
|
|
/*
|
|
may be preferred in later versions:
|
|
WriteDestFileLn(
|
|
"ARCHS = \"$(ARCHS_STANDARD_32_BIT)\";");
|
|
*/
|
|
} else if (gbk_cpufam_x64 == gbo_cpufam) {
|
|
WriteDestFileLn("ARCHS = x86_64;");
|
|
} else {
|
|
WriteDestFileLn("ARCHS = ppc;");
|
|
}
|
|
}
|
|
}
|
|
if (ide_vers >= 2100) { /*^*/
|
|
/*
|
|
seems to work in Xcode 2.1, but doesn't
|
|
really appear in settings user interface
|
|
until Xcode 2.2
|
|
*/
|
|
WriteDestFileLn(
|
|
"CONFIGURATION_BUILD_DIR = \"$(PROJECT_DIR)\";");
|
|
}
|
|
if (ide_vers >= 2200) { /*^*/
|
|
WriteDestFileLn("COPY_PHASE_STRIP = NO;");
|
|
} else {
|
|
if (gbk_dbg_on != gbo_dbg) {
|
|
WriteDestFileLn("COPY_PHASE_STRIP = YES;");
|
|
} else {
|
|
WriteDestFileLn("COPY_PHASE_STRIP = NO;");
|
|
}
|
|
}
|
|
if (ide_vers >= 1500) {
|
|
if (gbk_dbg_on != gbo_dbg) {
|
|
WriteDestFileLn("DEPLOYMENT_POSTPROCESSING = YES;");
|
|
}
|
|
}
|
|
if (ide_vers < 1500) {
|
|
if (gbk_dbg_on != gbo_dbg) {
|
|
WriteDestFileLn("DEBUGGING_SYMBOLS = NO;");
|
|
}
|
|
}
|
|
if (ide_vers >= 1500) {
|
|
WriteDestFileLn("GCC_CW_ASM_SYNTAX = NO;");
|
|
}
|
|
if (ide_vers >= 1000) {
|
|
WriteDestFileLn("GCC_DYNAMIC_NO_PIC = YES;");
|
|
}
|
|
if (ide_vers < 1500) {
|
|
WriteAPBQuotedField("FRAMEWORK_SEARCH_PATHS", "");
|
|
}
|
|
if ((ide_vers >= 1000) && (ide_vers < 4000)) {
|
|
WriteDestFileLn("GCC_ENABLE_FIX_AND_CONTINUE = NO;");
|
|
}
|
|
if (ide_vers >= 1000) {
|
|
if (gbk_dbg_on != gbo_dbg) {
|
|
WriteDestFileLn("GCC_GENERATE_DEBUGGING_SYMBOLS = NO;");
|
|
}
|
|
}
|
|
if ((ide_vers >= 1500) && (ide_vers < 4000)) {
|
|
WriteDestFileLn("GCC_MODEL_TUNING = \"\";");
|
|
}
|
|
if (ide_vers >= 1000) {
|
|
if (gbk_dbg_on == gbo_dbg) {
|
|
WriteDestFileLn("GCC_OPTIMIZATION_LEVEL = 0;");
|
|
} else {
|
|
WriteDestFileLn("GCC_OPTIMIZATION_LEVEL = s;");
|
|
}
|
|
}
|
|
if (ide_vers >= 2100) {
|
|
WriteDestFileLn("GCC_PRECOMPILE_PREFIX_HEADER = NO;");
|
|
WriteDestFileLn("GCC_PREFIX_HEADER = \"\";");
|
|
WriteDestFileLn("GCC_SYMBOLS_PRIVATE_EXTERN = NO;");
|
|
}
|
|
if (ide_vers >= 3100) {
|
|
if (ide_vers < 3200) {
|
|
WriteDestFileLn("GCC_VERSION = 4.0;");
|
|
}
|
|
}
|
|
if (ide_vers >= 1000) {
|
|
WriteDestFileLn("GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;");
|
|
}
|
|
|
|
if (HaveMacBundleApp) {
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("INFOPLIST_FILE = ");
|
|
WriteInfoPlistFilePath();
|
|
WriteCStrToDestFile(";");
|
|
WriteEndDestFileLn();
|
|
}
|
|
if (ide_vers >= 1000) {
|
|
WriteDestFileLn("INSTALL_PATH = \"$(HOME)/Applications\";");
|
|
}
|
|
if (ide_vers < 1500) {
|
|
WriteAPBQuotedField("LIBRARY_SEARCH_PATHS", "");
|
|
}
|
|
if (ide_vers >= 2100) {
|
|
if (gbk_cpufam_ppc == gbo_cpufam) {
|
|
WriteDestFileLn("MACOSX_DEPLOYMENT_TARGET = 10.1;");
|
|
} else {
|
|
if (ide_vers >= 9000) {
|
|
WriteDestFileLn("MACOSX_DEPLOYMENT_TARGET = 10.6;");
|
|
} else {
|
|
WriteDestFileLn("MACOSX_DEPLOYMENT_TARGET = 10.4;");
|
|
}
|
|
}
|
|
}
|
|
if (ide_vers < 1500) {
|
|
if (gbk_dbg_on == gbo_dbg) {
|
|
WriteAPBQuotedField("OPTIMIZATION_CFLAGS", "-O0");
|
|
}
|
|
}
|
|
if (ide_vers < 1500) {
|
|
WriteAPBQuotedField("OTHER_LDFLAGS", "");
|
|
WriteAPBQuotedField("OTHER_REZFLAGS", "");
|
|
} else {
|
|
if (! HaveMacBundleApp) {
|
|
WriteAPBXCDBgnObjList("OTHER_LDFLAGS");
|
|
WriteDestFileLn("\"-L/usr/X11R6/lib\",");
|
|
#if 0
|
|
WriteDestFileLn("\"-lXext\",");
|
|
#endif
|
|
WriteDestFileLn("\"-lX11\",");
|
|
WriteAPBXCDEndObjList();
|
|
}
|
|
}
|
|
if ((ide_vers >= 1500) && (ide_vers < 4000)) {
|
|
WriteDestFileLn("PREBINDING = NO;");
|
|
}
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("PRODUCT_NAME = ");
|
|
WriteStrAppAbbrev();
|
|
WriteCStrToDestFile(";");
|
|
WriteEndDestFileLn();
|
|
if (ide_vers >= 2200) {
|
|
if (ide_vers >= 4300) {
|
|
WriteDestFileLn("SDKROOT = macosx;");
|
|
} else if (ide_vers >= 3200) {
|
|
WriteDestFileLn("SDKROOT = macosx10.6;");
|
|
} else if (ide_vers >= 3100) {
|
|
WriteDestFileLn("SDKROOT = macosx10.5;");
|
|
} else {
|
|
WriteDestFileLn(
|
|
"SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk;");
|
|
}
|
|
}
|
|
if (ide_vers < 1500) {
|
|
WriteAPBQuotedField("SECTORDER_FLAGS", "");
|
|
}
|
|
if (ide_vers >= 2200) {
|
|
if (gbk_dbg_on != gbo_dbg) {
|
|
WriteDestFileLn("SEPARATE_STRIP = YES;");
|
|
WriteDestFileLn("STRIPFLAGS = \"-u -r\";");
|
|
WriteDestFileLn("STRIP_INSTALLED_PRODUCT = YES;");
|
|
}
|
|
}
|
|
if ((ide_vers >= 1500) && (ide_vers < 2100)) {
|
|
WriteDestFileLn("SYMROOT = \"$(PROJECT_DIR)\";");
|
|
}
|
|
WriteDestFileLn("USER_HEADER_SEARCH_PATHS = \"$(SRCROOT)/"
|
|
cfg_d_name
|
|
"\";");
|
|
if (ide_vers >= 2100) {
|
|
WriteAPBXCDBgnObjList("WARNING_CFLAGS");
|
|
WriteDestFileLn("\"-Wall\",");
|
|
WriteDestFileLn("\"-Wundef\",");
|
|
WriteDestFileLn("\"-Wstrict-prototypes\",");
|
|
WriteDestFileLn("\"-Wno-uninitialized\",");
|
|
WriteAPBXCDEndObjList();
|
|
} else {
|
|
WriteAPBQuotedField("WARNING_CFLAGS",
|
|
"-Wall -Wstrict-prototypes -Wno-uninitialized"
|
|
" -Wno-four-char-constants -Wno-unknown-pragmas");
|
|
}
|
|
if ((HaveMacBundleApp) && (ide_vers < 3100)) {
|
|
WriteDestFileLn("WRAPPER_EXTENSION = app;");
|
|
}
|
|
if ((ide_vers >= 1000) && (ide_vers < 3100)) {
|
|
WriteDestFileLn("ZERO_LINK = NO;");
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBplist(void)
|
|
{
|
|
int SaveDestFileIndent = DestFileIndent;
|
|
|
|
DestFileIndent = 0;
|
|
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("<!DOCTYPE plist PUBLIC ");
|
|
WriteBackSlashToDestFile();
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile("-//Apple Computer//DTD PLIST 1.0//EN");
|
|
WriteBackSlashToDestFile();
|
|
WriteQuoteToDestFile();
|
|
WriteSpaceToDestFile();
|
|
WriteBackSlashToDestFile();
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile(
|
|
"http://www.apple.com/DTDs/PropertyList-1.0.dtd");
|
|
WriteBackSlashToDestFile();
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile(">");
|
|
WriteEndDestFileLn();
|
|
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("<plist version=");
|
|
WriteBackSlashToDestFile();
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile("1.0");
|
|
WriteBackSlashToDestFile();
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile(">");
|
|
WriteEndDestFileLn();
|
|
|
|
CurPListFormat = kPListRaw;
|
|
|
|
WriteMyInfoPListContents();
|
|
|
|
WriteDestFileLn("</plist>");
|
|
WriteBgnDestFileLn();
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile(";");
|
|
WriteEndDestFileLn();
|
|
|
|
DestFileIndent = SaveDestFileIndent;
|
|
}
|
|
|
|
LOCALPROC WriteStrFrameworks(void)
|
|
{
|
|
WriteCStrToDestFile("Frameworks");
|
|
}
|
|
|
|
LOCALPROC WriteStrSources(void)
|
|
{
|
|
WriteCStrToDestFile("Sources");
|
|
}
|
|
|
|
LOCALPROC WriteStrResources(void)
|
|
{
|
|
WriteCStrToDestFile("Resources");
|
|
}
|
|
|
|
LOCALPROC WriteStrRez(void)
|
|
{
|
|
WriteCStrToDestFile("Rez");
|
|
}
|
|
|
|
LOCALPROC WriteStrFrameworksLibraries(void)
|
|
{
|
|
WriteCStrToDestFile("External Frameworks and Libraries");
|
|
}
|
|
|
|
LOCALPROC WriteStrQuoteFrameworksLibraries(void)
|
|
{
|
|
WriteQuoteToDestFile();
|
|
WriteStrFrameworksLibraries();
|
|
WriteQuoteToDestFile();
|
|
}
|
|
|
|
LOCALPROC WriteStrProducts(void)
|
|
{
|
|
WriteCStrToDestFile("Products");
|
|
}
|
|
|
|
LOCALPROC WriteStrHeaders(void)
|
|
{
|
|
WriteCStrToDestFile("Headers");
|
|
}
|
|
|
|
LOCALPROC WriteStrIncludes(void)
|
|
{
|
|
WriteCStrToDestFile("Includes");
|
|
}
|
|
|
|
LOCALPROC WriteStrProjectObject(void)
|
|
{
|
|
WriteCStrToDestFile("Project object");
|
|
}
|
|
|
|
LOCALPROC WriteStrEmptyQuote(void)
|
|
{
|
|
WriteQuoteToDestFile();
|
|
WriteQuoteToDestFile();
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropPathNull(void)
|
|
{
|
|
if (ide_vers < 2100) {
|
|
WriteAPBXCDDObjAPropPath(WriteStrEmptyQuote);
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDMainGroupName(void)
|
|
{
|
|
if (ide_vers < 1000) {
|
|
WriteQuoteToDestFile();
|
|
WriteAppVariationStr();
|
|
WriteQuoteToDestFile();
|
|
} else {
|
|
WriteStrAppAbbrev();
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteAPBXCDDObjAPropIsaAppTarg(void)
|
|
{
|
|
if (ide_vers < 1000) {
|
|
WriteAPBXCDDObjAPropIsa("PBXApplicationTarget");
|
|
} else {
|
|
WriteAPBXCDDObjAPropIsa("PBXNativeTarget");
|
|
}
|
|
}
|
|
|
|
LOCALPROC WriteStrConfListPBXProject(void)
|
|
{
|
|
WriteCStrToDestFile("Build configuration list for PBXProject \"");
|
|
WriteStrAppAbbrev();
|
|
WriteCStrToDestFile("\"");
|
|
}
|
|
|
|
LOCALPROC WriteStrConfListPBXNativeTarget(void)
|
|
{
|
|
WriteCStrToDestFile(
|
|
"Build configuration list for PBXNativeTarget \"");
|
|
WriteStrAppAbbrev();
|
|
WriteCStrToDestFile("\"");
|
|
}
|
|
|
|
#define HaveFrameworks HaveMacBundleApp
|
|
|
|
LOCALPROC WriteXCDdummyfile(void)
|
|
{
|
|
WriteDestFileLn("dummy");
|
|
}
|
|
|
|
LOCALPROC WriteXCDProjectFile(void)
|
|
{
|
|
WriteDestFileLn("// !$*UTF8*$!");
|
|
WriteDestFileLn("{");
|
|
++DestFileIndent;
|
|
WriteDestFileLn("archiveVersion = 1;");
|
|
WriteDestFileLn("classes = {");
|
|
WriteDestFileLn("};");
|
|
if (ide_vers >= 3200) {
|
|
WriteDestFileLn("objectVersion = 46;");
|
|
} else if (ide_vers >= 3100) {
|
|
WriteDestFileLn("objectVersion = 45;");
|
|
} else if (ide_vers >= 2100) {
|
|
WriteDestFileLn("objectVersion = 42;");
|
|
} else if (ide_vers >= 1000) {
|
|
WriteDestFileLn("objectVersion = 39;");
|
|
} else {
|
|
WriteDestFileLn("objectVersion = 38;");
|
|
}
|
|
WriteDestFileLn("objects = {");
|
|
++DestFileIndent;
|
|
|
|
DoBeginSectionAPBXCD("PBXBuildFile");
|
|
DoAllSrcFilesWithSetup(DoSrcFileAPBXCDaddFile);
|
|
if (HaveMacBundleApp) {
|
|
DoAllDocTypesWithSetup(DoDocTypeAPBXCDaddFile);
|
|
}
|
|
|
|
if (HaveFrameworks) {
|
|
DoAllFrameWorksWithSetup(DoFrameWorkAPBXCDaddFile);
|
|
}
|
|
if (HaveAPBXCD_StdcLib) {
|
|
DoLibStdcAPBXCDaddFile();
|
|
}
|
|
|
|
if (HaveMacRrscs) {
|
|
DoRsrcAPBXCDaddFile();
|
|
}
|
|
|
|
if (HaveMacBundleApp) {
|
|
if (HaveAPBXCD_LangDummy) {
|
|
DoDummyLangAPBXCDaddFile();
|
|
}
|
|
}
|
|
DoEndSectionAPBXCD("PBXBuildFile");
|
|
|
|
if (ide_vers < 2300) {
|
|
DoBeginSectionAPBXCD("PBXBuildStyle");
|
|
WriteAPBXCDBeginObject(APBospcBuildStyle,
|
|
0, WriteXCDconfigname);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXBuildStyle");
|
|
}
|
|
|
|
if (ide_vers < 1500) {
|
|
WriteAPBXCDBgnObjList("buildRules");
|
|
WriteAPBXCDEndObjList();
|
|
}
|
|
WriteDestFileLn("buildSettings = {");
|
|
WriteDestFileLn("};");
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXBuildStyle");
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteXCDconfigname);
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("PBXBuildStyle");
|
|
}
|
|
|
|
DoBeginSectionAPBXCD("PBXFileReference");
|
|
DoAllSrcFilesWithSetup(DoSrcFileAPBXCDaddFileRef);
|
|
|
|
if (HaveAPBXCD_Headers) {
|
|
DoAllSrcFilesWithSetup(DoHeaderFileXCDaddFileRef);
|
|
DoAllExtraHeaders2WithSetup(
|
|
DoExtraHeaderFileXCDaddFileRef);
|
|
}
|
|
|
|
if (HaveMacBundleApp) {
|
|
DoAllDocTypesWithSetup(DoDocTypeAPBXCDaddFileRef);
|
|
}
|
|
|
|
if (HaveFrameworks) {
|
|
DoAllFrameWorksWithSetup(DoFrameWorkAPBXCDaddFileRef);
|
|
}
|
|
if (HaveAPBXCD_StdcLib) {
|
|
DoLibStdcAPBXCDaddFileRef();
|
|
}
|
|
|
|
DoProductAPBXCDaddFileRef();
|
|
|
|
if (HaveMacBundleApp) {
|
|
if (HaveAPBXCD_PlistFile) {
|
|
DoPlistAPBXCDaddFileRef();
|
|
}
|
|
}
|
|
if (HaveMacRrscs) {
|
|
DoRsrcAPBXCDaddFileRef();
|
|
}
|
|
if (HaveMacBundleApp) {
|
|
if (HaveAPBXCD_LangDummy) {
|
|
DoLangDummyAPBXCDaddFileRef();
|
|
}
|
|
}
|
|
DoEndSectionAPBXCD("PBXFileReference");
|
|
|
|
DoBeginSectionAPBXCD("PBXFrameworksBuildPhase");
|
|
WriteAPBXCDBeginObject(APBospcPhaseLibs, 0, WriteStrFrameworks);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXFrameworksBuildPhase");
|
|
}
|
|
|
|
WriteDestFileLn("buildActionMask = 2147483647;");
|
|
WriteAPBXCDBgnObjList("files");
|
|
if (HaveFrameworks) {
|
|
DoAllFrameWorksWithSetup(
|
|
DoFrameworkAPBXCDaddToBuild);
|
|
}
|
|
if (HaveAPBXCD_StdcLib) {
|
|
WriteAPBXCDobjlistelmp(APBospcLibStdcBld,
|
|
0, WriteLibStdcName);
|
|
}
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXFrameworksBuildPhase");
|
|
}
|
|
WriteDestFileLn("runOnlyForDeploymentPostprocessing = 0;");
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("PBXFrameworksBuildPhase");
|
|
|
|
DoBeginSectionAPBXCD("PBXGroup");
|
|
WriteAPBXCDBeginObject(APBospcSources, 0, WriteStrSources);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
DoAllSrcFilesWithSetup(DoSrcFileAPBXCDaddToGroup);
|
|
if (HaveMacRrscs) {
|
|
if (ide_vers >= 2100) {
|
|
WriteAPBXCDobjlistelmp(APBospcMainRsrcRf, 0,
|
|
WriteMainRsrcName);
|
|
}
|
|
}
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteStrSources);
|
|
WriteAPBXCDDObjAPropPathNull();
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
|
|
if (HaveMacBundleApp) {
|
|
WriteAPBXCDBeginObject(APBospcResources,
|
|
0, WriteStrResources);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
if (HaveMacRrscs) {
|
|
if (ide_vers < 2100) {
|
|
WriteAPBXCDobjlistelmp(APBospcMainRsrcRf,
|
|
0, WriteMainRsrcName);
|
|
}
|
|
}
|
|
DoAllDocTypesWithSetup(
|
|
DoDocTypeAPBXCDaddToGroup);
|
|
if (HaveAPBXCD_PlistFile) {
|
|
WriteAPBXCDobjlistelmp(APBospcPlistRf,
|
|
0, WriteInfoPlistFileName);
|
|
}
|
|
if (HaveAPBXCD_LangDummy) {
|
|
#if 0
|
|
WriteAPBXCDobjlistelmp(APBospcLangRf,
|
|
0, WriteLProjFolderName);
|
|
#endif
|
|
WriteAPBXCDobjlistelmp(APBospcLangDummyRf,
|
|
0, WriteDummyLangFileName);
|
|
}
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteStrResources);
|
|
WriteAPBXCDDObjAPropPathNull();
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
}
|
|
|
|
if (HaveFrameworks) {
|
|
WriteAPBXCDBeginObject(APBospcLibraries,
|
|
0, WriteStrFrameworksLibraries);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
DoAllFrameWorksWithSetup(
|
|
DoFrameworkAPBXCDaddToLibraries);
|
|
if (HaveAPBXCD_StdcLib) {
|
|
WriteAPBXCDobjlistelmp(APBospcLibStdcRf,
|
|
0, WriteLibStdcName);
|
|
}
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
WriteAPBXCDDObjAPropName(
|
|
WriteStrQuoteFrameworksLibraries);
|
|
WriteAPBXCDDObjAPropPathNull();
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
}
|
|
|
|
WriteAPBXCDBeginObject(APBospcProducts, 0, WriteStrProducts);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
WriteAPBXCDobjlistelmp(APBospcProductRef,
|
|
0, WriteAppNameStr);
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteStrProducts);
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
|
|
WriteAPBXCDBeginObject(APBospcMainGroup, 0, WriteStrAppAbbrev);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
WriteAPBXCDobjlistelmp(APBospcSources,
|
|
0, WriteStrSources);
|
|
if (HaveAPBXCD_Headers) {
|
|
WriteAPBXCDobjlistelmp(APBospcSrcHeaders,
|
|
0, WriteStrHeaders);
|
|
WriteAPBXCDobjlistelmp(APBospcIncludes,
|
|
0, WriteStrIncludes);
|
|
}
|
|
if (HaveMacBundleApp) {
|
|
WriteAPBXCDobjlistelmp(APBospcResources,
|
|
0, WriteStrResources);
|
|
}
|
|
if (HaveFrameworks) {
|
|
WriteAPBXCDobjlistelmp(APBospcLibraries,
|
|
0, WriteStrFrameworksLibraries);
|
|
}
|
|
WriteAPBXCDobjlistelmp(APBospcProducts,
|
|
0, WriteStrProducts);
|
|
WriteAPBXCDEndObjList();
|
|
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteAPBXCDMainGroupName);
|
|
WriteAPBXCDDObjAPropPathNull();
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
if (HaveAPBXCD_Headers) {
|
|
WriteAPBXCDBeginObject(APBospcSrcHeaders,
|
|
0, WriteStrHeaders);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
DoAllSrcFilesWithSetup(
|
|
DoHeaderFileXCDaddToGroup);
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteStrHeaders);
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
WriteAPBXCDBeginObject(APBospcIncludes,
|
|
0, WriteStrIncludes);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
DoAllExtraHeaders2WithSetup(
|
|
DoExtraHeaderFileXCDaddToGroup);
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteStrIncludes);
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
#if 0
|
|
WriteAPBXCDBeginObject(APBospcLangRf,
|
|
0, WriteLProjFolderName);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("children");
|
|
WriteAPBXCDobjlistelmp(APBospcLangDummyRf,
|
|
0, WriteDummyLangFileName);
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaGroup();
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteLProjFolderName);
|
|
WriteAPBXCDDObjAPropPath(WriteLProjFolderPath);
|
|
WriteAPBXCDDObjAPropRefType4();
|
|
WriteAPBXCDDObjAPropSourceTreeGroup();
|
|
WriteAPBXCDEndObject();
|
|
#endif
|
|
}
|
|
DoEndSectionAPBXCD("PBXGroup");
|
|
|
|
DoBeginSectionAPBXCD("PBXNativeTarget");
|
|
WriteAPBXCDBeginObject(APBospcTarget, 0, WriteStrAppAbbrev);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaAppTarg();
|
|
}
|
|
|
|
if (ide_vers >= 2100) {
|
|
WriteAPBXCDDObjAProp_SO("buildConfigurationList",
|
|
APBospcLstNatCnfg, 0,
|
|
WriteStrConfListPBXNativeTarget);
|
|
}
|
|
WriteAPBXCDBgnObjList("buildPhases");
|
|
if (ide_vers < 1500) {
|
|
WriteAPBXCDobjlistelmp(APBospcHeaders,
|
|
0, WriteStrHeaders);
|
|
}
|
|
if (HaveMacBundleApp) {
|
|
WriteAPBXCDobjlistelmp(APBospcBunRsrcs,
|
|
0, WriteStrResources);
|
|
}
|
|
WriteAPBXCDobjlistelmp(APBospcPhaseSrcs,
|
|
0, WriteStrSources);
|
|
WriteAPBXCDobjlistelmp(APBospcPhaseLibs,
|
|
0, WriteStrFrameworks);
|
|
if (HaveMacRrscs) {
|
|
WriteAPBXCDobjlistelmp(APBospcPhaseRsrc,
|
|
0, WriteStrRez);
|
|
}
|
|
WriteAPBXCDEndObjList();
|
|
if (ide_vers >= 1000) {
|
|
WriteAPBXCDBgnObjList("buildRules");
|
|
WriteAPBXCDEndObjList();
|
|
}
|
|
if (ide_vers < 2300) {
|
|
WriteDestFileLn("buildSettings = {");
|
|
++DestFileIndent;
|
|
if (ide_vers < 2100) {
|
|
WriteAPBXCDBuildSettings();
|
|
}
|
|
--DestFileIndent;
|
|
WriteDestFileLn("};");
|
|
}
|
|
WriteAPBXCDBgnObjList("dependencies");
|
|
WriteAPBXCDEndObjList();
|
|
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsaAppTarg();
|
|
}
|
|
|
|
WriteAPBXCDDObjAPropName(WriteStrAppAbbrev);
|
|
|
|
if (ide_vers >= 1000) {
|
|
WriteDestFileLn(
|
|
"productInstallPath = \"$(HOME)/Applications\";");
|
|
}
|
|
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("productName = ");
|
|
if (ide_vers < 1000) {
|
|
WriteQuoteToDestFile();
|
|
}
|
|
WriteStrAppAbbrev();
|
|
if (ide_vers < 1000) {
|
|
WriteQuoteToDestFile();
|
|
}
|
|
WriteCStrToDestFile(";");
|
|
WriteEndDestFileLn();
|
|
|
|
WriteAPBXCDDObjAProp_SO("productReference",
|
|
APBospcProductRef, 0,
|
|
WriteAppNameStr);
|
|
|
|
if (ide_vers >= 1000) {
|
|
if (HaveMacBundleApp) {
|
|
WriteDestFileLn(
|
|
"productType = "
|
|
"\"com.apple.product-type.application\";");
|
|
} else {
|
|
WriteDestFileLn(
|
|
"productType = "
|
|
"\"com.apple.product-type.tool\";");
|
|
}
|
|
}
|
|
if ((! HaveAPBXCD_PlistFile) && HaveMacBundleApp) {
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("productSettingsXML = ");
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile("<?xml version=");
|
|
WriteBackSlashToDestFile();
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile("1.0");
|
|
WriteBackSlashToDestFile();
|
|
WriteQuoteToDestFile();
|
|
WriteCStrToDestFile(" encoding=\\\"UTF-8\\\"?>");
|
|
WriteEndDestFileLn();
|
|
|
|
WriteAPBplist();
|
|
}
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("PBXNativeTarget");
|
|
|
|
DoBeginSectionAPBXCD("PBXProject");
|
|
WriteAPBXCDBeginObject(APBospcRoot, 0, WriteStrProjectObject);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXProject");
|
|
}
|
|
if (ide_vers >= 4300) {
|
|
WriteDestFileLn("attributes = {");
|
|
++DestFileIndent;
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("LastUpgradeCheck = ");
|
|
WriteCharToDestFile('0'
|
|
+ ((ide_vers / 10000) % 10));
|
|
WriteCharToDestFile('0' + ((ide_vers / 1000) % 10));
|
|
WriteCharToDestFile('0' + ((ide_vers / 100) % 10));
|
|
WriteCStrToDestFile("0;");
|
|
WriteEndDestFileLn();
|
|
--DestFileIndent;
|
|
WriteDestFileLn("};");
|
|
}
|
|
if (ide_vers >= 2100) {
|
|
WriteAPBXCDDObjAProp_SO("buildConfigurationList",
|
|
APBospcLstPrjCnfg, 0,
|
|
WriteStrConfListPBXProject);
|
|
}
|
|
if (ide_vers < 2300) {
|
|
if (ide_vers >= 1000) {
|
|
WriteDestFileLn("buildSettings = {");
|
|
WriteDestFileLn("};");
|
|
}
|
|
WriteAPBXCDBgnObjList("buildStyles");
|
|
WriteAPBXCDobjlistelmp(APBospcBuildStyle,
|
|
0, WriteXCDconfigname);
|
|
WriteAPBXCDEndObjList();
|
|
}
|
|
if (ide_vers >= 3200) {
|
|
WriteDestFileLn(
|
|
"compatibilityVersion = \"Xcode 3.2\";");
|
|
} else if (ide_vers >= 3100) {
|
|
WriteDestFileLn(
|
|
"compatibilityVersion = \"Xcode 3.1\";");
|
|
}
|
|
WriteDestFileLn("hasScannedForEncodings = 1;");
|
|
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXProject");
|
|
}
|
|
|
|
WriteAPBXCDDObjAProp_SO("mainGroup",
|
|
APBospcMainGroup, 0,
|
|
WriteStrAppAbbrev);
|
|
|
|
if (ide_vers >= 4000) {
|
|
WriteAPBXCDDObjAProp_SO("productRefGroup",
|
|
APBospcProducts, 0,
|
|
WriteStrProducts);
|
|
}
|
|
|
|
WriteDestFileLn("projectDirPath = \"\";");
|
|
|
|
if (ide_vers >= 3100) {
|
|
WriteDestFileLn("projectRoot = \"\";");
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("targets");
|
|
WriteAPBXCDobjlistelmp(APBospcTarget,
|
|
0, WriteStrAppAbbrev);
|
|
WriteAPBXCDEndObjList();
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("PBXProject");
|
|
|
|
if (HaveMacBundleApp) {
|
|
DoBeginSectionAPBXCD("PBXResourcesBuildPhase");
|
|
WriteAPBXCDBeginObject(APBospcBunRsrcs,
|
|
0, WriteStrResources);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXResourcesBuildPhase");
|
|
}
|
|
|
|
WriteDestFileLn("buildActionMask = 2147483647;");
|
|
WriteAPBXCDBgnObjList("files");
|
|
DoAllDocTypesWithSetup(
|
|
DoDocTypeAPBXCDaddToSources);
|
|
if (HaveAPBXCD_LangDummy) {
|
|
DoLangDummyAPBXCDaddToSources();
|
|
}
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXResourcesBuildPhase");
|
|
}
|
|
WriteDestFileLn(
|
|
"runOnlyForDeploymentPostprocessing = 0;");
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("PBXResourcesBuildPhase");
|
|
}
|
|
if (HaveMacRrscs) {
|
|
DoBeginSectionAPBXCD("PBXRezBuildPhase");
|
|
WriteAPBXCDBeginObject(APBospcPhaseRsrc, 0, WriteStrRez);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXRezBuildPhase");
|
|
}
|
|
|
|
WriteDestFileLn("buildActionMask = 2147483647;");
|
|
WriteAPBXCDBgnObjList("files");
|
|
WriteAPBXCDobjlistelmp(APBospcMnRsrcBld, 0,
|
|
WriteMainAPBXCDRsrcNameinRez);
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXRezBuildPhase");
|
|
}
|
|
WriteDestFileLn(
|
|
"runOnlyForDeploymentPostprocessing = 0;");
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("PBXRezBuildPhase");
|
|
}
|
|
|
|
if (ide_vers < 1500) {
|
|
WriteAPBXCDBeginObject(APBospcHeaders, 0, WriteStrHeaders);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXHeadersBuildPhase");
|
|
}
|
|
|
|
WriteDestFileLn("buildActionMask = 2147483647;");
|
|
WriteAPBXCDBgnObjList("files");
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXHeadersBuildPhase");
|
|
}
|
|
WriteDestFileLn("runOnlyForDeploymentPostprocessing = 0;");
|
|
WriteAPBXCDEndObject();
|
|
}
|
|
|
|
DoBeginSectionAPBXCD("PBXSourcesBuildPhase");
|
|
WriteAPBXCDBeginObject(APBospcPhaseSrcs, 0, WriteStrSources);
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXSourcesBuildPhase");
|
|
}
|
|
|
|
WriteDestFileLn("buildActionMask = 2147483647;");
|
|
WriteAPBXCDBgnObjList("files");
|
|
DoAllSrcFilesSortWithSetup(
|
|
DoSrcFileAPBXCDaddToSources);
|
|
WriteAPBXCDEndObjList();
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("PBXSourcesBuildPhase");
|
|
}
|
|
WriteDestFileLn("runOnlyForDeploymentPostprocessing = 0;");
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("PBXSourcesBuildPhase");
|
|
|
|
if (HaveMacBundleApp) {
|
|
if (HaveAPBXCD_LangDummy) {
|
|
DoBeginSectionAPBXCD("PBXVariantGroup");
|
|
DoLangDummyAPBXCDaddVariant();
|
|
DoEndSectionAPBXCD("PBXVariantGroup");
|
|
}
|
|
}
|
|
|
|
if (ide_vers >= 2100) {
|
|
DoBeginSectionAPBXCD("XCBuildConfiguration");
|
|
WriteAPBXCDBeginObject(APBospcNatCnfg,
|
|
0, WriteXCDconfigname);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("XCBuildConfiguration");
|
|
}
|
|
|
|
WriteDestFileLn("buildSettings = {");
|
|
++DestFileIndent;
|
|
WriteAPBXCDBuildSettings();
|
|
--DestFileIndent;
|
|
WriteDestFileLn("};");
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("XCBuildConfiguration");
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteXCDconfigname);
|
|
WriteAPBXCDEndObject();
|
|
WriteAPBXCDBeginObject(APBospcPrjCnfg,
|
|
0, WriteXCDconfigname);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("XCBuildConfiguration");
|
|
}
|
|
|
|
WriteDestFileLn("buildSettings = {");
|
|
WriteDestFileLn("};");
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("XCBuildConfiguration");
|
|
}
|
|
WriteAPBXCDDObjAPropName(WriteXCDconfigname);
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("XCBuildConfiguration");
|
|
}
|
|
|
|
if (ide_vers >= 2100) {
|
|
DoBeginSectionAPBXCD("XCConfigurationList");
|
|
WriteAPBXCDBeginObject(APBospcLstNatCnfg, 0,
|
|
WriteStrConfListPBXNativeTarget);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("XCConfigurationList");
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("buildConfigurations");
|
|
WriteAPBXCDobjlistelmp(APBospcNatCnfg,
|
|
0, WriteXCDconfigname);
|
|
WriteAPBXCDEndObjList();
|
|
WriteAPBXCDDObjAProp_SS(
|
|
"defaultConfigurationIsVisible", "0");
|
|
WriteAPBXCDDObjAProp_SP(
|
|
"defaultConfigurationName", WriteXCDconfigname);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("XCConfigurationList");
|
|
}
|
|
WriteAPBXCDEndObject();
|
|
WriteAPBXCDBeginObject(APBospcLstPrjCnfg, 0,
|
|
WriteStrConfListPBXProject);
|
|
|
|
if (HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("XCConfigurationList");
|
|
}
|
|
|
|
WriteAPBXCDBgnObjList("buildConfigurations");
|
|
WriteAPBXCDobjlistelmp(APBospcPrjCnfg,
|
|
0, WriteXCDconfigname);
|
|
WriteAPBXCDEndObjList();
|
|
WriteAPBXCDDObjAProp_SS(
|
|
"defaultConfigurationIsVisible", "0");
|
|
WriteAPBXCDDObjAProp_SP(
|
|
"defaultConfigurationName", WriteXCDconfigname);
|
|
if (! HaveAPBXCD_IsaFirst) {
|
|
WriteAPBXCDDObjAPropIsa("XCConfigurationList");
|
|
}
|
|
WriteAPBXCDEndObject();
|
|
DoEndSectionAPBXCD("XCConfigurationList");
|
|
}
|
|
|
|
--DestFileIndent;
|
|
WriteDestFileLn("};");
|
|
WriteBgnDestFileLn();
|
|
WriteCStrToDestFile("rootObject = ");
|
|
WriteAPBXCDObjectIdAndComment(APBospcRoot,
|
|
0, WriteStrProjectObject);
|
|
WriteCStrToDestFile(";");
|
|
WriteEndDestFileLn();
|
|
--DestFileIndent;
|
|
WriteDestFileLn("}");
|
|
}
|
|
|
|
LOCALPROC WriteOutDummyLangContents(void)
|
|
{
|
|
WriteDestFileLn(
|
|
"This file is here because some archive extraction");
|
|
WriteDestFileLn("software will not create an empty directory.");
|
|
}
|
|
|
|
LOCALPROC WriteXCDSpecificFiles(void)
|
|
{
|
|
MakeSubDirectory("my_proj_d", "my_project_d", vStrAppAbbrev,
|
|
(ide_vers >= 2100) ? ".xcodeproj" : ".pbproj");
|
|
|
|
WriteADstFile1("my_proj_d",
|
|
"project", ".pbxproj", "project file",
|
|
WriteXCDProjectFile);
|
|
|
|
if (HaveMacBundleApp) {
|
|
if (HaveAPBXCD_PlistFile) {
|
|
WritePListData();
|
|
}
|
|
|
|
MakeSubDirectory("my_lang_d", "my_config_d",
|
|
GetLProjName(gbo_lang), ".lproj");
|
|
|
|
WriteADstFile1("my_lang_d",
|
|
"dummy", ".txt", "Dummy",
|
|
WriteOutDummyLangContents);
|
|
}
|
|
|
|
if (WantSandbox) {
|
|
WriteEntitlementsData();
|
|
}
|
|
}
|