private void SetDefaultAppExtensionReleaseBuildFlags(XCBuildConfigurationData config, string infoPlistPath) { config.AddProperty("ALWAYS_SEARCH_USER_PATHS", "NO"); config.AddProperty("CLANG_CXX_LANGUAGE_STANDARD", "gnu++0x"); config.AddProperty("CLANG_CXX_LIBRARY", "libc++"); config.AddProperty("CLANG_ENABLE_MODULES", "YES"); config.AddProperty("CLANG_ENABLE_OBJC_ARC", "YES"); config.AddProperty("CLANG_WARN_BOOL_CONVERSION", "YES"); config.AddProperty("CLANG_WARN_CONSTANT_CONVERSION", "YES"); config.AddProperty("CLANG_WARN_DIRECT_OBJC_ISA_USAGE", "YES_ERROR"); config.AddProperty("CLANG_WARN_EMPTY_BODY", "YES"); config.AddProperty("CLANG_WARN_ENUM_CONVERSION", "YES"); config.AddProperty("CLANG_WARN_INT_CONVERSION", "YES"); config.AddProperty("CLANG_WARN_OBJC_ROOT_CLASS", "YES_ERROR"); config.AddProperty("CLANG_WARN_UNREACHABLE_CODE", "YES"); config.AddProperty("CLANG_WARN__DUPLICATE_METHOD_MATCH", "YES"); config.AddProperty("COPY_PHASE_STRIP", "YES"); config.AddProperty("ENABLE_NS_ASSERTIONS", "NO"); config.AddProperty("ENABLE_STRICT_OBJC_MSGSEND", "YES"); config.AddProperty("GCC_C_LANGUAGE_STANDARD", "gnu99"); config.AddProperty("GCC_WARN_64_TO_32_BIT_CONVERSION", "YES"); config.AddProperty("GCC_WARN_ABOUT_RETURN_TYPE", "YES_ERROR"); config.AddProperty("GCC_WARN_UNDECLARED_SELECTOR", "YES"); config.AddProperty("GCC_WARN_UNINITIALIZED_AUTOS", "YES_AGGRESSIVE"); config.AddProperty("GCC_WARN_UNUSED_FUNCTION", "YES"); config.AddProperty("INFOPLIST_FILE", infoPlistPath); config.AddProperty("IPHONEOS_DEPLOYMENT_TARGET", "8.0"); config.AddProperty("LD_RUNPATH_SEARCH_PATHS", "$(inherited)"); config.AddProperty("LD_RUNPATH_SEARCH_PATHS", "@executable_path/Frameworks"); config.AddProperty("LD_RUNPATH_SEARCH_PATHS", "@executable_path/../../Frameworks"); config.AddProperty("MTL_ENABLE_DEBUG_INFO", "NO"); config.AddProperty("PRODUCT_NAME", "$(TARGET_NAME)"); config.AddProperty("SKIP_INSTALL", "YES"); config.AddProperty("VALIDATE_PRODUCT", "YES"); }
internal PBXNativeTargetData CreateNewTarget(string name, string ext, string type) { // create build configurations var releaseBuildConfig = XCBuildConfigurationData.Create("Release"); buildConfigs.AddEntry(releaseBuildConfig); var debugBuildConfig = XCBuildConfigurationData.Create("Debug"); buildConfigs.AddEntry(debugBuildConfig); var buildConfigList = XCConfigurationListData.Create(); configs.AddEntry(buildConfigList); buildConfigList.buildConfigs.AddGUID(releaseBuildConfig.guid); buildConfigList.buildConfigs.AddGUID(debugBuildConfig.guid); // create build file reference string fullName = name + ext; var productFileRef = AddFile(fullName, "Products/" + fullName, PBXSourceTree.Build); var newTarget = PBXNativeTargetData.Create(name, productFileRef, type, buildConfigList.guid); nativeTargets.AddEntry(newTarget); project.project.targets.Add(newTarget.guid); return(newTarget); }
// name should be either release or debug public static XCBuildConfigurationData Create(string name) { var res = new XCBuildConfigurationData(); res.guid = PBXGUID.Generate(); res.SetPropertyString("isa", "XCBuildConfiguration"); res.SetPropertyString("name", name); return(res); }
public string BuildConfigByName(string targetGuid, string name) { PBXNativeTargetData data = this.nativeTargets[targetGuid]; foreach (string str in (IEnumerable <string>) this.configs[data.buildConfigList].buildConfigs) { XCBuildConfigurationData data2 = this.buildConfigs[str]; if ((data2 != null) && (data2.name == name)) { return(data2.guid); } } return(null); }
internal PBXNativeTargetData CreateNewTarget(string name, string ext, string type) { XCBuildConfigurationData data = XCBuildConfigurationData.Create("Release"); this.buildConfigs.AddEntry(data); XCBuildConfigurationData data2 = XCBuildConfigurationData.Create("Debug"); this.buildConfigs.AddEntry(data2); XCConfigurationListData data3 = XCConfigurationListData.Create(); this.configs.AddEntry(data3); data3.buildConfigs.AddGUID(data.guid); data3.buildConfigs.AddGUID(data2.guid); string path = name + ext; string productRef = this.AddFile(path, "Products/" + path, PBXSourceTree.Build); PBXNativeTargetData data4 = PBXNativeTargetData.Create(name, productRef, type, data3.guid); this.nativeTargets.AddEntry(data4); this.project.project.targets.Add(data4.guid); return(data4); }
public void UpdateBuildPropertyForConfig(string configGuid, string name, IEnumerable <string> addValues, IEnumerable <string> removeValues) { XCBuildConfigurationData data = this.buildConfigs[configGuid]; if (data != null) { if (removeValues != null) { foreach (string str in removeValues) { data.RemovePropertyValue(name, str); } } if (addValues != null) { foreach (string str2 in addValues) { data.AddProperty(name, str2); } } } }