forked from darkhole22/computer-graphics-project-2023
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpremake5.lua
114 lines (93 loc) · 3.24 KB
/
premake5.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
workspace "ComputerGraphicsProject2023"
architecture "x64"
configurations { "Debug", "Release" }
VULKAN_SDK = os.getenv("VULKAN_SDK")
outputdir = "%{cfg.buildcfg}-%{cfg.system}-%{cfg.architecture}"
IncludeDirs = {}
IncludeDirs["VulkanSDK"] = "%{VULKAN_SDK}/Include"
IncludeDirs["GLFW"] = "ComputerGraphicsProject2023/vendor/GLFW/include"
LibraryDir = {}
LibraryDir["VulkanSDK"] = "%{VULKAN_SDK}/Lib"
Library = {}
Library["Vulkan"] = "%{LibraryDir.VulkanSDK}/vulkan-1.lib"
if os.target() == "windows" then
include ("ComputerGraphicsProject2023/vendor/GLFW/")
end
include ("ComputerGraphicsProject2023/vendor/soloud/")
project "ComputerGraphicsProject2023"
location "ComputerGraphicsProject2023"
kind "ConsoleApp"
language "C++"
cppdialect "C++20"
staticruntime "On"
targetdir ("bin/" .. outputdir .. "/%{prj.name}")
objdir ("bin-int/" .. outputdir .. "/%{prj.name}")
files
{
"%{prj.name}/vendor/glm/glm/**.hpp",
"%{prj.name}/src/**.h",
"%{prj.name}/src/**.cpp"
}
includedirs
{
"%{prj.name}/src",
"%{prj.name}/vendor/glm",
"%{prj.name}/vendor/stb",
"%{prj.name}/vendor/soloud/include",
"%{prj.name}/vendor/tinyobj"
}
postbuildcommands {
"glslc %{prj.location}/res/shaders/Phong.vert -o %{prj.location}/res/shaders/Phong_vert.spv",
"glslc %{prj.location}/res/shaders/Phong.frag -o %{prj.location}/res/shaders/Phong_frag.spv",
"glslc %{prj.location}/res/shaders/UItextSDF.vert -o %{prj.location}/res/shaders/UItextSDF_vert.spv",
"glslc %{prj.location}/res/shaders/UItextSDF.frag -o %{prj.location}/res/shaders/UItextSDF_frag.spv",
"glslc %{prj.location}/res/shaders/UIImage.vert -o %{prj.location}/res/shaders/UIImage_vert.spv",
"glslc %{prj.location}/res/shaders/UIImage.frag -o %{prj.location}/res/shaders/UIImage_frag.spv",
"glslc %{prj.location}/res/shaders/Skybox.vert -o %{prj.location}/res/shaders/Skybox_vert.spv",
"glslc %{prj.location}/res/shaders/Skybox.frag -o %{prj.location}/res/shaders/Skybox_frag.spv",
"glslc %{prj.location}/res/shaders/Terrain.vert -o %{prj.location}/res/shaders/Terrain_vert.spv",
"glslc %{prj.location}/res/shaders/Terrain.frag -o %{prj.location}/res/shaders/Terrain_frag.spv",
"{COPYDIR} %{prj.location}/res %{cfg.targetdir}/res"
}
links
{
"SoLoud"
}
filter "system:windows"
systemversion "latest"
includedirs {
"%{IncludeDirs.GLFW}",
"%{IncludeDirs.VulkanSDK}"
}
links
{
"GLFW",
"%{Library.Vulkan}"
}
-- defines { }
filter "system:linux"
systemversion "latest"
links {
"vulkan",
"glfw",
"pthread",
"X11",
"Xxf86vm",
"Xrandr",
"Xi",
"dl",
"asound"
}
filter "configurations:Debug"
defines
{
"VU_DEBUG_BUILD"
}
symbols "On"
filter "configurations:Release"
defines
{
"VU_NDEBUG_BUILD",
"VU_RELEASE_BUILD"
}
optimize "On"