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);
|
||||
|
||||
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>();
|
||||
gApp.GetDependentProjectList(project, depProjectList);
|
||||
if (depProjectList.Count > 0)
|
||||
|
@ -656,6 +685,11 @@ namespace IDE
|
|||
gApp.ResolveConfigString(gApp.mPlatformName, workspaceOptions, depProject, depProjectOptions, depProjectOptions.mBuildOptions.mOtherLinkFlags, "link flags", linkFlags);
|
||||
if (!linkFlags.IsWhiteSpace)
|
||||
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("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("-fixed ");
|
||||
|
||||
|
@ -792,7 +833,9 @@ namespace IDE
|
|||
cacheStr.AppendF("Copyright\t{}\n", project.mWindowsOptions.mCopyright);
|
||||
cacheStr.AppendF("FileVersion\t{}\n", project.mWindowsOptions.mFileVersion);
|
||||
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);
|
||||
|
||||
String prevCacheStr = scope .();
|
||||
|
|
|
@ -1034,6 +1034,8 @@ namespace IDE
|
|||
[Reflect]
|
||||
public BuildCommandTrigger mBuildCommandsOnRun = .Always;
|
||||
[Reflect]
|
||||
public List<String> mLibPaths = new List<String>() ~ DeleteContainerAndItems!(_);
|
||||
[Reflect]
|
||||
public List<String> mLinkDependencies = new List<String>() ~ DeleteContainerAndItems!(_);
|
||||
[Reflect]
|
||||
public List<String> mPreBuildCmds = new List<String>() ~ DeleteContainerAndItems!(_);
|
||||
|
@ -1156,6 +1158,7 @@ namespace IDE
|
|||
Set!(newOptions.mBuildOptions.mTargetName, mBuildOptions.mTargetName);
|
||||
Set!(newOptions.mBuildOptions.mOtherLinkFlags, mBuildOptions.mOtherLinkFlags);
|
||||
Set!(newOptions.mBuildOptions.mCLibType, mBuildOptions.mCLibType);
|
||||
Set!(newOptions.mBuildOptions.mLibPaths, mBuildOptions.mLibPaths);
|
||||
Set!(newOptions.mBuildOptions.mLinkDependencies, mBuildOptions.mLinkDependencies);
|
||||
Set!(newOptions.mBuildOptions.mPreBuildCmds, mBuildOptions.mPreBuildCmds);
|
||||
Set!(newOptions.mBuildOptions.mPostBuildCmds, mBuildOptions.mPostBuildCmds);
|
||||
|
@ -1545,6 +1548,7 @@ namespace IDE
|
|||
data.ConditionalAdd("StackSize", options.mBuildOptions.mStackSize, 0);
|
||||
data.ConditionalAdd("BuildCommandsOnCompile", options.mBuildOptions.mBuildCommandsOnCompile, .Always);
|
||||
data.ConditionalAdd("BuildCommandsOnRun", options.mBuildOptions.mBuildCommandsOnRun, .Always);
|
||||
WriteStrings("LibPaths", options.mBuildOptions.mLibPaths);
|
||||
WriteStrings("LinkDependencies", options.mBuildOptions.mLinkDependencies);
|
||||
WriteStrings("PreBuildCmds", options.mBuildOptions.mPreBuildCmds);
|
||||
WriteStrings("PostBuildCmds", options.mBuildOptions.mPostBuildCmds);
|
||||
|
@ -1879,6 +1883,7 @@ namespace IDE
|
|||
options.mBuildOptions.mStackSize = data.GetInt("StackSize");
|
||||
options.mBuildOptions.mBuildCommandsOnCompile = data.GetEnum<BuildCommandTrigger>("BuildCommandsOnCompile", .Always);
|
||||
options.mBuildOptions.mBuildCommandsOnRun = data.GetEnum<BuildCommandTrigger>("BuildCommandsOnRun", .Always);
|
||||
ReadStrings("LibPaths", options.mBuildOptions.mLibPaths);
|
||||
ReadStrings("LinkDependencies", options.mBuildOptions.mLinkDependencies);
|
||||
ReadStrings("PreBuildCmds", options.mBuildOptions.mPreBuildCmds);
|
||||
ReadStrings("PostBuildCmds", options.mBuildOptions.mPostBuildCmds);
|
||||
|
|
|
@ -680,7 +680,8 @@ namespace IDE.ui
|
|||
(listViewItem, propEntry) = AddPropertiesItem(root, "C Library", "mBuildOptions.mCLibType");
|
||||
(listViewItem, propEntry) = AddPropertiesItem(root, "Beef Library", "mBuildOptions.mBeefLibType");
|
||||
(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, "Postbuild Commands", "mBuildOptions.mPostBuildCmds");
|
||||
(listViewItem, propEntry) = AddPropertiesItem(root, "Clean Commands", "mBuildOptions.mCleanCmds");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue