Introjucer XCode 4.5 Build Products Path


#1

I can’t seem to get Introjucer to create an XCode project that will put my binaries in the location I specify in “Binary location”.

I took a quick look at the Introjucer source code and it appears to only change build locations whenever projectType.isLibrary() returns true (line 707 of jucer_ProjectExport_XCode.h). If I remove the isLibrary() condition and disable the s.add (“DEPLOYMENT_LOCATION = YES”) line then it seems to set it up fine.

[code]/if (projectType.isLibrary())
{
/
if (config.getTargetBinaryRelativePathString().isNotEmpty())
{
RelativePath binaryPath (config.getTargetBinaryRelativePathString(), RelativePath::projectFolder);
binaryPath = binaryPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder);

    s.add ("DSTROOT = " + sanitisePath (binaryPath.toUnixStyle()));
    s.add ("SYMROOT = " + sanitisePath (binaryPath.toUnixStyle()));
}

s.add ("CONFIGURATION_BUILD_DIR = \"$(BUILD_DIR)\"");
//s.add ("DEPLOYMENT_LOCATION = YES");

//}[/code]


#2

Thanks - I think the path section should just have been outside of that block, i.e.

[code] if (config.getTargetBinaryRelativePathString().isNotEmpty())
{
RelativePath binaryPath (config.getTargetBinaryRelativePathString(), RelativePath::projectFolder);
binaryPath = binaryPath.rebased (projectFolder, getTargetFolder(), RelativePath::buildTargetFolder);

        s.add ("DSTROOT = " + sanitisePath (binaryPath.toUnixStyle()));
        s.add ("SYMROOT = " + sanitisePath (binaryPath.toUnixStyle()));
    }

    if (projectType.isLibrary())
    {
        s.add ("CONFIGURATION_BUILD_DIR = \"$(BUILD_DIR)\"");
        s.add ("DEPLOYMENT_LOCATION = YES");
    }

[/code]