Improved Build Files
This commit is contained in:
parent
2c7a24431c
commit
0080f6837c
10 changed files with 163 additions and 93 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,7 +1,7 @@
|
||||||
# Directories
|
# Directories
|
||||||
.vs/
|
.vs/
|
||||||
bin/
|
bin/
|
||||||
bin-int/
|
bin-obj/
|
||||||
|
|
||||||
# VS Files
|
# VS Files
|
||||||
**.vcxproj**
|
**.vcxproj**
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
include "dependencies.lua"
|
||||||
|
|
||||||
workspace "Light"
|
workspace "Light"
|
||||||
location "../"
|
location "../"
|
||||||
startproject "Mirror"
|
startproject "Mirror"
|
||||||
|
@ -12,18 +14,19 @@ workspace "Light"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Directories --
|
-- Directories --
|
||||||
dependenciesdir = "%{wks.location}/Dependencies/"
|
target_dir = "%{wks.location}/bin/%{cfg.buildcfg}/%{cfg.system}/%{cfg.architecture}/%{prj.name}"
|
||||||
outputdir = "%{cfg.buildcfg}/%{cfg.system}/%{cfg.architecture}/%{prj.name}"
|
object_dir = "%{wks.location}/bin-obj/%{cfg.buildcfg}/%{cfg.system}/%{cfg.architecture}/%{prj.name}"
|
||||||
|
|
||||||
-- Projects --
|
-- Projects --
|
||||||
include "../Engine/build.lua"
|
group ""
|
||||||
include "../Mirror/build.lua"
|
include "../Engine/build.lua"
|
||||||
include "../Sandbox/build.lua"
|
include "../Mirror/build.lua"
|
||||||
|
include "../Sandbox/build.lua"
|
||||||
|
|
||||||
-- Dependencies --
|
-- Dependencies --
|
||||||
group "Dependencies"
|
group "Dependencies"
|
||||||
include "../Dependencies/GLFW/build.lua"
|
include "../Dependencies/GLFW/build.lua"
|
||||||
include "../Dependencies/GLAD/build.lua"
|
include "../Dependencies/GLAD/build.lua"
|
||||||
include "../Dependencies/imgui/build.lua"
|
include "../Dependencies/imgui/build.lua"
|
||||||
include "../Dependencies/stb_image/build.lua"
|
include "../Dependencies/stb_image/build.lua"
|
||||||
include "../Dependencies/entt/build.lua"
|
include "../Dependencies/entt/build.lua"
|
31
BuildScripts/dependencies.lua
Normal file
31
BuildScripts/dependencies.lua
Normal 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"
|
17
Dependencies/GLAD/build.lua
vendored
17
Dependencies/GLAD/build.lua
vendored
|
@ -1,10 +1,10 @@
|
||||||
project "GLAD"
|
project "GLAD"
|
||||||
|
|
||||||
|
-- Output Directories --
|
||||||
location "%{wks.location}/Dependencies/GLAD"
|
location "%{wks.location}/Dependencies/GLAD"
|
||||||
|
|
||||||
-- Output Directories --
|
targetdir (target_dir)
|
||||||
targetdir ("%{wks.location}/bin/" .. outputdir)
|
objdir (object_dir)
|
||||||
objdir ("%{wks.location}/bin-int/" .. outputdir)
|
|
||||||
|
|
||||||
-- Compiler --
|
-- Compiler --
|
||||||
kind "StaticLib"
|
kind "StaticLib"
|
||||||
|
@ -13,13 +13,14 @@ project "GLAD"
|
||||||
-- Project Files ---
|
-- Project Files ---
|
||||||
files
|
files
|
||||||
{
|
{
|
||||||
"**.c",
|
"src/glad.c",
|
||||||
"**.h",
|
"include/glad/glad.h",
|
||||||
|
"include/KHR/khrplatform.h",
|
||||||
|
|
||||||
"build.lua"
|
"%{prj.location}/build.lua",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Dependencies --
|
-- Includes --
|
||||||
includedirs
|
includedirs
|
||||||
{
|
{
|
||||||
"%{prj.location}/include/"
|
"%{prj.location}/include/"
|
||||||
|
@ -51,4 +52,4 @@ project "GLAD"
|
||||||
-- distribution
|
-- distribution
|
||||||
filter "configurations:Distribution"
|
filter "configurations:Distribution"
|
||||||
runtime "Release"
|
runtime "Release"
|
||||||
optimize "on"
|
optimize "full"
|
||||||
|
|
25
Dependencies/entt/build.lua
vendored
25
Dependencies/entt/build.lua
vendored
|
@ -1,25 +1,23 @@
|
||||||
project "entt"
|
project "entt"
|
||||||
|
|
||||||
|
-- Output Directories --
|
||||||
location "%{wks.location}/Dependencies/entt"
|
location "%{wks.location}/Dependencies/entt"
|
||||||
|
|
||||||
-- Output Directories --
|
targetdir (target_dir)
|
||||||
targetdir ("%{wks.location}/bin/" .. outputdir)
|
objdir (object_dir)
|
||||||
objdir ("%{wks.location}/bin-int/" .. outputdir)
|
|
||||||
|
|
||||||
-- Compiler --
|
-- Compiler --
|
||||||
kind "StaticLib"
|
kind "StaticLib"
|
||||||
language "C++"
|
language "C++"
|
||||||
cppdialect "C++17"
|
cppdialect "C++17"
|
||||||
|
|
||||||
optimize "on"
|
|
||||||
|
|
||||||
-- Project Files ---
|
-- Project Files ---
|
||||||
files
|
files
|
||||||
{
|
{
|
||||||
"entt.cpp",
|
"entt.cpp",
|
||||||
"entt.hpp",
|
"entt.hpp",
|
||||||
|
|
||||||
"build.lua"
|
"%{prj.location}/build.lua",
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Filters ---
|
--- Filters ---
|
||||||
|
@ -34,3 +32,18 @@ project "entt"
|
||||||
}
|
}
|
||||||
|
|
||||||
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"
|
||||||
|
|
25
Dependencies/stb_image/build.lua
vendored
25
Dependencies/stb_image/build.lua
vendored
|
@ -1,24 +1,22 @@
|
||||||
project "stb_image"
|
project "stb_image"
|
||||||
|
|
||||||
|
-- Output Directories --
|
||||||
location "%{wks.location}/Dependencies/stb_image"
|
location "%{wks.location}/Dependencies/stb_image"
|
||||||
|
|
||||||
-- Output Directories --
|
targetdir (target_dir)
|
||||||
targetdir ("%{wks.location}/bin/" .. outputdir)
|
objdir (object_dir)
|
||||||
objdir ("%{wks.location}/bin-int/" .. outputdir)
|
|
||||||
|
|
||||||
-- Compiler --
|
-- Compiler --
|
||||||
kind "StaticLib"
|
kind "StaticLib"
|
||||||
language "C"
|
language "C"
|
||||||
|
|
||||||
optimize "on"
|
|
||||||
|
|
||||||
-- Project Files ---
|
-- Project Files ---
|
||||||
files
|
files
|
||||||
{
|
{
|
||||||
"stb_image.c",
|
"stb_image.c",
|
||||||
"stb_image.h",
|
"stb_image.h",
|
||||||
|
|
||||||
"build.lua"
|
"%{prj.location}/build.lua",
|
||||||
}
|
}
|
||||||
|
|
||||||
--- Filters ---
|
--- Filters ---
|
||||||
|
@ -33,3 +31,18 @@ project "stb_image"
|
||||||
}
|
}
|
||||||
|
|
||||||
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"
|
|
@ -3,60 +3,57 @@ project "Engine"
|
||||||
-- Output Directories --
|
-- Output Directories --
|
||||||
location "%{wks.location}/Engine/"
|
location "%{wks.location}/Engine/"
|
||||||
|
|
||||||
targetdir ("%{wks.location}/bin/" .. outputdir)
|
targetdir (target_dir)
|
||||||
objdir ("%{wks.location}/bin-int/" .. outputdir)
|
objdir (object_dir)
|
||||||
|
|
||||||
-- Compiler --
|
-- Compiler --
|
||||||
-- kind
|
|
||||||
kind "StaticLib"
|
kind "StaticLib"
|
||||||
|
|
||||||
-- language
|
|
||||||
language "C++"
|
language "C++"
|
||||||
cppdialect "C++17"
|
cppdialect "C++17"
|
||||||
|
|
||||||
-- pch
|
|
||||||
pchsource "src/Engine/ltpch.cpp"
|
pchsource "src/Engine/ltpch.cpp"
|
||||||
pchheader "ltpch.h"
|
pchheader "ltpch.h"
|
||||||
|
|
||||||
-- Project Files ---
|
-- Project Files --
|
||||||
files
|
files
|
||||||
{
|
{
|
||||||
-- src
|
-- src
|
||||||
"%{prj.location}/src/**.h",
|
"%{prj.location}/src/**.h",
|
||||||
"%{prj.location}/src/**.cpp",
|
"%{prj.location}/src/**.cpp",
|
||||||
|
|
||||||
-- premake
|
-- res
|
||||||
"%{prj.location}/build.lua",
|
"%{prj.location}/res/**",
|
||||||
|
|
||||||
"%{prj.location}/res/**"
|
-- build.lua
|
||||||
|
"%{prj.location}/build.lua",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Dependencies --
|
-- Includes --
|
||||||
includedirs
|
includedirs
|
||||||
{
|
{
|
||||||
-- engine
|
-- engine
|
||||||
"%{prj.location}" ,
|
"%{include_dirs.engine}",
|
||||||
"%{prj.location}/src" ,
|
"%{include_dirs.engine_platform_graphics}",
|
||||||
"%{prj.location}/src/Engine" ,
|
"%{include_dirs.engine_platform_os}",
|
||||||
"%{prj.location}/src/Platform/GraphicsAPI" ,
|
|
||||||
"%{prj.location}/src/Platform/OS" ,
|
|
||||||
|
|
||||||
-- 3rd party
|
-- 3rd party
|
||||||
(dependenciesdir .. "spdlog/include/"),
|
"%{include_dirs.entt}",
|
||||||
(dependenciesdir .. "GLFW/include/"),
|
"%{include_dirs.glad}",
|
||||||
(dependenciesdir .. "GLAD/include"),
|
"%{include_dirs.glfw}",
|
||||||
(dependenciesdir .. "imgui/backends"),
|
"%{include_dirs.glm}",
|
||||||
(dependenciesdir .. "imgui/"),
|
"%{include_dirs.imgui}",
|
||||||
(dependenciesdir .. "stb_image/"),
|
"%{include_dirs.imgui_backends}",
|
||||||
(dependenciesdir .. "glm/"),
|
"%{include_dirs.spdlog}",
|
||||||
(dependenciesdir .. "entt/"),
|
"%{include_dirs.stb_image}",
|
||||||
|
"%{include_dirs.volk}",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Links --
|
||||||
links
|
links
|
||||||
{
|
{
|
||||||
"GLFW" ,
|
"GLFW",
|
||||||
"GLAD" ,
|
"GLAD",
|
||||||
"ImGui" ,
|
"ImGui",
|
||||||
"stb_image",
|
"stb_image",
|
||||||
"entt",
|
"entt",
|
||||||
}
|
}
|
||||||
|
@ -70,9 +67,9 @@ project "Engine"
|
||||||
|
|
||||||
links
|
links
|
||||||
{
|
{
|
||||||
"d3d11.lib" ,
|
"d3d11.lib",
|
||||||
"dxguid.lib" ,
|
"dxguid.lib",
|
||||||
"D3DCompiler.lib" ,
|
"D3DCompiler.lib",
|
||||||
}
|
}
|
||||||
|
|
||||||
flags { "MultiProcessorCompile" }
|
flags { "MultiProcessorCompile" }
|
||||||
|
@ -112,7 +109,7 @@ project "Engine"
|
||||||
-- distribution
|
-- distribution
|
||||||
filter "configurations:Distribution"
|
filter "configurations:Distribution"
|
||||||
defines "LIGHT_DIST"
|
defines "LIGHT_DIST"
|
||||||
optimize "on"
|
optimize "full"
|
||||||
|
|
||||||
filter { "files:**.hlsl" }
|
filter { "files:**.hlsl" }
|
||||||
flags "ExcludeFromBuild"
|
flags "ExcludeFromBuild"
|
||||||
|
|
|
@ -3,8 +3,8 @@ project "Mirror"
|
||||||
-- Output Directories --
|
-- Output Directories --
|
||||||
location "%{wks.location}/Mirror/"
|
location "%{wks.location}/Mirror/"
|
||||||
|
|
||||||
targetdir ("%{wks.location}/bin/" .. outputdir)
|
targetdir (target_dir)
|
||||||
objdir ("%{wks.location}/bin-int/" .. outputdir)
|
objdir (object_dir)
|
||||||
|
|
||||||
-- Compiler --
|
-- Compiler --
|
||||||
kind "ConsoleApp"
|
kind "ConsoleApp"
|
||||||
|
@ -14,29 +14,35 @@ project "Mirror"
|
||||||
-- Project Files ---
|
-- Project Files ---
|
||||||
files
|
files
|
||||||
{
|
{
|
||||||
|
-- src
|
||||||
"%{prj.location}/src/**.h",
|
"%{prj.location}/src/**.h",
|
||||||
"%{prj.location}/src/**.cpp",
|
"%{prj.location}/src/**.cpp",
|
||||||
|
|
||||||
|
-- res
|
||||||
|
"%{prj.location}/res/**",
|
||||||
|
|
||||||
|
-- build.lua
|
||||||
"%{prj.location}/build.lua",
|
"%{prj.location}/build.lua",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Dependencies --
|
-- Includes --
|
||||||
includedirs
|
includedirs
|
||||||
{
|
{
|
||||||
-- Engine
|
-- engine
|
||||||
"%{wks.location}/Engine/src",
|
"%{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",
|
|
||||||
|
|
||||||
-- 3rd party
|
-- 3rd party
|
||||||
(dependenciesdir .. "spdlog/include/"),
|
"%{include_dirs.entt}",
|
||||||
(dependenciesdir .. "imgui/"),
|
"%{include_dirs.glm}",
|
||||||
(dependenciesdir .. "imgui/backends"),
|
"%{include_dirs.imgui}",
|
||||||
(dependenciesdir .. "glm/"),
|
"%{include_dirs.imgui_backends}",
|
||||||
(dependenciesdir .. "entt/"),
|
"%{include_dirs.spdlog}",
|
||||||
|
"%{include_dirs.stb_image}",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Links --
|
||||||
links
|
links
|
||||||
{
|
{
|
||||||
"Engine",
|
"Engine",
|
||||||
|
@ -79,4 +85,4 @@ project "Mirror"
|
||||||
-- distribution
|
-- distribution
|
||||||
filter "configurations:Distribution"
|
filter "configurations:Distribution"
|
||||||
defines "LIGHT_DIST"
|
defines "LIGHT_DIST"
|
||||||
optimize "on"
|
optimize "full"
|
|
@ -3,8 +3,8 @@ project "Sandbox"
|
||||||
-- Output Directories --
|
-- Output Directories --
|
||||||
location "%{wks.location}/Sandbox/"
|
location "%{wks.location}/Sandbox/"
|
||||||
|
|
||||||
targetdir ("%{wks.location}/bin/" .. outputdir)
|
targetdir (target_dir)
|
||||||
objdir ("%{wks.location}/bin-int/" .. outputdir)
|
objdir (object_dir)
|
||||||
|
|
||||||
-- Compiler --
|
-- Compiler --
|
||||||
kind "ConsoleApp"
|
kind "ConsoleApp"
|
||||||
|
@ -14,29 +14,35 @@ project "Sandbox"
|
||||||
-- Project Files ---
|
-- Project Files ---
|
||||||
files
|
files
|
||||||
{
|
{
|
||||||
|
-- src
|
||||||
"%{prj.location}/src/**.h",
|
"%{prj.location}/src/**.h",
|
||||||
"%{prj.location}/src/**.cpp",
|
"%{prj.location}/src/**.cpp",
|
||||||
|
|
||||||
|
-- res
|
||||||
|
"%{prj.location}/res/**",
|
||||||
|
|
||||||
|
-- build.lua
|
||||||
"%{prj.location}/build.lua",
|
"%{prj.location}/build.lua",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Dependencies --
|
-- Includes --
|
||||||
includedirs
|
includedirs
|
||||||
{
|
{
|
||||||
-- Engine
|
-- engine
|
||||||
"%{wks.location}/Engine/src",
|
"%{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",
|
|
||||||
|
|
||||||
-- 3rd party
|
-- 3rd party
|
||||||
(dependenciesdir .. "spdlog/include/"),
|
"%{include_dirs.entt}",
|
||||||
(dependenciesdir .. "imgui/"),
|
"%{include_dirs.glm}",
|
||||||
(dependenciesdir .. "imgui/backends"),
|
"%{include_dirs.imgui}",
|
||||||
(dependenciesdir .. "glm/"),
|
"%{include_dirs.imgui_backends}",
|
||||||
(dependenciesdir .. "entt/"),
|
"%{include_dirs.spdlog}",
|
||||||
|
"%{include_dirs.stb_image}",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- Links --
|
||||||
links
|
links
|
||||||
{
|
{
|
||||||
"Engine",
|
"Engine",
|
||||||
|
@ -79,4 +85,4 @@ project "Sandbox"
|
||||||
-- distribution
|
-- distribution
|
||||||
filter "configurations:Distribution"
|
filter "configurations:Distribution"
|
||||||
defines "LIGHT_DIST"
|
defines "LIGHT_DIST"
|
||||||
optimize "on"
|
optimize "full"
|
Loading…
Add table
Reference in a new issue