mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48:20 +02:00
Removed temporary member resolution logic from custom build properties
This commit is contained in:
parent
524ebaa914
commit
0cf382532c
3 changed files with 0 additions and 493 deletions
|
@ -1383,9 +1383,6 @@ namespace IDE
|
|||
|
||||
public bool QueueProjectCompile(Project project, Project hotProject, IDEApp.BuildCompletedCmd completedCompileCmd, List<String> hotFileNames, CompileKind compileKind)
|
||||
{
|
||||
CustomBuildProperties.ResolveProjectProperties(project);
|
||||
defer CustomBuildProperties.UnresolveProjectProperties(project);
|
||||
|
||||
project.mLastDidBuild = false;
|
||||
|
||||
TestManager.ProjectInfo testProjectInfo = null;
|
||||
|
|
|
@ -8,31 +8,7 @@ namespace IDE
|
|||
{
|
||||
class CustomBuildProperties
|
||||
{
|
||||
static String[?] BUILT_IN_PROPERTIES = .(
|
||||
"Slash",
|
||||
"Var",
|
||||
"Arguments",
|
||||
"BuildDir",
|
||||
"LinkFlags",
|
||||
"ProjectDir",
|
||||
"ProjectName",
|
||||
"TargetDir",
|
||||
"TargetPath",
|
||||
"WorkingDir",
|
||||
"ProjectName",
|
||||
"VSToolPath",
|
||||
"VSToolPath_x86",
|
||||
"VSToolPath_x64",
|
||||
"EmccPath",
|
||||
"ScriptDir",
|
||||
"Configuration",
|
||||
"Platform",
|
||||
"WorkspaceDir",
|
||||
"BeefPath"
|
||||
);
|
||||
|
||||
static Dictionary<String, String> mProperties = new .() ~ DeleteDictionaryAndKeysAndValues!(_);
|
||||
static Dictionary<Project, Project> mProjects = new .() ~ DeleteDictionaryAndValues!(_);
|
||||
|
||||
static public void GetFileName(String outResult)
|
||||
{
|
||||
|
@ -54,11 +30,7 @@ namespace IDE
|
|||
delete entry.value;
|
||||
}
|
||||
|
||||
for (var entry in mProjects)
|
||||
delete entry.value;
|
||||
|
||||
mProperties.Clear();
|
||||
mProjects.Clear();
|
||||
}
|
||||
|
||||
static public void Load(bool clearExistingProperties = true)
|
||||
|
@ -123,463 +95,5 @@ namespace IDE
|
|||
|
||||
return mProperties[property];
|
||||
}
|
||||
|
||||
static public void ResolveString(StringView configString, String outResult)
|
||||
{
|
||||
outResult.Set(configString);
|
||||
|
||||
// Find the property to resolve (if any).
|
||||
int i = 0;
|
||||
for (; i < outResult.Length - 2; i++)
|
||||
{
|
||||
if ((outResult[i] == '$') && (outResult[i + 1] == '('))
|
||||
{
|
||||
int parenPos = -1;
|
||||
int openCount = 1;
|
||||
bool inString = false;
|
||||
char8 prevC = 0;
|
||||
for (int checkIdx = i + 2; checkIdx < outResult.Length; checkIdx++)
|
||||
{
|
||||
char8 c = outResult[checkIdx];
|
||||
if (inString)
|
||||
{
|
||||
if (prevC == '\\')
|
||||
{
|
||||
// Slashed char
|
||||
prevC = 0;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (c == '"')
|
||||
inString = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (c == '"')
|
||||
inString = true;
|
||||
else if (c == '(')
|
||||
openCount++;
|
||||
else if (c == ')')
|
||||
{
|
||||
openCount--;
|
||||
if (openCount == 0)
|
||||
{
|
||||
parenPos = checkIdx;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prevC = c;
|
||||
}
|
||||
|
||||
if (parenPos != -1)
|
||||
ReplaceBlock:
|
||||
do
|
||||
{
|
||||
// If we reach here, a property has been found.
|
||||
String replaceStr = scope String(outResult, i + 2, parenPos - i - 2);
|
||||
|
||||
// Ignore built-in properties because they are resolved elsewhere.
|
||||
if (BUILT_IN_PROPERTIES.Contains(replaceStr))
|
||||
continue;
|
||||
|
||||
String newString = Get(replaceStr);
|
||||
|
||||
// Resolve custom property value.
|
||||
if (newString != null)
|
||||
{
|
||||
outResult.Remove(i, parenPos - i + 1);
|
||||
outResult.Insert(i, newString);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static public void ResolveProjectProperties(Project project)
|
||||
{
|
||||
if (project == null)
|
||||
return;
|
||||
|
||||
Project unresolvedProject = new Project();
|
||||
mProjects[project] = unresolvedProject;
|
||||
|
||||
// Deep copy the project so unresolved custom build properties can be restored later,
|
||||
// and resolve any custom build properties in place in the existing project.
|
||||
if (project.mNamespace != null)
|
||||
{
|
||||
unresolvedProject.mNamespace.Set(project.mNamespace);
|
||||
ResolveString(unresolvedProject.mNamespace, project.mNamespace);
|
||||
}
|
||||
|
||||
if (project.mProjectDir != null)
|
||||
{
|
||||
unresolvedProject.mProjectDir.Set(project.mProjectDir);
|
||||
ResolveString(unresolvedProject.mProjectDir, project.mProjectDir);
|
||||
}
|
||||
|
||||
if (project.mProjectName != null)
|
||||
{
|
||||
unresolvedProject.mProjectName.Set(project.mProjectName);
|
||||
ResolveString(unresolvedProject.mProjectName, project.mProjectName);
|
||||
}
|
||||
|
||||
if (project.mProjectPath != null)
|
||||
{
|
||||
unresolvedProject.mProjectPath.Set(project.mProjectPath);
|
||||
ResolveString(unresolvedProject.mProjectPath, project.mProjectPath);
|
||||
}
|
||||
|
||||
if (project.mManagedInfo != null)
|
||||
{
|
||||
unresolvedProject.mManagedInfo = new Project.ManagedInfo();
|
||||
unresolvedProject.mManagedInfo.mVersion.mVersion.Set(project.mManagedInfo.mVersion.mVersion);
|
||||
unresolvedProject.mManagedInfo.mInfo.Set(project.mManagedInfo.mInfo);
|
||||
|
||||
ResolveString(unresolvedProject.mManagedInfo.mVersion.mVersion, project.mManagedInfo.mVersion.mVersion);
|
||||
ResolveString(unresolvedProject.mManagedInfo.mInfo, project.mManagedInfo.mInfo);
|
||||
}
|
||||
|
||||
if (project.mConfigs != null)
|
||||
{
|
||||
DeleteDictionaryAndKeysAndValues!(unresolvedProject.mConfigs);
|
||||
unresolvedProject.mConfigs = new Dictionary<String, Project.Config>();
|
||||
|
||||
for (var config in project.mConfigs)
|
||||
{
|
||||
Project.Config unresolvedConfig = new Project.Config();
|
||||
|
||||
for (var platform in config.value.mPlatforms)
|
||||
{
|
||||
Project.Options unresolvedOptions = platform.value.Duplicate();
|
||||
unresolvedConfig.mPlatforms[new String(platform.key)] = unresolvedOptions;
|
||||
|
||||
ResolveString(unresolvedOptions.mBuildOptions.mTargetDirectory, platform.value.mBuildOptions.mTargetDirectory);
|
||||
ResolveString(unresolvedOptions.mBuildOptions.mTargetName, platform.value.mBuildOptions.mTargetName);
|
||||
ResolveString(unresolvedOptions.mBuildOptions.mOtherLinkFlags, platform.value.mBuildOptions.mOtherLinkFlags);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mBuildOptions.mLibPaths.Count; i++)
|
||||
ResolveString(unresolvedOptions.mBuildOptions.mLibPaths[i], platform.value.mBuildOptions.mLibPaths[i]);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mBuildOptions.mLinkDependencies.Count; i++)
|
||||
ResolveString(unresolvedOptions.mBuildOptions.mLinkDependencies[i], platform.value.mBuildOptions.mLinkDependencies[i]);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mBuildOptions.mPreBuildCmds.Count; i++)
|
||||
ResolveString(unresolvedOptions.mBuildOptions.mPreBuildCmds[i], platform.value.mBuildOptions.mPreBuildCmds[i]);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mBuildOptions.mPostBuildCmds.Count; i++)
|
||||
ResolveString(unresolvedOptions.mBuildOptions.mPostBuildCmds[i], platform.value.mBuildOptions.mPostBuildCmds[i]);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mBuildOptions.mCleanCmds.Count; i++)
|
||||
ResolveString(unresolvedOptions.mBuildOptions.mCleanCmds[i], platform.value.mBuildOptions.mCleanCmds[i]);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mBeefOptions.mPreprocessorMacros.Count; i++)
|
||||
ResolveString(unresolvedOptions.mBeefOptions.mPreprocessorMacros[i], platform.value.mBeefOptions.mPreprocessorMacros[i]);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mBeefOptions.mDistinctBuildOptions.Count; i++)
|
||||
{
|
||||
ResolveString(unresolvedOptions.mBeefOptions.mDistinctBuildOptions[i].mFilter, platform.value.mBeefOptions.mDistinctBuildOptions[i].mFilter);
|
||||
ResolveString(unresolvedOptions.mBeefOptions.mDistinctBuildOptions[i].mReflectMethodFilter, platform.value.mBeefOptions.mDistinctBuildOptions[i].mReflectMethodFilter);
|
||||
}
|
||||
|
||||
ResolveString(unresolvedOptions.mCOptions.mOtherCFlags, platform.value.mCOptions.mOtherCFlags);
|
||||
ResolveString(unresolvedOptions.mCOptions.mOtherCPPFlags, platform.value.mCOptions.mOtherCPPFlags);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mCOptions.mIncludePaths.Count; i++)
|
||||
ResolveString(unresolvedOptions.mCOptions.mIncludePaths[i], platform.value.mCOptions.mIncludePaths[i]);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mCOptions.mPreprocessorMacros.Count; i++)
|
||||
ResolveString(unresolvedOptions.mCOptions.mPreprocessorMacros[i], platform.value.mCOptions.mPreprocessorMacros[i]);
|
||||
|
||||
ResolveString(unresolvedOptions.mCOptions.mAddressSanitizer, platform.value.mCOptions.mAddressSanitizer);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mCOptions.mSpecificWarningsAsErrors.Count; i++)
|
||||
ResolveString(unresolvedOptions.mCOptions.mSpecificWarningsAsErrors[i], platform.value.mCOptions.mSpecificWarningsAsErrors[i]);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mCOptions.mDisableSpecificWarnings.Count; i++)
|
||||
ResolveString(unresolvedOptions.mCOptions.mDisableSpecificWarnings[i], platform.value.mCOptions.mDisableSpecificWarnings[i]);
|
||||
|
||||
ResolveString(unresolvedOptions.mDebugOptions.mCommand, platform.value.mDebugOptions.mCommand);
|
||||
ResolveString(unresolvedOptions.mDebugOptions.mCommandArguments, platform.value.mDebugOptions.mCommandArguments);
|
||||
ResolveString(unresolvedOptions.mDebugOptions.mWorkingDirectory, platform.value.mDebugOptions.mWorkingDirectory);
|
||||
|
||||
for (int32 i = 0; i < unresolvedOptions.mDebugOptions.mEnvironmentVars.Count; i++)
|
||||
ResolveString(unresolvedOptions.mDebugOptions.mEnvironmentVars[i], platform.value.mDebugOptions.mEnvironmentVars[i]);
|
||||
}
|
||||
|
||||
unresolvedProject.mConfigs[new String(config.key)] = unresolvedConfig;
|
||||
}
|
||||
}
|
||||
|
||||
if (project.mGeneralOptions != null)
|
||||
{
|
||||
unresolvedProject.mGeneralOptions.mProjectNameDecl.Set(project.mGeneralOptions.mProjectNameDecl);
|
||||
ResolveString(unresolvedProject.mGeneralOptions.mProjectNameDecl, project.mGeneralOptions.mProjectNameDecl);
|
||||
|
||||
unresolvedProject.mGeneralOptions.mVersion.mVersion.Set(project.mGeneralOptions.mVersion.mVersion);
|
||||
ResolveString(unresolvedProject.mGeneralOptions.mVersion.mVersion, project.mGeneralOptions.mVersion.mVersion);
|
||||
|
||||
unresolvedProject.mGeneralOptions.mAliases.Clear();
|
||||
for (String alias in project.mGeneralOptions.mAliases)
|
||||
{
|
||||
String unresolvedAlias = new String(alias);
|
||||
unresolvedProject.mGeneralOptions.mAliases.Add(unresolvedAlias);
|
||||
ResolveString(unresolvedAlias, alias);
|
||||
}
|
||||
}
|
||||
|
||||
if (project.mBeefGlobalOptions != null)
|
||||
{
|
||||
unresolvedProject.mBeefGlobalOptions.mStartupObject.Set(project.mBeefGlobalOptions.mStartupObject);
|
||||
ResolveString(unresolvedProject.mBeefGlobalOptions.mStartupObject, project.mBeefGlobalOptions.mStartupObject);
|
||||
|
||||
unresolvedProject.mBeefGlobalOptions.mDefaultNamespace.Set(project.mBeefGlobalOptions.mDefaultNamespace);
|
||||
ResolveString(unresolvedProject.mBeefGlobalOptions.mDefaultNamespace, project.mBeefGlobalOptions.mDefaultNamespace);
|
||||
|
||||
unresolvedProject.mBeefGlobalOptions.mPreprocessorMacros.Clear();
|
||||
for (String macro in project.mBeefGlobalOptions.mPreprocessorMacros)
|
||||
{
|
||||
String unresolvedMacro = new String(macro);
|
||||
unresolvedProject.mBeefGlobalOptions.mPreprocessorMacros.Add(unresolvedMacro);
|
||||
ResolveString(unresolvedMacro, macro);
|
||||
}
|
||||
|
||||
unresolvedProject.mBeefGlobalOptions.mDistinctBuildOptions.Clear();
|
||||
for (DistinctBuildOptions options in project.mBeefGlobalOptions.mDistinctBuildOptions)
|
||||
{
|
||||
DistinctBuildOptions unresolvedOptions = new DistinctBuildOptions();
|
||||
|
||||
unresolvedOptions.mFilter.Set(options.mFilter);
|
||||
unresolvedOptions.mReflectMethodFilter.Set(options.mReflectMethodFilter);
|
||||
unresolvedProject.mBeefGlobalOptions.mDistinctBuildOptions.Add(unresolvedOptions);
|
||||
|
||||
ResolveString(unresolvedOptions.mFilter, options.mFilter);
|
||||
ResolveString(unresolvedOptions.mReflectMethodFilter, options.mReflectMethodFilter);
|
||||
}
|
||||
}
|
||||
|
||||
if (project.mWindowsOptions != null)
|
||||
{
|
||||
unresolvedProject.mWindowsOptions.mIconFile.Set(project.mWindowsOptions.mIconFile);
|
||||
unresolvedProject.mWindowsOptions.mManifestFile.Set(project.mWindowsOptions.mManifestFile);
|
||||
unresolvedProject.mWindowsOptions.mDescription.Set(project.mWindowsOptions.mDescription);
|
||||
unresolvedProject.mWindowsOptions.mComments.Set(project.mWindowsOptions.mComments);
|
||||
unresolvedProject.mWindowsOptions.mCompany.Set(project.mWindowsOptions.mCompany);
|
||||
unresolvedProject.mWindowsOptions.mProduct.Set(project.mWindowsOptions.mProduct);
|
||||
unresolvedProject.mWindowsOptions.mCopyright.Set(project.mWindowsOptions.mCopyright);
|
||||
unresolvedProject.mWindowsOptions.mFileVersion.Set(project.mWindowsOptions.mFileVersion);
|
||||
unresolvedProject.mWindowsOptions.mProductVersion.Set(project.mWindowsOptions.mProductVersion);
|
||||
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mIconFile, project.mWindowsOptions.mIconFile);
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mManifestFile, project.mWindowsOptions.mManifestFile);
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mDescription, project.mWindowsOptions.mDescription);
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mComments, project.mWindowsOptions.mComments);
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mCompany, project.mWindowsOptions.mCompany);
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mProduct, project.mWindowsOptions.mProduct);
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mCopyright, project.mWindowsOptions.mCopyright);
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mFileVersion, project.mWindowsOptions.mFileVersion);
|
||||
ResolveString(unresolvedProject.mWindowsOptions.mProductVersion, project.mWindowsOptions.mProductVersion);
|
||||
}
|
||||
|
||||
if (project.mLinuxOptions != null)
|
||||
{
|
||||
unresolvedProject.mLinuxOptions.mOptions.Set(project.mLinuxOptions.mOptions);
|
||||
ResolveString(unresolvedProject.mLinuxOptions.mOptions, project.mLinuxOptions.mOptions);
|
||||
}
|
||||
|
||||
if (project.mDependencies != null)
|
||||
{
|
||||
unresolvedProject.mDependencies.Clear();
|
||||
for (Project.Dependency dependency in project.mDependencies)
|
||||
{
|
||||
Project.Dependency unresolvedDependency = new Project.Dependency();
|
||||
|
||||
unresolvedDependency.mVerSpec = dependency.mVerSpec.Duplicate();
|
||||
|
||||
if (dependency.mProjectName != null)
|
||||
{
|
||||
unresolvedDependency.mProjectName = new String();
|
||||
unresolvedDependency.mProjectName.Set(dependency.mProjectName);
|
||||
ResolveString(unresolvedDependency.mProjectName, dependency.mProjectName);
|
||||
}
|
||||
|
||||
unresolvedProject.mDependencies.Add(unresolvedDependency);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static public void UnresolveProjectProperties(Project project)
|
||||
{
|
||||
if (project == null)
|
||||
return;
|
||||
|
||||
if (!mProjects.ContainsKey(project))
|
||||
return;
|
||||
|
||||
Project unresolvedProject = mProjects[project];
|
||||
|
||||
// Unpack unresolved strings into the project.
|
||||
if (project.mNamespace != null)
|
||||
project.mNamespace.Set(unresolvedProject.mNamespace);
|
||||
|
||||
if (project.mProjectDir != null)
|
||||
project.mProjectDir.Set(unresolvedProject.mProjectDir);
|
||||
|
||||
if (project.mProjectName != null)
|
||||
project.mProjectName.Set(unresolvedProject.mProjectName);
|
||||
|
||||
if (project.mProjectPath != null)
|
||||
project.mProjectPath.Set(unresolvedProject.mProjectPath);
|
||||
|
||||
if (project.mManagedInfo != null)
|
||||
{
|
||||
project.mManagedInfo.mVersion.mVersion.Set(unresolvedProject.mManagedInfo.mVersion.mVersion);
|
||||
project.mManagedInfo.mInfo.Set(unresolvedProject.mManagedInfo.mInfo);
|
||||
}
|
||||
|
||||
if (project.mConfigs != null)
|
||||
{
|
||||
for (var config in project.mConfigs)
|
||||
{
|
||||
Project.Config unresolvedConfig = null;
|
||||
|
||||
for (var c in unresolvedProject.mConfigs)
|
||||
{
|
||||
if (config.key.Equals(c.key))
|
||||
{
|
||||
unresolvedConfig = c.value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (unresolvedConfig == null)
|
||||
continue;
|
||||
|
||||
for (var platform in config.value.mPlatforms)
|
||||
{
|
||||
Project.Options unresolvedOptions = null;
|
||||
|
||||
for (var p in unresolvedConfig.mPlatforms)
|
||||
{
|
||||
if (platform.key.Equals(p.key))
|
||||
{
|
||||
unresolvedOptions = p.value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (unresolvedOptions == null)
|
||||
continue;
|
||||
|
||||
platform.value.mBuildOptions.mTargetDirectory.Set(unresolvedOptions.mBuildOptions.mTargetDirectory);
|
||||
platform.value.mBuildOptions.mTargetName.Set(unresolvedOptions.mBuildOptions.mTargetName);
|
||||
platform.value.mBuildOptions.mOtherLinkFlags.Set(unresolvedOptions.mBuildOptions.mOtherLinkFlags);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mBuildOptions.mLibPaths.Count; i++)
|
||||
platform.value.mBuildOptions.mLibPaths[i].Set(unresolvedOptions.mBuildOptions.mLibPaths[i]);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mBuildOptions.mLinkDependencies.Count; i++)
|
||||
platform.value.mBuildOptions.mLinkDependencies[i].Set(unresolvedOptions.mBuildOptions.mLinkDependencies[i]);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mBuildOptions.mPreBuildCmds.Count; i++)
|
||||
platform.value.mBuildOptions.mPreBuildCmds[i].Set(unresolvedOptions.mBuildOptions.mPreBuildCmds[i]);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mBuildOptions.mPostBuildCmds.Count; i++)
|
||||
platform.value.mBuildOptions.mPostBuildCmds[i].Set(unresolvedOptions.mBuildOptions.mPostBuildCmds[i]);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mBuildOptions.mCleanCmds.Count; i++)
|
||||
platform.value.mBuildOptions.mCleanCmds[i].Set(unresolvedOptions.mBuildOptions.mCleanCmds[i]);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mBeefOptions.mPreprocessorMacros.Count; i++)
|
||||
platform.value.mBeefOptions.mPreprocessorMacros[i].Set(unresolvedOptions.mBeefOptions.mPreprocessorMacros[i]);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mBeefOptions.mDistinctBuildOptions.Count; i++)
|
||||
{
|
||||
platform.value.mBeefOptions.mDistinctBuildOptions[i].mFilter.Set(unresolvedOptions.mBeefOptions.mDistinctBuildOptions[i].mFilter);
|
||||
platform.value.mBeefOptions.mDistinctBuildOptions[i].mReflectMethodFilter.Set(unresolvedOptions.mBeefOptions.mDistinctBuildOptions[i].mReflectMethodFilter);
|
||||
}
|
||||
|
||||
platform.value.mCOptions.mOtherCFlags.Set(unresolvedOptions.mCOptions.mOtherCFlags);
|
||||
platform.value.mCOptions.mOtherCPPFlags.Set(unresolvedOptions.mCOptions.mOtherCPPFlags);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mCOptions.mIncludePaths.Count; i++)
|
||||
platform.value.mCOptions.mIncludePaths[i].Set(unresolvedOptions.mCOptions.mIncludePaths[i]);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mCOptions.mPreprocessorMacros.Count; i++)
|
||||
platform.value.mCOptions.mPreprocessorMacros[i].Set(unresolvedOptions.mCOptions.mPreprocessorMacros[i]);
|
||||
|
||||
platform.value.mCOptions.mAddressSanitizer.Set(unresolvedOptions.mCOptions.mAddressSanitizer);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mCOptions.mSpecificWarningsAsErrors.Count; i++)
|
||||
platform.value.mCOptions.mSpecificWarningsAsErrors[i].Set(unresolvedOptions.mCOptions.mSpecificWarningsAsErrors[i]);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mCOptions.mDisableSpecificWarnings.Count; i++)
|
||||
platform.value.mCOptions.mDisableSpecificWarnings[i].Set(unresolvedOptions.mCOptions.mDisableSpecificWarnings[i]);
|
||||
|
||||
platform.value.mDebugOptions.mCommand.Set(unresolvedOptions.mDebugOptions.mCommand);
|
||||
platform.value.mDebugOptions.mCommandArguments.Set(unresolvedOptions.mDebugOptions.mCommandArguments);
|
||||
platform.value.mDebugOptions.mWorkingDirectory.Set(unresolvedOptions.mDebugOptions.mWorkingDirectory);
|
||||
|
||||
for (int32 i = 0; i < platform.value.mDebugOptions.mEnvironmentVars.Count; i++)
|
||||
platform.value.mDebugOptions.mEnvironmentVars[i].Set(unresolvedOptions.mDebugOptions.mEnvironmentVars[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (project.mGeneralOptions != null)
|
||||
{
|
||||
project.mGeneralOptions.mProjectNameDecl.Set(unresolvedProject.mGeneralOptions.mProjectNameDecl);
|
||||
project.mGeneralOptions.mVersion.mVersion.Set(unresolvedProject.mGeneralOptions.mVersion.mVersion);
|
||||
|
||||
for (int32 i = 0; i < project.mGeneralOptions.mAliases.Count; i++)
|
||||
project.mGeneralOptions.mAliases[i].Set(unresolvedProject.mGeneralOptions.mAliases[i]);
|
||||
}
|
||||
|
||||
if (project.mBeefGlobalOptions != null)
|
||||
{
|
||||
project.mBeefGlobalOptions.mStartupObject.Set(unresolvedProject.mBeefGlobalOptions.mStartupObject);
|
||||
project.mBeefGlobalOptions.mDefaultNamespace.Set(unresolvedProject.mBeefGlobalOptions.mDefaultNamespace);
|
||||
|
||||
for (int32 i = 0; i < project.mBeefGlobalOptions.mPreprocessorMacros.Count; i++)
|
||||
project.mBeefGlobalOptions.mPreprocessorMacros[i].Set(unresolvedProject.mBeefGlobalOptions.mPreprocessorMacros[i]);
|
||||
|
||||
for (int32 i = 0; i < project.mBeefGlobalOptions.mDistinctBuildOptions.Count; i++)
|
||||
{
|
||||
project.mBeefGlobalOptions.mDistinctBuildOptions[i].mFilter.Set(unresolvedProject.mBeefGlobalOptions.mDistinctBuildOptions[i].mFilter);
|
||||
project.mBeefGlobalOptions.mDistinctBuildOptions[i].mReflectMethodFilter.Set(unresolvedProject.mBeefGlobalOptions.mDistinctBuildOptions[i].mReflectMethodFilter);
|
||||
}
|
||||
}
|
||||
|
||||
if (project.mWindowsOptions != null)
|
||||
{
|
||||
project.mWindowsOptions.mIconFile.Set(unresolvedProject.mWindowsOptions.mIconFile);
|
||||
project.mWindowsOptions.mManifestFile.Set(unresolvedProject.mWindowsOptions.mManifestFile);
|
||||
project.mWindowsOptions.mDescription.Set(unresolvedProject.mWindowsOptions.mDescription);
|
||||
project.mWindowsOptions.mComments.Set(unresolvedProject.mWindowsOptions.mComments);
|
||||
project.mWindowsOptions.mCompany.Set(unresolvedProject.mWindowsOptions.mCompany);
|
||||
project.mWindowsOptions.mProduct.Set(unresolvedProject.mWindowsOptions.mProduct);
|
||||
project.mWindowsOptions.mCopyright.Set(unresolvedProject.mWindowsOptions.mCopyright);
|
||||
project.mWindowsOptions.mFileVersion.Set(unresolvedProject.mWindowsOptions.mFileVersion);
|
||||
project.mWindowsOptions.mProductVersion.Set(unresolvedProject.mWindowsOptions.mProductVersion);
|
||||
}
|
||||
|
||||
if (project.mLinuxOptions != null)
|
||||
project.mLinuxOptions.mOptions.Set(unresolvedProject.mLinuxOptions.mOptions);
|
||||
|
||||
if (project.mDependencies != null)
|
||||
{
|
||||
for (int32 i = 0; i < project.mDependencies.Count; i++)
|
||||
{
|
||||
if (project.mDependencies[i].mProjectName != null)
|
||||
project.mDependencies[i].mProjectName.Set(unresolvedProject.mDependencies[i].mProjectName);
|
||||
}
|
||||
}
|
||||
|
||||
// Clean up unresolved project.
|
||||
delete mProjects[project];
|
||||
mProjects.Remove(project);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3255,18 +3255,14 @@ namespace IDE
|
|||
|
||||
case .SemVer(let ver):
|
||||
String unresolvedVersion = scope String(ver.mVersion);
|
||||
CustomBuildProperties.ResolveString(unresolvedVersion, ver.mVersion);
|
||||
|
||||
case .Path(let path):
|
||||
String unresolvedPath = scope String(path);
|
||||
CustomBuildProperties.ResolveString(unresolvedPath, path);
|
||||
|
||||
case .Git(let url, let ver):
|
||||
String unresolvedUrl = scope String(url);
|
||||
CustomBuildProperties.ResolveString(unresolvedUrl, url);
|
||||
|
||||
String unresolvedVersion = scope String(ver.mVersion);
|
||||
CustomBuildProperties.ResolveString(unresolvedVersion, ver.mVersion);
|
||||
}
|
||||
|
||||
String verConfigDir = mWorkspace.mDir;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue