94 lines
3.3 KiB
Lua
94 lines
3.3 KiB
Lua
set_project("Frostbite2D")
|
|
set_version("1.0.0")
|
|
set_license("MIT")
|
|
|
|
set_languages("c++17")
|
|
set_encodings("utf-8")
|
|
|
|
add_rules("mode.debug", "mode.release")
|
|
|
|
if not is_plat("switch") then
|
|
add_requires("libsdl2", {configs = {shared = true}})
|
|
add_requires("libsdl2_image", {configs = {shared = true}})
|
|
add_requires("libsdl2_mixer", {configs = {shared = true}})
|
|
add_requires("libsdl2_ttf", {configs = {shared = true}})
|
|
add_requires("glm")
|
|
add_requires("zlib")
|
|
end
|
|
|
|
includes("engine.lua")
|
|
|
|
if is_plat("windows") then
|
|
target("Frostbite2DWindowsSmoke")
|
|
set_kind("binary")
|
|
add_files("examples/windows_smoke/main.cpp")
|
|
add_deps("Frostbite2D")
|
|
add_packages("libsdl2")
|
|
add_packages("libsdl2_image")
|
|
add_packages("libsdl2_mixer")
|
|
add_packages("libsdl2_ttf")
|
|
add_packages("glm")
|
|
add_packages("zlib")
|
|
add_syslinks("imm32")
|
|
target_end()
|
|
|
|
target("Frostbite2DGame")
|
|
set_kind("binary")
|
|
add_files("game/src/**.cpp")
|
|
add_deps("Frostbite2D")
|
|
add_packages("libsdl2")
|
|
add_packages("libsdl2_image")
|
|
add_packages("libsdl2_mixer")
|
|
add_packages("libsdl2_ttf")
|
|
add_packages("glm")
|
|
add_packages("zlib")
|
|
add_syslinks("imm32")
|
|
after_build(function (target)
|
|
local assetsdir = path.join(target:targetdir(), "assets")
|
|
os.rm(assetsdir)
|
|
os.mkdir(assetsdir)
|
|
os.cp(path.join(os.projectdir(), "game/assets/*"), assetsdir)
|
|
end)
|
|
target_end()
|
|
end
|
|
|
|
if is_plat("switch") then
|
|
target("Frostbite2DGameSwitch")
|
|
set_kind("binary")
|
|
set_filename("Frostbite2DGame.elf")
|
|
add_files("game/src/**.cpp")
|
|
add_deps("Frostbite2D")
|
|
add_cxflags("-D__SWITCH__", "-fPIE", {public = true})
|
|
add_ldflags("-specs=" .. path.join(os.getenv("DEVKITPRO") or "C:/devkitPro", "libnx/switch.specs"), "-fPIE", {force = true})
|
|
after_build(function (target)
|
|
local outdir = path.join(target:targetdir(), "switch_game")
|
|
local assetsdir = path.join(outdir, "assets")
|
|
os.mkdir(outdir)
|
|
os.rm(assetsdir)
|
|
os.mkdir(assetsdir)
|
|
os.cp(path.join(os.projectdir(), "game/assets/*"), assetsdir)
|
|
|
|
local devkitpro = os.getenv("DEVKITPRO") or "C:/devkitPro"
|
|
local tools = path.join(devkitpro, "tools/bin")
|
|
local libnx = path.join(devkitpro, "libnx")
|
|
local nacp = path.join(outdir, "control.nacp")
|
|
local nro = path.join(outdir, "NSUnknownGame.nro")
|
|
local romfsdir = path.join(outdir, "romfs")
|
|
local romfsassetsdir = path.join(romfsdir, "assets")
|
|
os.rm(romfsdir)
|
|
os.mkdir(romfsdir)
|
|
os.mkdir(romfsassetsdir)
|
|
os.cp(path.join(os.projectdir(), "game/assets/*"), romfsassetsdir)
|
|
os.execv(path.join(tools, "nacptool.exe"), {
|
|
"--create", "NS Unknown Game", "Frostbite2D", "1.0.0", nacp
|
|
})
|
|
os.execv(path.join(tools, "elf2nro.exe"), {
|
|
target:targetfile(), nro,
|
|
"--nacp=" .. nacp,
|
|
"--icon=" .. path.join(libnx, "default_icon.jpg"),
|
|
"--romfsdir=" .. romfsdir
|
|
})
|
|
end)
|
|
target_end()
|
|
end
|