-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpremake5.lua
78 lines (60 loc) · 2.92 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
workspace "GJGO"
language "C++"
cppdialect "C++17"
configurations {"Debug", "Release", "Dist"}
platforms {"LinuxX64", "LinuxX86", "LinuxARM", "WindowsARM", "WindowsX86", "WindowsX64"}
startproject "GJGO"
flags {"MultiProcessorCompile"}
buildoptions {"-pipe", "-Wall"}
defines {}
links {"glfw", "GL", "X11", "dl"}
includedirs {"%{wks.location}/include/", "%{wks.location}/vendor/glm/", "%{wks.location}/vendor/", "%{wks.location}/vendor/glad/include/", "%{wks.location}/vendor/entt/src/", "%{wks.location}/vendor/Druid/include/"}
filter "action:vs*"
toolset "msc"
filter "action:not vs*"
toolset "gcc"
filter "files:not glad.c"
buildoptions {"-Wpedantic", "-Wextra", "-Wnon-virtual-dtor", "-Winline", "-Wunreachable-code", "-Wshadow", "-Wconversion", "-Wno-switch", "-Wno-unused-variable", "-Wold-style-cast",
"-Wcast-align", "-Wunused", "-Woverloaded-virtual", "-Wsign-conversion", "-Wduplicated-cond", "-Wduplicated-branches", "-Wlogical-op", "-Wnull-dereference", "-Wuseless-cast",
"-Wdouble-promotion"}
filter "platforms:Linux*"
system "linux"
defines {"GJGO_PLATFORM_LINUX"}
filter "platforms:Windows*"
system "windows"
defines {"GJGO_PLATFORM_WINDOWS"}
filter "platforms:*ARM"
architecture "ARM"
filter "platforms:*X86"
architecture "x86"
filter "platforms:*X64"
architecture "x86_64"
filter "configurations:Debug"
symbols "On"
links {"ubsan"}
buildoptions {"-pg", "-fsanitize=address", "-fsanitize=leak", "-fsanitize=undefined", "-static-libasan"}
linkoptions {"-pg", "-fsanitize=address", "-fsanitize=leak", "-fsanitize=undefined", "-static-libasan"}
defines {"GJGO_BUILD_CONFIG_DEBUG"}
filter "configurations:Release"
optimize "Speed"
flags {"LinkTimeOptimization"}
defines {"GJGO_BUILD_CONFIG_RELEASE", "NDEBUG"}
filter "configurations:Dist"
optimize "Speed"
flags {"LinkTimeOptimization"}
defines {"GJGO_BUILD_CONFIG_DIST", "NDEBUG"}
include "vendor/Druid/project.lua"
project "GJGO"
kind "StaticLib"
location "%{wks.location}"
targetdir "%{prj.location}/bin/%{cfg.platform}/%{cfg.buildcfg}"
files {"%{prj.location}/src/**.cpp", "%{prj.location}/include/**.hpp", "%{prj.location}/include/**.h", "%{prj.location}/vendor/glad/src/glad.c", "%{prj.location}/premake5.lua"}
project "One"
location "%{wks.location}/examples/one/"
targetdir "%{prj.location}/bin/%{cfg.platform}/%{cfg.buildcfg}"
links {"GJGO", "Druid", "glfw", "GL", "X11", "dl"}
filter "configurations:Debug or Release"
kind "ConsoleApp"
filter "configurations:Dist"
kind "WindowedApp"
files {"%{prj.location}/src/**.cpp", "%{prj.location}/include/**.hpp", "%{prj.location}/include/**.h"}