working physics

This commit is contained in:
2026-03-04 00:18:56 +02:00
parent 02898d62c0
commit 9884006888
12 changed files with 462 additions and 53 deletions

View File

@@ -4,15 +4,20 @@
#include "tier1/utlstring.h"
CUtlString rapier_lib;
#define ROOT "../"
#define EXTERNAL ROOT"external/"
#define FUNNYSTDLIB EXTERNAL"funnystdlib/"
ADD_DEPENDENCY_BUILD_FILE(tier0, FUNNYSTDLIB"tier0/build.cpp");
ADD_DEPENDENCY_BUILD_FILE(tier1, FUNNYSTDLIB"tier1/build.cpp");
DECLARE_BUILD_STAGE(rapier)
{
Target_t target = Target_t::DefaultTarget();
target.abi = TARGET_ABI_GNU;
CUtlString rapier_lib;
CUtlString szTarget = target.GetTriplet();
if (CommandLine()->CheckParam("-norust"))
return 0;
rapier_lib = CUtlString("rapier/target/%s/release/librapier_rtt.a",szTarget.GetString());
rapier_lib = CUtlString("target/%s/release/librapier_rtt.a",szTarget.GetString());
V_printf("%s\n",rapier_lib.GetString());
CUtlVector<CUtlString> cargo_args = {
"build",
@@ -29,10 +34,29 @@ DECLARE_BUILD_STAGE(rapier)
"--crate",
"rapier_rtt",
"--output",
"../public/physics_gen.h",
"physics.h",
};
runner->Run("cbindgen", "rapier", cbindgen_args);
runner->Wait();
CProject_t cProject = {};
cProject.m_szName = "RapierPhysics";
cProject.files = {
"physics.cpp",
};
cProject.includeDirectories = {
ROOT"public",
FUNNYSTDLIB"public",
};
cProject.bFPIC = true;
LinkProject_t linkProject = ccompiler->Compile(&cProject);
linkProject.linkType = ELINK_DYNAMIC_LIBRARY;
linkProject.objects.AppendTail({rapier_lib});
linkProject.objects.AppendTail({GET_PROJECT_OBJECT(tier1, "tier1")});
CUtlString sz_libRapierPhysics = linker->Link(&linkProject);
ADD_OUTPUT_OBJECT("physics", sz_libRapierPhysics);
return 0;
};