Files
funnygame/fpc/apple/build.cpp
2026-01-02 17:45:00 +02:00

51 lines
1.2 KiB
C++

#include "c.h"
#include "swift.h"
#include "ld.h"
#include "helper.h"
#include "tier0/platform.h"
#include "tier1/interface.h"
ADD_DEPENDENCY_BUILD_FILE(tier1, "../../tier1/build.cpp");
DECLARE_BUILD_STAGE(xtool)
{
if (!linker->IsLibraryExists("swiftCore"))
{
V_printf("Swift is not installed\n");
return 0;
}
CUtlString outputProject = CUtlString("fpcxtool/.build/%s/debug/libfpcxtool.a",Target_t::HostTarget().GetTriplet().GetString());
V_printf("SWIFT %s\n", outputProject.GetString());
CUtlVector<CUtlString> args = {"build"};
runner->Run("swift","fpcxtool", args);
runner->Wait();
ADD_OUTPUT_OBJECT("xtool", outputProject);
return 0;
};
DECLARE_BUILD_STAGE(xtool_cpp)
{
CProject_t compileProject = {};
LinkProject_t ldProject = {};
CUtlString szOutputProject = "";
compileProject.m_szName = "xtool";
compileProject.files = {
"fpcxtool/sign.cpp"
};
compileProject.includeDirectories = {"../public","../../public"};
compileProject.bFPIC = true;
ldProject = ccompiler->Compile(&compileProject);
ldProject.linkType = ELINK_DYNAMIC_LIBRARY;
ldProject.libraryObjects.AppendTail(GET_PROJECT_LIBRARY(xtool, "xtool"));
szOutputProject = linker->Link(&ldProject);
ADD_OUTPUT_OBJECT("xtool", szOutputProject);
return 0;
}