migrate to new Cpp2Beef

This commit is contained in:
2026-06-07 19:47:58 +02:00
parent 97c80cd88d
commit a0733f8fd4
9 changed files with 200 additions and 180 deletions

View File

@@ -1,11 +1,71 @@
FileVersion = 1 FileVersion = 1
Dependencies = {corlib = "*", corlib = "*"}
[Project] [Project]
Name = "Expat" Name = "Expat"
TargetType = "BeefLib" TargetType = "BeefLib"
StartupObject = "Expat.Program" StartupObject = "Expat.Program"
[Dependencies]
corlib = "*"
corlib = "*"
"CxxBuildTool.git" = {Git = "https://git.unicon-gmbh.de/Rune/CxxBuildTool.git"}
[Configs.Debug.Win64] [Configs.Debug.Win64]
LibPaths = ["$(BuildDir)/libexpat.lib"] LibPaths = ["$(BuildDir)/libexpat.lib"]
PreBuildCmds = ["ReadFile(\"$(ProjectDir)/CxxBuilderPath.txt\", \"CxxBuilderPath\")", "Execute(\"$(Var CxxBuilderPath) *.c -- \\\"src=$(ProjectDir)/libexpat/expat/lib\\\" \\\"builddir=$(BuildDir)\\\" target=$(TargetTriple) \\\"cflags=-I$(ProjectDir)/expat_config\\\" config=$(Configuration) output=libexpat\")"]
[Configs.Debug.Win32]
LibPaths = ["$(BuildDir)/libexpat.lib"]
[Configs.Debug.Linux32]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Debug.Linux64]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Debug.macOS]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Release.Win32]
LibPaths = ["$(BuildDir)/libexpat.lib"]
[Configs.Release.Win64]
LibPaths = ["$(BuildDir)/libexpat.lib"]
[Configs.Release.Linux32]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Release.Linux64]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Release.macOS]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Paranoid.Win32]
LibPaths = ["$(BuildDir)/libexpat.lib"]
[Configs.Paranoid.Win64]
LibPaths = ["$(BuildDir)/libexpat.lib"]
[Configs.Paranoid.Linux32]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Paranoid.Linux64]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Paranoid.macOS]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Test.Win32]
LibPaths = ["$(BuildDir)/libexpat.lib"]
[Configs.Test.Win64]
LibPaths = ["$(BuildDir)/libexpat.lib"]
[Configs.Test.Linux32]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Test.Linux64]
LibPaths = ["$(BuildDir)/libexpat.a"]
[Configs.Test.macOS]
LibPaths = ["$(BuildDir)/libexpat.a"]

View File

@@ -1,6 +1,9 @@
FileVersion = 1 FileVersion = 1
Projects = {Expat = {Path = "."}}
ExtraPlatforms = ["Linux32", "Linux64", "macOS"] ExtraPlatforms = ["Linux32", "Linux64", "macOS"]
[Workspace] [Workspace]
StartupProject = "Expat" StartupProject = "Expat"
[Projects]
Expat = {Path = "."}
"CxxBuildTool.git" = {Git = "https://git.unicon-gmbh.de/Rune/CxxBuildTool.git"}

6
BeefSpace_Lock.toml Normal file
View File

@@ -0,0 +1,6 @@
FileVersion = 1
[Locks."CxxBuildTool.git".Git]
URL = "https://git.unicon-gmbh.de/Rune/CxxBuildTool.git"
Tag = ""
Hash = "b64a6221b8cb235a5e040c8597365dabeef849ca"

View File

@@ -1,66 +1,9 @@
FileVersion = 1 FileVersion = 1
Dependencies = {corlib = "*", "Cpp2Beef.git" = {Git = "https://git.unicon-gmbh.de/BeefBindings/Cpp2Beef.git"}}
[Project] [Project]
Name = "Expat.Setup" Name = "Expat.Setup"
StartupObject = "Expat.Setup.Program" StartupObject = "Expat.Setup.Program"
[Configs.Debug.Win32] [Dependencies]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"] corlib = "*"
"Cpp2Beef.git" = {Git = "https://git.unicon-gmbh.de/Rune/Cpp2Beef.git"}
[Configs.Debug.Win64]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Debug.Linux32]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Debug.Linux64]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Debug.macOS]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Release.Win32]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Release.Win64]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Release.Linux32]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Release.Linux64]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Release.macOS]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Paranoid.Win32]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Paranoid.Win64]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Paranoid.Linux32]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Paranoid.Linux64]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Paranoid.macOS]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Test.Win32]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Test.Win64]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Test.Linux32]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Test.Linux64]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]
[Configs.Test.macOS]
PostBuildCmds = ["cp $(ProjectDir Cpp2Beef.git)/CxxBuilder/dist/CxxBuilderPath.txt $(WorkspaceDir)/../CxxBuilderPath.txt"]

View File

@@ -1,6 +1,9 @@
FileVersion = 1 FileVersion = 1
Projects = {"Expat.Setup" = {Path = "."}, "Cpp2Beef.git" = {Git = "https://git.unicon-gmbh.de/BeefBindings/Cpp2Beef.git"}}
ExtraPlatforms = ["Linux32", "Linux64", "macOS"] ExtraPlatforms = ["Linux32", "Linux64", "macOS"]
[Workspace] [Workspace]
StartupProject = "Expat.Setup" StartupProject = "Expat.Setup"
[Projects]
"Expat.Setup" = {Path = "."}
"Cpp2Beef.git" = {Git = "https://git.unicon-gmbh.de/Rune/Cpp2Beef.git"}

View File

@@ -6,6 +6,6 @@ Tag = ""
Hash = "86db0167f15d08a63a91a19e46f983a5511bac1a" Hash = "86db0167f15d08a63a91a19e46f983a5511bac1a"
[Locks."Cpp2Beef.git".Git] [Locks."Cpp2Beef.git".Git]
URL = "https://git.unicon-gmbh.de/BeefBindings/Cpp2Beef.git" URL = "https://git.unicon-gmbh.de/Rune/Cpp2Beef.git"
Tag = "" Tag = ""
Hash = "69ed2da6254b9d76d0dd48cf20eb6174dde903e2" Hash = "91ddcd4f79cf6df28adff5abfc59cbdc489c7deb"

View File

@@ -21,20 +21,6 @@ class ExpatGenerator : Cpp2BeefGenerator, this(Span<char8*> args)
namespace Expat; namespace Expat;
static class XML
{
public typealias Char = c_char;
public typealias LChar = c_char;
public typealias Index = c_long;
public typealias Size = c_ulong;
public struct Bool : c_uchar
{
public static operator bool(Self b) => b != FALSE;
public static operator Self(bool b) => b ? TRUE : FALSE;
}
}
""") ~ delete _; """) ~ delete _;

View File

@@ -5,20 +5,6 @@ using System.Interop;
namespace Expat; namespace Expat;
static class XML
{
public typealias Char = c_char;
public typealias LChar = c_char;
public typealias Index = c_long;
public typealias Size = c_ulong;
public struct Bool : c_uchar
{
public static operator bool(Self b) => b != FALSE;
public static operator Self(bool b) => b ? TRUE : FALSE;
}
}
extension XML extension XML
{ {
/* /*
@@ -193,15 +179,15 @@ public const let FALSE = ((Bool)0);
The EMPTY, ANY, and MIXED types will only occur at top level. The EMPTY, ANY, and MIXED types will only occur at top level.
*/ */
public typealias Content = cp; [CRepr] public struct cp; public typealias Content = cp;
[CRepr] public struct cp {
public Content_Type type;
public Content_Quant quant;
public Char* name;
public c_uint numchildren;
public Content* children;
}
/* This is called for an element declaration. See above for /* This is called for an element declaration. See above for
description of the model argument. It's the user code's responsibility description of the model argument. It's the user code's responsibility

33
src/Library.bf Normal file
View File

@@ -0,0 +1,33 @@
using System;
using System.Interop;
using CxxBuildTool;
namespace Expat;
static class XML
{
public typealias Char = c_char;
public typealias LChar = c_char;
public typealias Index = c_long;
public typealias Size = c_ulong;
public struct Bool : c_uchar
{
public static operator bool(Self b) => b != FALSE;
public static operator Self(bool b) => b ? TRUE : FALSE;
}
[OnCompile(.TypeDone)]
private static void Build()
{
if (!Compiler.IsBuilding) return;
CxxBuildTool.Ninja(Compiler.ProjectDir + "/libexpat/expat/lib", Compiler.BuildDir + "/" + Compiler.ProjectName, "libexpat", "-I" + Compiler.ProjectDir + "/expat_config",
"xmlparse.c",
"xmlrole.c",
"xmltok.c",
"xmltok_impl.c",
"xmltok_ns.c"
);
}
}