-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpremake5.lua
More file actions
125 lines (96 loc) · 2.96 KB
/
premake5.lua
File metadata and controls
125 lines (96 loc) · 2.96 KB
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
115
116
117
118
119
120
121
122
123
124
125
-- Helper functions to find compute API headers and libraries
function linkCuda()
local path = os.getenv("CUDA_PATH")
if not path then
return false
end
includedirs {"$(CUDA_PATH)/include"}
if os.target() == "linux" then
libdirs {"$(CUDA_PATH)/lib64"}
else
libdirs {"$(CUDA_PATH)/lib/x64"}
end
links {"cuda"}
return true
end
function linkRttr()
includedirs {"Libraries/rttr-0.9.6/include"}
if os.target() == "linux" then
libdirs {"Libraries/rttr-0.9.6/lib/linux"}
else
libdirs {"Libraries/rttr-0.9.6/lib/windows"}
end
filter "configurations:Debug"
links {"rttr_core_d"}
filter "configurations:Release"
links {"rttr_core"}
filter {}
end
function linkKtt()
includedirs {"Libraries/KTT-2.0.1/Include"}
if os.target() == "linux" then
filter "configurations:Debug"
libdirs {"Libraries/KTT-2.0.1/Lib/Linux/Debug"}
filter "configurations:Release"
libdirs {"Libraries/KTT-2.0.1/Lib/Linux/Release"}
filter {}
else
filter "configurations:Debug"
libdirs {"Libraries/KTT-2.0.1/Lib/Windows/Debug"}
filter "configurations:Release"
libdirs {"Libraries/KTT-2.0.1/Lib/Windows/Release"}
filter {}
end
links {"ktt"}
end
function linkLibraries()
local cudaFound = linkCuda()
if not cudaFound then
error("CUDA libraries were not found. Please ensure that CUDA_PATH is correctly set in the environment variables")
end
linkKtt()
linkRttr()
end
-- Project configuration
workspace "Ktt-Lightning"
configurations {"Release", "Debug"}
platforms {"x86_64"}
architecture "x86_64"
location "Build"
language "C++"
cppdialect "C++17"
warnings "Extra"
filter "configurations:Debug"
defines {"KTTL_CONFIGURATION_DEBUG"}
optimize "Off"
symbols "On"
filter "configurations:Release"
defines {"KTTL_CONFIGURATION_RELEASE"}
optimize "Full"
symbols "Off"
filter "action:vs*"
buildoptions {"/Zc:__cplusplus"}
filter {}
targetdir("Build/%{cfg.platform}_%{cfg.buildcfg}")
objdir("Build//%{cfg.platform}_%{cfg.buildcfg}/obj")
-- Library configuration
project "Ktt-Lightning"
kind "SharedLib"
files {"Source/**", "Libraries/KTT-2.0.1/**", "Libraries/rttr-0.9.6/**"}
includedirs {"Source"}
defines {"KTTL_LIBRARY", "KTTL_SOURCE=\"%{_WORKING_DIR}/Source/\""}
targetname("ktt-lightning")
linkLibraries()
-- Examples
project "Reduction"
kind "ConsoleApp"
files {"Examples/Reduction/Reduction.cpp"}
includedirs {"Source"}
links {"ktt-lightning"}
linkCuda()
project "Transform"
kind "ConsoleApp"
files {"Examples/Transform/Transform.cpp"}
includedirs {"Source"}
links {"ktt-lightning"}
linkCuda()