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
|
||||
.vs/
|
||||
bin/
|
||||
bin-int/
|
||||
bin-obj/
|
||||
|
||||
# VS Files
|
||||
**.vcxproj**
|
||||
|
|
|
@ -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"
|
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"
|
||||
|
||||
-- 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"
|
||||
|
|
27
Dependencies/entt/build.lua
vendored
27
Dependencies/entt/build.lua
vendored
|
@ -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"
|
||||
|
|
27
Dependencies/stb_image/build.lua
vendored
27
Dependencies/stb_image/build.lua
vendored
|
@ -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"
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
|
@ -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"
|
Loading…
Add table
Reference in a new issue