nishbox/premake5.lua
NishiOwO 9d662dc88b
fix vs2008/premake itself
Co-authored-by: penguin2233 <dm4.bade@gmail.com>
2025-04-13 22:16:00 +09:00

188 lines
3.2 KiB
Lua

workspace("NishBox")
configurations({
"Debug",
"Release"
})
platforms({
"Native",
"Win32",
"Win64"
})
defaultplatform("Native")
filter("platforms:Win32")
system("windows")
architecture("x86")
gccprefix("i686-w64-mingw32-")
filter("platforms:Win64")
system("windows")
architecture("x86_64")
gccprefix("x86_64-w64-mingw32-")
filter({})
newaction({
trigger = "clean",
description = "Clean the files",
execute = function()
os.rmdir("bin")
os.rmdir("obj")
os.rmdir("lib")
os.rmdir("engine/bin")
os.rmdir("engine/obj")
os.rmdir("engine/lib")
end
})
function msvc_filters()
-- Manifest fix by penguin2233
require('vstudio')
premake.override(premake.vstudio.vc200x, "generateManifest", function(base, cfg, toolset)
if cfg.flags.NoManifest then
premake.w('GenerateManifest="false"')
end
end)
filter({})
characterset("MBCS")
for k,rt in ipairs({"Debug", "Release"}) do
filter({
"options:cc=msc",
"options:engine=dynamic",
"configurations:" .. rt
})
runtime(rt)
staticruntime("Off")
filter({
"options:cc=msc",
"options:engine=static",
"configurations:" .. rt
})
runtime(rt)
staticruntime("On")
end
filter({})
end
include "engine"
project("EngineInfo")
filter("system:windows")
kind("WindowedApp")
filter("system:not windows")
kind("ConsoleApp")
filter({})
language("C")
targetdir("bin/%{cfg.buildcfg}/%{cfg.platform}")
targetname("nishbox_engineinfo")
includedirs({
"engine/include"
})
files({
"src/engineinfo/*.c"
})
removefiles({
"src/engineinfo/main_windows.c"
})
filter("system:windows")
removefiles({
"src/engineinfo/main_console.c"
})
files({
"src/engineinfo/main_windows.c"
})
filter({})
links({
"GoldFish"
})
-- Call this if you are gonna use my engine...
gf_link_stuffs("options:engine=static")
filter("system:windows")
defines({
"FD_ENGINEINFO"
})
files({
"src/*.rc"
})
filter("configurations:Debug")
defines({
"DEBUG"
})
symbols("On")
filter("configurations:Release")
defines({
"NDEBUG"
})
optimize("On")
msvc_filters()
project("NishBoxServer")
kind("ConsoleApp")
language("C")
targetdir("bin/%{cfg.buildcfg}/%{cfg.platform}")
targetname("nishbox_server")
includedirs({
"engine/include"
})
files({
"src/server/*.c"
})
links({
"GoldFish"
})
-- Call this if you are gonna use my engine...
gf_link_stuffs("options:engine=static")
filter("system:windows")
defines({
"FD_SERVER"
})
files({
"src/*.rc"
})
filter("configurations:Debug")
defines({
"DEBUG"
})
symbols("On")
filter("configurations:Release")
defines({
"NDEBUG"
})
optimize("On")
msvc_filters()
project("NishBox")
kind("ConsoleApp")
language("C")
targetdir("bin/%{cfg.buildcfg}/%{cfg.platform}")
targetname("nishbox")
includedirs({
"engine/include"
})
files({
"src/client/*.c"
})
links({
"GoldFish"
})
-- Call this if you are gonna use my engine...
gf_link_stuffs("options:engine=static")
filter("system:windows")
defines({
"FD_NISHBOX"
})
files({
"src/*.rc"
})
filter("configurations:Debug")
defines({
"DEBUG"
})
symbols("On")
filter("configurations:Release")
defines({
"NDEBUG"
})
optimize("On")
msvc_filters()