1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-18 08:06:04 +02:00

Start of package management

This commit is contained in:
Brian Fiete 2021-02-25 08:10:21 -08:00
parent e517a9745a
commit e6c4a95ccd
25 changed files with 4316 additions and 692 deletions

View file

@ -1266,16 +1266,32 @@ namespace IDE
public class Dependency
{
public VerSpecRecord mVerSpec ~ delete _;
public VerSpec mVerSpec ~ _.Dispose();
public String mProjectName ~ delete _;
}
public enum DeferState
{
None,
ReadyToLoad,
Pending,
Searching
}
public class VerReference
{
public String mSrcProjectName ~ delete _;
public VerSpec mVerSpec ~ _.Dispose();
}
public Monitor mMonitor = new Monitor() ~ delete _;
public String mNamespace = new String() ~ delete _;
public String mProjectDir = new String() ~ delete _;
public String mProjectName = new String() ~ delete _;
public String mProjectPath = new String() ~ delete _;
public bool mLoadDeferred;
public DeferState mDeferState;
public List<VerReference> mVerReferences = new .() ~ DeleteContainerAndItems!(_);
//public String mLastImportDir = new String() ~ delete _;
public bool mHasChanged;
public bool mNeedsTargetRebuild;
@ -1412,15 +1428,20 @@ namespace IDE
public void DeferLoad(StringView path)
{
mProjectPath.Set(path);
mLoadDeferred = true;
if (!path.IsEmpty)
{
mProjectPath.Set(path);
mDeferState = .ReadyToLoad;
}
else
mDeferState = .Pending;
}
public bool Load(StringView path)
{
scope AutoBeefPerf("Project.Load");
mLoadDeferred = false;
mDeferState = .None;
mLastGeneratedResVer = 0;
mCurResVer = 0;
@ -1546,7 +1567,7 @@ namespace IDE
{
var dep = mDependencies[0];
if ((dep.mProjectName == "corlib") &&
(dep.mVerSpec.mVerSpec case .SemVer(let semVer)) &&
(dep.mVerSpec case .SemVer(let semVer)) &&
(semVer.mVersion == "*"))
{
isDefaultDependencies = true;
@ -1885,8 +1906,7 @@ namespace IDE
{
var dep = new Project.Dependency();
dep.mProjectName = new .("corlib");
dep.mVerSpec = new .();
dep.mVerSpec.SetSemVer("*");
dep.mVerSpec = .SemVer(new .("*"));
mDependencies.Add(dep);
}
else
@ -1896,7 +1916,6 @@ namespace IDE
var dep = new Dependency();
defer { delete dep; }
dep.mVerSpec = new VerSpecRecord();
if (dep.mVerSpec.Parse(data) case .Err)
{
var err = scope String();