isle/premake5.lua
2023-06-24 23:44:24 +02:00

146 lines
2.8 KiB
Lua

--require("nmake")
require("nmake2")
newoption {
trigger = "with-lto",
description = "Build with link time optimization"
}
workspace "isle"
language "C++"
configurations { "Debug", "Release" }
startproject "isle"
location "build"
symbols "Full"
warnings "Extra"
symbols "on"
filter { "system:windows" }
configurations { "Vanilla" }
defines { "WIN32", "_WINDOWS" }
platforms {
"win-x86",
"win-amd64",
"win-arm",
"win-arm64"
}
filter { "system:linux" }
platforms {
"linux-x86",
"linux-amd64",
"linux-arm",
"linux-arm64",
}
filter { "system:bsd" }
platforms {
"bsd-x86",
"bsd-amd64",
"bsd-arm",
"bsd-arm64"
}
filter { "system:macosx" }
platforms {
"macosx-arm64",
"macosx-amd64",
}
filter "configurations:Debug"
defines { "DEBUG" }
filter "configurations:not Debug"
defines { "NDEBUG" }
optimize "Speed"
if(_OPTIONS["with-lto"]) then
flags { "LinkTimeOptimization" }
end
filter { "platforms:win*" }
system "windows"
filter { "platforms:linux*" }
system "linux"
filter { "platforms:bsd*" }
system "bsd"
filter { "platforms:macosx*" }
system "macosx"
filter { "platforms:*x86*" }
architecture "x86"
filter { "platforms:*amd64*" }
architecture "amd64"
filter { "platforms:*arm*" }
architecture "ARM"
filter { "platforms:*arm64*" }
architecture "ARM64"
filter { "platforms:macosx-arm64*", "files:**.cpp"}
buildoptions { "-target", "arm64-apple-macos11", "-std=gnu++14" }
filter { "platforms:macosx-arm64*", "files:**.c"}
buildoptions { "-target", "arm64-apple-macos11" }
filter { "platforms:macosx-amd64*", "files:**.cpp"}
buildoptions { "-target", "x86_64-apple-macos10.12", "-std=gnu++14" }
filter { "platforms:macosx-amd64*", "files:**.c"}
buildoptions { "-target", "x86_64-apple-macos10.12" }
filter {}
local function addSrcFiles( prefix )
return prefix .. "/*cpp", prefix .. "/*.h", prefix .. "/*.c", prefix .. "/*.ico", prefix .. "/*.rc"
end
project "isle"
kind "WindowedApp"
targetname "isle"
targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}"
links { "lego1" }
resincludedirs { "." }
dependson { "lego1" }
staticruntime "libc"
--libdirs { "bin/%{cfg.platform}/%{cfg.buildcfg}" }
files { addSrcFiles("ISLE") }
files { addSrcFiles("ISLE/res") }
includedirs { "LEGO1" }
filter { "platforms:win*" }
links { "dsound", "advapi32", "user32", "Gdi32", "Winmm" }
resoptions { "/l 0x409" }
filter "configurations:Vanilla"
defines { "VANILLA_DEFINES" }
filter {}
project "lego1"
--kind "StaticLib"
kind "SharedLib"
targetname "lego1"
targetdir "bin/%{cfg.platform}/%{cfg.buildcfg}"
staticruntime "on"
files { addSrcFiles("LEGO1") }
filter { "platforms:win*" }
links { "dsound", "advapi32", "user32", "Gdi32", "Winmm" }
filter "configurations:Vanilla"
defines { "VANILLA_DEFINES" }
filter {}