mirror of
https://github.com/beefytech/Beef.git
synced 2025-07-04 15:26:00 +02:00
Removed "Dynamic Library" target type, replaced by Build Kind
This commit is contained in:
parent
1c1cb1ac49
commit
7ae8599916
8 changed files with 163 additions and 98 deletions
|
@ -296,7 +296,7 @@ namespace IDE
|
|||
|
||||
bool isTest = options.mBuildOptions.mBuildKind == .Test;
|
||||
bool isExe = ((project.mGeneralOptions.mTargetType != Project.TargetType.BeefLib) && (project.mGeneralOptions.mTargetType != Project.TargetType.BeefTest)) || (isTest);
|
||||
bool isDynLib = project.mGeneralOptions.mTargetType == Project.TargetType.BeefDynLib;
|
||||
bool isDynLib = (project.mGeneralOptions.mTargetType == Project.TargetType.BeefLib) && (options.mBuildOptions.mBuildKind == .DynamicLib);
|
||||
|
||||
if (options.mBuildOptions.mBuildKind == .StaticLib)
|
||||
isExe = false;
|
||||
|
@ -525,7 +525,7 @@ namespace IDE
|
|||
|
||||
bool isTest = options.mBuildOptions.mBuildKind == .Test;
|
||||
bool isExe = ((project.mGeneralOptions.mTargetType != Project.TargetType.BeefLib) && (project.mGeneralOptions.mTargetType != Project.TargetType.BeefTest)) || (isTest);
|
||||
bool isDynLib = project.mGeneralOptions.mTargetType == Project.TargetType.BeefDynLib;
|
||||
bool isDynLib = (project.mGeneralOptions.mTargetType == Project.TargetType.BeefLib) && (options.mBuildOptions.mBuildKind == .DynamicLib);
|
||||
|
||||
if (isExe || isDynLib)
|
||||
{
|
||||
|
@ -761,7 +761,8 @@ namespace IDE
|
|||
}
|
||||
}
|
||||
|
||||
if (depProject.mGeneralOptions.mTargetType == .BeefDynLib)
|
||||
bool depIsDynLib = (depProject.mGeneralOptions.mTargetType == Project.TargetType.BeefLib) && (depOptions.mBuildOptions.mBuildKind == .DynamicLib);
|
||||
if (depIsDynLib)
|
||||
{
|
||||
if (mImpLibMap.TryGetValue(depProject, var libPath))
|
||||
{
|
||||
|
@ -797,9 +798,9 @@ namespace IDE
|
|||
|
||||
bool isTest = options.mBuildOptions.mBuildKind == .Test;
|
||||
bool isExe = ((project.mGeneralOptions.mTargetType != Project.TargetType.BeefLib) && (project.mGeneralOptions.mTargetType != Project.TargetType.BeefTest)) || (isTest);
|
||||
if (options.mBuildOptions.mBuildKind == .StaticLib)
|
||||
isExe = false;
|
||||
|
||||
if (options.mBuildOptions.mBuildKind == .DynamicLib)
|
||||
isExe = true;
|
||||
|
||||
if (isExe)
|
||||
{
|
||||
String linkLine = scope String();
|
||||
|
@ -814,7 +815,7 @@ namespace IDE
|
|||
linkLine.Append("-subsystem:windows ");
|
||||
else if (project.mGeneralOptions.mTargetType == .C_GUIApplication)
|
||||
linkLine.Append("-subsystem:console ");
|
||||
else if (project.mGeneralOptions.mTargetType == .BeefDynLib)
|
||||
else if (project.mGeneralOptions.mTargetType == .BeefLib)
|
||||
{
|
||||
linkLine.Append("-dll ");
|
||||
|
||||
|
@ -885,7 +886,7 @@ namespace IDE
|
|||
|
||||
linkLine.Append("-nologo ");
|
||||
|
||||
if ((project.mGeneralOptions.mTargetType == .BeefDynLib) && (workspaceOptions.mAllowHotSwapping) && (is64Bit))
|
||||
if ((project.mGeneralOptions.mTargetType == .BeefLib) && (workspaceOptions.mAllowHotSwapping) && (is64Bit))
|
||||
{
|
||||
// This helps to ensure that DLLs have enough hot swapping space after them
|
||||
int nameHash = targetPath.GetHashCode();
|
||||
|
@ -1204,7 +1205,7 @@ namespace IDE
|
|||
Directory.CreateDirectory(targetDir).IgnoreError();
|
||||
}
|
||||
|
||||
if (project.mGeneralOptions.mTargetType == .BeefDynLib)
|
||||
if (project.mGeneralOptions.mTargetType == .BeefLib)
|
||||
{
|
||||
if (targetPath.EndsWith(".dll", .InvariantCultureIgnoreCase))
|
||||
{
|
||||
|
|
|
@ -8884,11 +8884,15 @@ namespace IDE
|
|||
{
|
||||
if (project.mGeneralOptions.mTargetType.IsBeefApplication)
|
||||
targetType = .BeefApplication_StaticLib;
|
||||
else if (project.mGeneralOptions.mTargetType == .BeefLib)
|
||||
targetType = .BeefLib_Static;
|
||||
}
|
||||
else if (options.mBuildOptions.mBuildKind == .DynamicLib)
|
||||
{
|
||||
if (project.mGeneralOptions.mTargetType.IsBeefApplication)
|
||||
targetType = .BeefApplication_DynamicLib;
|
||||
else if (project.mGeneralOptions.mTargetType == .BeefLib)
|
||||
targetType = .BeefLib_Dynamic;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9418,48 +9422,28 @@ namespace IDE
|
|||
|
||||
let platformType = Workspace.PlatformType.GetFromName(platformName);
|
||||
|
||||
if (options.mBuildOptions.mBuildKind.IsApplicationLib)
|
||||
switch (platformType)
|
||||
{
|
||||
switch (platformType)
|
||||
{
|
||||
case .Windows:
|
||||
case .Windows:
|
||||
if (options.mBuildOptions.mBuildKind == .DynamicLib)
|
||||
newString.Append(".dll");
|
||||
else if ((options.mBuildOptions.mBuildKind == .StaticLib) || (project.mGeneralOptions.mTargetType == .BeefLib))
|
||||
newString.Append(".lib");
|
||||
case .iOS:
|
||||
if (options.mBuildOptions.mBuildKind == .DynamicLib)
|
||||
newString.Append(".dylib");
|
||||
else
|
||||
newString.Append(".a");
|
||||
case .Wasm:
|
||||
if (!newString.Contains('.'))
|
||||
newString.Append(".html");
|
||||
default:
|
||||
if (options.mBuildOptions.mBuildKind == .DynamicLib)
|
||||
newString.Append(".so");
|
||||
else
|
||||
newString.Append(".a");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (platformType)
|
||||
{
|
||||
case .Windows:
|
||||
if (project.mGeneralOptions.mTargetType == .BeefLib)
|
||||
newString.Append(".lib");
|
||||
else if (project.mGeneralOptions.mTargetType == .BeefDynLib)
|
||||
newString.Append(".dll");
|
||||
else if (project.mGeneralOptions.mTargetType != .CustomBuild)
|
||||
newString.Append(".exe");
|
||||
case .macOS:
|
||||
if (project.mGeneralOptions.mTargetType == .BeefDynLib)
|
||||
newString.Append(".dylib");
|
||||
case .Wasm:
|
||||
if (!newString.Contains('.'))
|
||||
newString.Append(".html");
|
||||
default:
|
||||
if (project.mGeneralOptions.mTargetType == .BeefDynLib)
|
||||
newString.Append(".so");
|
||||
}
|
||||
else if (project.mGeneralOptions.mTargetType != .CustomBuild)
|
||||
newString.Append(".exe");
|
||||
case .macOS:
|
||||
if (options.mBuildOptions.mBuildKind == .DynamicLib)
|
||||
newString.Append(".dylib");
|
||||
else if (options.mBuildOptions.mBuildKind == .StaticLib)
|
||||
newString.Append(".a");
|
||||
case .Wasm:
|
||||
if (!newString.Contains('.'))
|
||||
newString.Append(".html");
|
||||
default:
|
||||
if (options.mBuildOptions.mBuildKind == .DynamicLib)
|
||||
newString.Append(".so");
|
||||
else if (options.mBuildOptions.mBuildKind == .StaticLib)
|
||||
newString.Append(".a");
|
||||
}
|
||||
}
|
||||
IDEUtils.FixFilePath(newString);
|
||||
|
@ -9480,9 +9464,11 @@ namespace IDE
|
|||
case "LinkFlags":
|
||||
newString = scope:ReplaceBlock String();
|
||||
|
||||
bool isBeefDynLib = (project.mGeneralOptions.mTargetType == .BeefLib) && (options.mBuildOptions.mBuildKind == .DynamicLib);
|
||||
|
||||
if ((project.mGeneralOptions.mTargetType == .BeefConsoleApplication) ||
|
||||
(project.mGeneralOptions.mTargetType == .BeefGUIApplication) ||
|
||||
(project.mGeneralOptions.mTargetType == .BeefDynLib) ||
|
||||
(isBeefDynLib) ||
|
||||
(options.mBuildOptions.mBuildKind == .Test))
|
||||
{
|
||||
let platformType = Workspace.PlatformType.GetFromName(platformName);
|
||||
|
|
|
@ -866,14 +866,6 @@ namespace IDE
|
|||
case StaticLib;
|
||||
case DynamicLib;
|
||||
case NotSupported;
|
||||
|
||||
public bool IsApplicationLib
|
||||
{
|
||||
get
|
||||
{
|
||||
return (this == .StaticLib) || (this == .DynamicLib);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public enum COptimizationLevel
|
||||
|
@ -916,13 +908,14 @@ namespace IDE
|
|||
case BeefConsoleApplication,
|
||||
BeefGUIApplication,
|
||||
BeefLib,
|
||||
BeefDynLib,
|
||||
CustomBuild,
|
||||
BeefTest,
|
||||
C_ConsoleApplication,
|
||||
C_GUIApplication,
|
||||
BeefApplication_StaticLib,
|
||||
BeefApplication_DynamicLib;
|
||||
BeefApplication_DynamicLib,
|
||||
BeefLib_Static,
|
||||
BeefLib_Dynamic;
|
||||
|
||||
public bool IsBeef
|
||||
{
|
||||
|
@ -933,7 +926,6 @@ namespace IDE
|
|||
case BeefConsoleApplication,
|
||||
BeefGUIApplication,
|
||||
BeefLib,
|
||||
BeefDynLib,
|
||||
BeefTest:
|
||||
return true;
|
||||
default:
|
||||
|
@ -956,6 +948,22 @@ namespace IDE
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsBeefApplicationOrLib
|
||||
{
|
||||
get
|
||||
{
|
||||
switch (this)
|
||||
{
|
||||
case BeefConsoleApplication,
|
||||
BeefGUIApplication,
|
||||
BeefLib:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class WindowsOptions
|
||||
|
@ -1863,7 +1871,8 @@ namespace IDE
|
|||
strs.Add(cmd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
bool isBeefDynLib = false;
|
||||
using (data.Open("Project"))
|
||||
{
|
||||
if (!IsSingleFile)
|
||||
|
@ -1889,6 +1898,9 @@ namespace IDE
|
|||
mGeneralOptions.mTargetType = .BeefGUIApplication;
|
||||
case "C_WindowsApplication":
|
||||
mGeneralOptions.mTargetType = .C_GUIApplication;
|
||||
case "BeefDynLib":
|
||||
mGeneralOptions.mTargetType = .BeefLib;
|
||||
isBeefDynLib = true;
|
||||
default:
|
||||
mGeneralOptions.mTargetType = data.GetEnum<TargetType>("TargetType", GetDefaultTargetType());
|
||||
}
|
||||
|
@ -1962,6 +1974,8 @@ namespace IDE
|
|||
|
||||
// Build
|
||||
options.mBuildOptions.mBuildKind = data.GetEnum<BuildKind>("BuildKind", isTest ? .Test : .Normal);
|
||||
if ((isBeefDynLib) && (options.mBuildOptions.mBuildKind == .Normal))
|
||||
options.mBuildOptions.mBuildKind = .DynamicLib;
|
||||
data.GetString("TargetDirectory", options.mBuildOptions.mTargetDirectory, "$(BuildDir)");
|
||||
data.GetString("TargetName", options.mBuildOptions.mTargetName, "$(ProjectName)");
|
||||
data.GetString("OtherLinkFlags", options.mBuildOptions.mOtherLinkFlags, "$(LinkFlags)");
|
||||
|
|
|
@ -16,11 +16,10 @@ namespace IDE.ui
|
|||
public PathEditWidget mDirectoryEdit;
|
||||
public EditWidget mNameEdit;
|
||||
public DarkComboBox mTargetComboBox;
|
||||
static String[6] sApplicationTypeNames =
|
||||
static String[5] sApplicationTypeNames =
|
||||
.("Console Application",
|
||||
"GUI Application",
|
||||
"Library",
|
||||
"Dynamic Library",
|
||||
"Custom Build",
|
||||
"Test");
|
||||
public bool mNameChanged;
|
||||
|
|
|
@ -622,7 +622,6 @@ namespace IDE.ui
|
|||
"Console Application",
|
||||
"GUI Application",
|
||||
"Library",
|
||||
"Dynamic Library",
|
||||
"Custom Build",
|
||||
"Test"
|
||||
));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue