mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-15 14:54:09 +02:00
Added Additional Lib Paths, renamed Link Dependencies
This commit is contained in:
parent
954613fe0c
commit
2f144ee19b
3 changed files with 51 additions and 2 deletions
|
@ -611,6 +611,35 @@ namespace IDE
|
||||||
|
|
||||||
CopyLibFiles(targetPath, workspaceOptions, options);
|
CopyLibFiles(targetPath, workspaceOptions, options);
|
||||||
|
|
||||||
|
List<String> libPaths = scope .();
|
||||||
|
defer ClearAndDeleteItems(libPaths);
|
||||||
|
void AddLibPath(StringView libPathIn, Project project, Project.Options projectOptions)
|
||||||
|
{
|
||||||
|
var libPath = new String();
|
||||||
|
if (gApp.ResolveConfigString(gApp.mPlatformName, workspaceOptions, project, projectOptions, libPathIn, "lib paths", libPath))
|
||||||
|
{
|
||||||
|
IDEUtils.FixFilePath(libPath);
|
||||||
|
libPaths.Add(libPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> depPaths = scope .();
|
||||||
|
defer ClearAndDeleteItems(depPaths);
|
||||||
|
void AddDepPath(StringView depPathIn, Project project, Project.Options projectOptions)
|
||||||
|
{
|
||||||
|
var depPath = new String();
|
||||||
|
if (gApp.ResolveConfigString(gApp.mPlatformName, workspaceOptions, project, projectOptions, depPathIn, "dep paths", depPath))
|
||||||
|
{
|
||||||
|
IDEUtils.FixFilePath(depPath);
|
||||||
|
depPaths.Add(depPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let libPath in options.mBuildOptions.mLibPaths)
|
||||||
|
AddLibPath(libPath, project, options);
|
||||||
|
for (let depPath in options.mBuildOptions.mLinkDependencies)
|
||||||
|
AddDepPath(depPath, project, options);
|
||||||
|
|
||||||
List<Project> depProjectList = scope List<Project>();
|
List<Project> depProjectList = scope List<Project>();
|
||||||
gApp.GetDependentProjectList(project, depProjectList);
|
gApp.GetDependentProjectList(project, depProjectList);
|
||||||
if (depProjectList.Count > 0)
|
if (depProjectList.Count > 0)
|
||||||
|
@ -656,6 +685,11 @@ namespace IDE
|
||||||
gApp.ResolveConfigString(gApp.mPlatformName, workspaceOptions, depProject, depProjectOptions, depProjectOptions.mBuildOptions.mOtherLinkFlags, "link flags", linkFlags);
|
gApp.ResolveConfigString(gApp.mPlatformName, workspaceOptions, depProject, depProjectOptions, depProjectOptions.mBuildOptions.mOtherLinkFlags, "link flags", linkFlags);
|
||||||
if (!linkFlags.IsWhiteSpace)
|
if (!linkFlags.IsWhiteSpace)
|
||||||
linkLine.Append(linkFlags, " ");
|
linkLine.Append(linkFlags, " ");
|
||||||
|
|
||||||
|
for (let libPath in depProjectOptions.mBuildOptions.mLibPaths)
|
||||||
|
AddLibPath(libPath, depProject, depProjectOptions);
|
||||||
|
for (let depPath in depProjectOptions.mBuildOptions.mLinkDependencies)
|
||||||
|
AddDepPath(depPath, depProject, depProjectOptions);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -701,6 +735,13 @@ namespace IDE
|
||||||
linkLine.Append(gApp.mInstallDir, @"lib\x64\msvcrt.lib Beef", IDEApp.sRTVersionStr,"MinRT64", minRTModName, ".lib ");
|
linkLine.Append(gApp.mInstallDir, @"lib\x64\msvcrt.lib Beef", IDEApp.sRTVersionStr,"MinRT64", minRTModName, ".lib ");
|
||||||
linkLine.Append("ntdll.lib user32.lib kernel32.lib gdi32.lib winmm.lib shell32.lib ole32.lib rpcrt4.lib version.lib comdlg32.lib chkstk.obj -ignore:4049 -ignore:4217 ");
|
linkLine.Append("ntdll.lib user32.lib kernel32.lib gdi32.lib winmm.lib shell32.lib ole32.lib rpcrt4.lib version.lib comdlg32.lib chkstk.obj -ignore:4049 -ignore:4217 ");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (var libPath in libPaths)
|
||||||
|
{
|
||||||
|
IDEUtils.AppendWithOptionalQuotes(linkLine, libPath);
|
||||||
|
linkLine.Append(" ");
|
||||||
|
}
|
||||||
|
|
||||||
linkLine.Append("-nologo ");
|
linkLine.Append("-nologo ");
|
||||||
//linkLine.Append("-fixed ");
|
//linkLine.Append("-fixed ");
|
||||||
|
|
||||||
|
@ -792,7 +833,9 @@ namespace IDE
|
||||||
cacheStr.AppendF("Copyright\t{}\n", project.mWindowsOptions.mCopyright);
|
cacheStr.AppendF("Copyright\t{}\n", project.mWindowsOptions.mCopyright);
|
||||||
cacheStr.AppendF("FileVersion\t{}\n", project.mWindowsOptions.mFileVersion);
|
cacheStr.AppendF("FileVersion\t{}\n", project.mWindowsOptions.mFileVersion);
|
||||||
cacheStr.AppendF("ProductVersion\t{}\n", project.mWindowsOptions.mProductVersion);
|
cacheStr.AppendF("ProductVersion\t{}\n", project.mWindowsOptions.mProductVersion);
|
||||||
for (var linkDep in options.mBuildOptions.mLinkDependencies)
|
for (var linkDep in depPaths)
|
||||||
|
AddBuildFileDependency(linkDep, true);
|
||||||
|
for (var linkDep in libPaths)
|
||||||
AddBuildFileDependency(linkDep, true);
|
AddBuildFileDependency(linkDep, true);
|
||||||
|
|
||||||
String prevCacheStr = scope .();
|
String prevCacheStr = scope .();
|
||||||
|
|
|
@ -1034,6 +1034,8 @@ namespace IDE
|
||||||
[Reflect]
|
[Reflect]
|
||||||
public BuildCommandTrigger mBuildCommandsOnRun = .Always;
|
public BuildCommandTrigger mBuildCommandsOnRun = .Always;
|
||||||
[Reflect]
|
[Reflect]
|
||||||
|
public List<String> mLibPaths = new List<String>() ~ DeleteContainerAndItems!(_);
|
||||||
|
[Reflect]
|
||||||
public List<String> mLinkDependencies = new List<String>() ~ DeleteContainerAndItems!(_);
|
public List<String> mLinkDependencies = new List<String>() ~ DeleteContainerAndItems!(_);
|
||||||
[Reflect]
|
[Reflect]
|
||||||
public List<String> mPreBuildCmds = new List<String>() ~ DeleteContainerAndItems!(_);
|
public List<String> mPreBuildCmds = new List<String>() ~ DeleteContainerAndItems!(_);
|
||||||
|
@ -1156,6 +1158,7 @@ namespace IDE
|
||||||
Set!(newOptions.mBuildOptions.mTargetName, mBuildOptions.mTargetName);
|
Set!(newOptions.mBuildOptions.mTargetName, mBuildOptions.mTargetName);
|
||||||
Set!(newOptions.mBuildOptions.mOtherLinkFlags, mBuildOptions.mOtherLinkFlags);
|
Set!(newOptions.mBuildOptions.mOtherLinkFlags, mBuildOptions.mOtherLinkFlags);
|
||||||
Set!(newOptions.mBuildOptions.mCLibType, mBuildOptions.mCLibType);
|
Set!(newOptions.mBuildOptions.mCLibType, mBuildOptions.mCLibType);
|
||||||
|
Set!(newOptions.mBuildOptions.mLibPaths, mBuildOptions.mLibPaths);
|
||||||
Set!(newOptions.mBuildOptions.mLinkDependencies, mBuildOptions.mLinkDependencies);
|
Set!(newOptions.mBuildOptions.mLinkDependencies, mBuildOptions.mLinkDependencies);
|
||||||
Set!(newOptions.mBuildOptions.mPreBuildCmds, mBuildOptions.mPreBuildCmds);
|
Set!(newOptions.mBuildOptions.mPreBuildCmds, mBuildOptions.mPreBuildCmds);
|
||||||
Set!(newOptions.mBuildOptions.mPostBuildCmds, mBuildOptions.mPostBuildCmds);
|
Set!(newOptions.mBuildOptions.mPostBuildCmds, mBuildOptions.mPostBuildCmds);
|
||||||
|
@ -1545,6 +1548,7 @@ namespace IDE
|
||||||
data.ConditionalAdd("StackSize", options.mBuildOptions.mStackSize, 0);
|
data.ConditionalAdd("StackSize", options.mBuildOptions.mStackSize, 0);
|
||||||
data.ConditionalAdd("BuildCommandsOnCompile", options.mBuildOptions.mBuildCommandsOnCompile, .Always);
|
data.ConditionalAdd("BuildCommandsOnCompile", options.mBuildOptions.mBuildCommandsOnCompile, .Always);
|
||||||
data.ConditionalAdd("BuildCommandsOnRun", options.mBuildOptions.mBuildCommandsOnRun, .Always);
|
data.ConditionalAdd("BuildCommandsOnRun", options.mBuildOptions.mBuildCommandsOnRun, .Always);
|
||||||
|
WriteStrings("LibPaths", options.mBuildOptions.mLibPaths);
|
||||||
WriteStrings("LinkDependencies", options.mBuildOptions.mLinkDependencies);
|
WriteStrings("LinkDependencies", options.mBuildOptions.mLinkDependencies);
|
||||||
WriteStrings("PreBuildCmds", options.mBuildOptions.mPreBuildCmds);
|
WriteStrings("PreBuildCmds", options.mBuildOptions.mPreBuildCmds);
|
||||||
WriteStrings("PostBuildCmds", options.mBuildOptions.mPostBuildCmds);
|
WriteStrings("PostBuildCmds", options.mBuildOptions.mPostBuildCmds);
|
||||||
|
@ -1879,6 +1883,7 @@ namespace IDE
|
||||||
options.mBuildOptions.mStackSize = data.GetInt("StackSize");
|
options.mBuildOptions.mStackSize = data.GetInt("StackSize");
|
||||||
options.mBuildOptions.mBuildCommandsOnCompile = data.GetEnum<BuildCommandTrigger>("BuildCommandsOnCompile", .Always);
|
options.mBuildOptions.mBuildCommandsOnCompile = data.GetEnum<BuildCommandTrigger>("BuildCommandsOnCompile", .Always);
|
||||||
options.mBuildOptions.mBuildCommandsOnRun = data.GetEnum<BuildCommandTrigger>("BuildCommandsOnRun", .Always);
|
options.mBuildOptions.mBuildCommandsOnRun = data.GetEnum<BuildCommandTrigger>("BuildCommandsOnRun", .Always);
|
||||||
|
ReadStrings("LibPaths", options.mBuildOptions.mLibPaths);
|
||||||
ReadStrings("LinkDependencies", options.mBuildOptions.mLinkDependencies);
|
ReadStrings("LinkDependencies", options.mBuildOptions.mLinkDependencies);
|
||||||
ReadStrings("PreBuildCmds", options.mBuildOptions.mPreBuildCmds);
|
ReadStrings("PreBuildCmds", options.mBuildOptions.mPreBuildCmds);
|
||||||
ReadStrings("PostBuildCmds", options.mBuildOptions.mPostBuildCmds);
|
ReadStrings("PostBuildCmds", options.mBuildOptions.mPostBuildCmds);
|
||||||
|
|
|
@ -680,7 +680,8 @@ namespace IDE.ui
|
||||||
(listViewItem, propEntry) = AddPropertiesItem(root, "C Library", "mBuildOptions.mCLibType");
|
(listViewItem, propEntry) = AddPropertiesItem(root, "C Library", "mBuildOptions.mCLibType");
|
||||||
(listViewItem, propEntry) = AddPropertiesItem(root, "Beef Library", "mBuildOptions.mBeefLibType");
|
(listViewItem, propEntry) = AddPropertiesItem(root, "Beef Library", "mBuildOptions.mBeefLibType");
|
||||||
(listViewItem, propEntry) = AddPropertiesItem(root, "Stack Size", "mBuildOptions.mStackSize");
|
(listViewItem, propEntry) = AddPropertiesItem(root, "Stack Size", "mBuildOptions.mStackSize");
|
||||||
(listViewItem, propEntry) = AddPropertiesItem(root, "Link Dependencies", "mBuildOptions.mLinkDependencies");
|
(listViewItem, propEntry) = AddPropertiesItem(root, "Additional Lib Paths", "mBuildOptions.mLibPaths");
|
||||||
|
(listViewItem, propEntry) = AddPropertiesItem(root, "Rebuild Dependencies", "mBuildOptions.mLinkDependencies");
|
||||||
(listViewItem, propEntry) = AddPropertiesItem(root, "Prebuild Commands", "mBuildOptions.mPreBuildCmds");
|
(listViewItem, propEntry) = AddPropertiesItem(root, "Prebuild Commands", "mBuildOptions.mPreBuildCmds");
|
||||||
(listViewItem, propEntry) = AddPropertiesItem(root, "Postbuild Commands", "mBuildOptions.mPostBuildCmds");
|
(listViewItem, propEntry) = AddPropertiesItem(root, "Postbuild Commands", "mBuildOptions.mPostBuildCmds");
|
||||||
(listViewItem, propEntry) = AddPropertiesItem(root, "Clean Commands", "mBuildOptions.mCleanCmds");
|
(listViewItem, propEntry) = AddPropertiesItem(root, "Clean Commands", "mBuildOptions.mCleanCmds");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue