Files
funnygame/build.cpp
2025-08-20 01:27:25 +03:00

90 lines
2.3 KiB
C++

#include "target.h"
#include "helper.h"
#include "tier1/utlstring.h"
CUtlVector<CUtlString> all_IncludeDirectories = {
"public",
"external",
"external/Vulkan-Headers/include",
"external/Vulkan-Utility-Libraries/include",
"external/volk",
"external/cglm/include",
"external/stb",
"external/SDL/include",
"external/steamworks/public",
"external/GameNetworkingSockets/include",
};
auto szTarget = Target_t::DefaultTarget().GetTriplet();
auto szOutputDir = CUtlString("build/funnygame/%s/game",szTarget.GetString());
bool bStaticBuild = false;
bool bSteam = false;
CUtlString steam_lib;
extern "C" void Preinit()
{
if (Target_t::DefaultTarget().kernel == TARGET_KERNEL_IOS || Target_t::DefaultTarget().kernel == TARGET_KERNEL_WINDOWS)
{
bStaticBuild = true;
}
if (Target_t::DefaultTarget().kernel == TARGET_KERNEL_IOS || Target_t::DefaultTarget().kernel == TARGET_KERNEL_DARWIN)
{
all_IncludeDirectories.AppendTail("external/metal-cpp");
} else {
all_IncludeDirectories.AppendTail("external/Vulkan-Headers/include");
all_IncludeDirectories.AppendTail("external/VulkanMemoryAllocator/include");
}
switch ( Target_t::DefaultTarget().kernel )
{
case TARGET_KERNEL_WINDOWS:
bSteam = true;
steam_lib = "external/steamworks/redistributable_bin/win64/steam_api64.dll";
break;
case TARGET_KERNEL_LINUX:
bSteam = true;
steam_lib = "external/steamworks/redistributable_bin/linux64/libsteam_api.so";
break;
case TARGET_KERNEL_DARWIN:
bSteam = true;
break;
default:
break;
}
if (bSteam)
{
if (bStaticBuild)
{
filesystem2->MakeDirectory(CUtlString("%s/bin", szOutputDir.GetString()));
filesystem2->CopyFile(CUtlString("%s/bin", szOutputDir.GetString()), steam_lib);
} else
{
filesystem2->MakeDirectory(CUtlString("%s/bin", szOutputDir.GetString()));
filesystem2->CopyFile(CUtlString("%s/bin", szOutputDir.GetString()), steam_lib);
}
}
};
CUtlString tier0_lib;
CUtlString engine_lib;
CUtlString server_lib;
CUtlString client_lib;
#include "tier0/__build.cpp"
#include "tier1/__build.cpp"
#include "tier2/__build.cpp"
#include "game/server/__build.cpp"
#include "game/client/__build.cpp"
#include "materialsystem/__build.cpp"
#include "rapier/__build.cpp"
#include "engine/__build.cpp"
#include "launcher/__build.cpp"
#include "funnyassets/__build.cpp"