Improved Build Files

This commit is contained in:
Light 2021-08-21 15:53:36 +04:30
parent 2c7a24431c
commit 0080f6837c
10 changed files with 163 additions and 93 deletions

2
.gitignore vendored
View file

@ -1,7 +1,7 @@
# Directories
.vs/
bin/
bin-int/
bin-obj/
# VS Files
**.vcxproj**

View file

@ -1,3 +1,5 @@
include "dependencies.lua"
workspace "Light"
location "../"
startproject "Mirror"
@ -12,18 +14,19 @@ workspace "Light"
}
-- Directories --
dependenciesdir = "%{wks.location}/Dependencies/"
outputdir = "%{cfg.buildcfg}/%{cfg.system}/%{cfg.architecture}/%{prj.name}"
target_dir = "%{wks.location}/bin/%{cfg.buildcfg}/%{cfg.system}/%{cfg.architecture}/%{prj.name}"
object_dir = "%{wks.location}/bin-obj/%{cfg.buildcfg}/%{cfg.system}/%{cfg.architecture}/%{prj.name}"
-- Projects --
include "../Engine/build.lua"
include "../Mirror/build.lua"
include "../Sandbox/build.lua"
group ""
include "../Engine/build.lua"
include "../Mirror/build.lua"
include "../Sandbox/build.lua"
-- Dependencies --
group "Dependencies"
include "../Dependencies/GLFW/build.lua"
include "../Dependencies/GLAD/build.lua"
include "../Dependencies/imgui/build.lua"
include "../Dependencies/stb_image/build.lua"
include "../Dependencies/entt/build.lua"
include "../Dependencies/GLFW/build.lua"
include "../Dependencies/GLAD/build.lua"
include "../Dependencies/imgui/build.lua"
include "../Dependencies/stb_image/build.lua"
include "../Dependencies/entt/build.lua"

View file

@ -0,0 +1,31 @@
-- environment directories
vulkan_sdk_env_dir = os.getenv("VULKAN_SDK")
-- include directories
include_dirs = {}
include_dirs["entt"] = "%{wks.location}/Dependencies/entt/";
include_dirs["glad"] = "%{wks.location}/Dependencies/GLAD/include";
include_dirs["glfw"] = "%{wks.location}/Dependencies/GLFW/include";
include_dirs["glm"] = "%{wks.location}/Dependencies/glm";
include_dirs["imgui"] = "%{wks.location}/Dependencies/imgui";
include_dirs["imgui_backends"] = "%{wks.location}/Dependencies/imgui/backends";
include_dirs["spdlog"] = "%{wks.location}/Dependencies/spdlog/include";
include_dirs["stb_image"] = "%{wks.location}/Dependencies/stb_image";
include_dirs["volk"] = "%{wks.location}/Dependencies/volk";
include_dirs["engine"] = "%{wks.location}/Engine/src/Engine";
include_dirs["engine_platform_graphics"] = "%{wks.location}/Engine/src/Platform/GraphicsAPI";
include_dirs["engine_platform_os"] = "%{wks.location}/Engine/src/Platform/OS";
include_dirs["vulkan_sdk"] = "%{vulkan_sdk_env_dir}/Include";
-- library directories
lib_dirs = {}
lib_dirs["vulkan_sdk"] = "%{vulkan_sdk_env_dir}/Lib/"
-- libraries
libs = {}
libs["shaderc"] = "%{vulkan_sdk_env_dir}/Lib/shaderc_shared.lib"
libs["spirv_cross"] = "%{vulkan_sdk_env_dir}/Lib/spirv-cross-core.lib"

View file

@ -1,10 +1,10 @@
project "GLAD"
-- Output Directories --
location "%{wks.location}/Dependencies/GLAD"
-- Output Directories --
targetdir ("%{wks.location}/bin/" .. outputdir)
objdir ("%{wks.location}/bin-int/" .. outputdir)
targetdir (target_dir)
objdir (object_dir)
-- Compiler --
kind "StaticLib"
@ -13,13 +13,14 @@ project "GLAD"
-- Project Files ---
files
{
"**.c",
"**.h",
"src/glad.c",
"include/glad/glad.h",
"include/KHR/khrplatform.h",
"build.lua"
"%{prj.location}/build.lua",
}
-- Dependencies --
-- Includes --
includedirs
{
"%{prj.location}/include/"
@ -51,4 +52,4 @@ project "GLAD"
-- distribution
filter "configurations:Distribution"
runtime "Release"
optimize "on"
optimize "full"

View file

@ -1,17 +1,15 @@
project "entt"
-- Output Directories --
location "%{wks.location}/Dependencies/entt"
-- Output Directories --
targetdir ("%{wks.location}/bin/" .. outputdir)
objdir ("%{wks.location}/bin-int/" .. outputdir)
targetdir (target_dir)
objdir (object_dir)
-- Compiler --
kind "StaticLib"
language "C++"
cppdialect "C++17"
optimize "on"
-- Project Files ---
files
@ -19,7 +17,7 @@ project "entt"
"entt.cpp",
"entt.hpp",
"build.lua"
"%{prj.location}/build.lua",
}
--- Filters ---
@ -33,4 +31,19 @@ project "entt"
"_CRT_SECURE_NO_WARNINGS",
}
flags { "MultiProcessorCompile" }
flags { "MultiProcessorCompile" }
-- debug
filter "configurations:Debug"
runtime "Debug"
symbols "on"
-- release
filter "configurations:Release"
runtime "Release"
optimize "on"
-- distribution
filter "configurations:Distribution"
runtime "Release"
optimize "full"

View file

@ -1,16 +1,14 @@
project "stb_image"
-- Output Directories --
location "%{wks.location}/Dependencies/stb_image"
-- Output Directories --
targetdir ("%{wks.location}/bin/" .. outputdir)
objdir ("%{wks.location}/bin-int/" .. outputdir)
targetdir (target_dir)
objdir (object_dir)
-- Compiler --
kind "StaticLib"
language "C"
optimize "on"
-- Project Files ---
files
@ -18,7 +16,7 @@ project "stb_image"
"stb_image.c",
"stb_image.h",
"build.lua"
"%{prj.location}/build.lua",
}
--- Filters ---
@ -32,4 +30,19 @@ project "stb_image"
"_CRT_SECURE_NO_WARNINGS",
}
flags { "MultiProcessorCompile" }
flags { "MultiProcessorCompile" }
-- debug
filter "configurations:Debug"
runtime "Debug"
symbols "on"
-- release
filter "configurations:Release"
runtime "Release"
optimize "on"
-- distribution
filter "configurations:Distribution"
runtime "Release"
optimize "full"

View file

@ -3,60 +3,57 @@ project "Engine"
-- Output Directories --
location "%{wks.location}/Engine/"
targetdir ("%{wks.location}/bin/" .. outputdir)
objdir ("%{wks.location}/bin-int/" .. outputdir)
targetdir (target_dir)
objdir (object_dir)
-- Compiler --
-- kind
kind "StaticLib"
-- language
language "C++"
cppdialect "C++17"
-- pch
pchsource "src/Engine/ltpch.cpp"
pchheader "ltpch.h"
-- Project Files ---
-- Project Files --
files
{
-- src
"%{prj.location}/src/**.h",
"%{prj.location}/src/**.cpp",
-- premake
-- res
"%{prj.location}/res/**",
-- build.lua
"%{prj.location}/build.lua",
"%{prj.location}/res/**"
}
-- Dependencies --
-- Includes --
includedirs
{
-- engine
"%{prj.location}" ,
"%{prj.location}/src" ,
"%{prj.location}/src/Engine" ,
"%{prj.location}/src/Platform/GraphicsAPI" ,
"%{prj.location}/src/Platform/OS" ,
"%{include_dirs.engine}",
"%{include_dirs.engine_platform_graphics}",
"%{include_dirs.engine_platform_os}",
-- 3rd party
(dependenciesdir .. "spdlog/include/"),
(dependenciesdir .. "GLFW/include/"),
(dependenciesdir .. "GLAD/include"),
(dependenciesdir .. "imgui/backends"),
(dependenciesdir .. "imgui/"),
(dependenciesdir .. "stb_image/"),
(dependenciesdir .. "glm/"),
(dependenciesdir .. "entt/"),
"%{include_dirs.entt}",
"%{include_dirs.glad}",
"%{include_dirs.glfw}",
"%{include_dirs.glm}",
"%{include_dirs.imgui}",
"%{include_dirs.imgui_backends}",
"%{include_dirs.spdlog}",
"%{include_dirs.stb_image}",
"%{include_dirs.volk}",
}
-- Links --
links
{
"GLFW" ,
"GLAD" ,
"ImGui" ,
"GLFW",
"GLAD",
"ImGui",
"stb_image",
"entt",
}
@ -70,9 +67,9 @@ project "Engine"
links
{
"d3d11.lib" ,
"dxguid.lib" ,
"D3DCompiler.lib" ,
"d3d11.lib",
"dxguid.lib",
"D3DCompiler.lib",
}
flags { "MultiProcessorCompile" }
@ -112,7 +109,7 @@ project "Engine"
-- distribution
filter "configurations:Distribution"
defines "LIGHT_DIST"
optimize "on"
optimize "full"
filter { "files:**.hlsl" }
flags "ExcludeFromBuild"

View file

@ -3,8 +3,8 @@ project "Mirror"
-- Output Directories --
location "%{wks.location}/Mirror/"
targetdir ("%{wks.location}/bin/" .. outputdir)
objdir ("%{wks.location}/bin-int/" .. outputdir)
targetdir (target_dir)
objdir (object_dir)
-- Compiler --
kind "ConsoleApp"
@ -14,29 +14,35 @@ project "Mirror"
-- Project Files ---
files
{
-- src
"%{prj.location}/src/**.h",
"%{prj.location}/src/**.cpp",
-- res
"%{prj.location}/res/**",
-- build.lua
"%{prj.location}/build.lua",
}
-- Dependencies --
-- Includes --
includedirs
{
-- Engine
"%{wks.location}/Engine/src",
"%{wks.location}/Engine/src/Engine",
"%{wks.location}/Engine/src/Platform/GraphicsAPI",
"%{wks.location}/Engine/src/Platform/OS",
-- engine
"%{include_dirs.engine}",
"%{include_dirs.engine_platform_graphics}",
"%{include_dirs.engine_platform_os}",
-- 3rd party
(dependenciesdir .. "spdlog/include/"),
(dependenciesdir .. "imgui/"),
(dependenciesdir .. "imgui/backends"),
(dependenciesdir .. "glm/"),
(dependenciesdir .. "entt/"),
"%{include_dirs.entt}",
"%{include_dirs.glm}",
"%{include_dirs.imgui}",
"%{include_dirs.imgui_backends}",
"%{include_dirs.spdlog}",
"%{include_dirs.stb_image}",
}
-- Links --
links
{
"Engine",
@ -79,4 +85,4 @@ project "Mirror"
-- distribution
filter "configurations:Distribution"
defines "LIGHT_DIST"
optimize "on"
optimize "full"

View file

@ -3,8 +3,8 @@ project "Sandbox"
-- Output Directories --
location "%{wks.location}/Sandbox/"
targetdir ("%{wks.location}/bin/" .. outputdir)
objdir ("%{wks.location}/bin-int/" .. outputdir)
targetdir (target_dir)
objdir (object_dir)
-- Compiler --
kind "ConsoleApp"
@ -14,29 +14,35 @@ project "Sandbox"
-- Project Files ---
files
{
-- src
"%{prj.location}/src/**.h",
"%{prj.location}/src/**.cpp",
-- res
"%{prj.location}/res/**",
-- build.lua
"%{prj.location}/build.lua",
}
-- Dependencies --
-- Includes --
includedirs
{
-- Engine
"%{wks.location}/Engine/src",
"%{wks.location}/Engine/src/Engine",
"%{wks.location}/Engine/src/Platform/GraphicsAPI",
"%{wks.location}/Engine/src/Platform/OS",
-- engine
"%{include_dirs.engine}",
"%{include_dirs.engine_platform_graphics}",
"%{include_dirs.engine_platform_os}",
-- 3rd party
(dependenciesdir .. "spdlog/include/"),
(dependenciesdir .. "imgui/"),
(dependenciesdir .. "imgui/backends"),
(dependenciesdir .. "glm/"),
(dependenciesdir .. "entt/"),
"%{include_dirs.entt}",
"%{include_dirs.glm}",
"%{include_dirs.imgui}",
"%{include_dirs.imgui_backends}",
"%{include_dirs.spdlog}",
"%{include_dirs.stb_image}",
}
-- Links --
links
{
"Engine",
@ -79,4 +85,4 @@ project "Sandbox"
-- distribution
filter "configurations:Distribution"
defines "LIGHT_DIST"
optimize "on"
optimize "full"