-
Notifications
You must be signed in to change notification settings - Fork 0
/
premake5.lua
71 lines (55 loc) · 1.64 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
-- Store operating system string
local osName = os.target()
-- Store the absolute path to the repository root
local repoRoot = string.sub( os.getcwd(), 0, -9 ) -- Substring to remove "/scripts" from the end
-- Define the solution & project
workspace ( "UUID" )
-- Set the file name
filename ( "uuid" )
-- Generated project files directory
location ( "../project/" .. osName .. "/" )
-- Configurations
configurations {
"Release"
}
project ( "UUID" )
-- Set the file name
filename ( "uuid" )
-- Misc C++ stuff
language ( "C++" )
-- This is a shared library (.dll/.so)
kind ( "SharedLib" )
-- No debug settings
symbols ( "Off" )
optimize ( "Speed" )
staticruntime ( "On" )
-- x64 only
architecture ( "x86_64" )
-- Generated project files directory
location ( "../project/" .. osName .. "/" )
-- Build/output directory
objdir ( "../build/" .. osName .. "/obj/" )
targetdir ( "../build/" .. osName .. "/" )
-- Output name & extension
targetname ( "gm_uuid" )
targetextension ( ".dll" )
-- Additional include directories
includedirs {
"../include/"
}
-- Source files
files {
"../source/**.*"
}
-- Per-OS module suffix & extension
if ( osName == "windows" ) then
targetsuffix ( "_win64" )
elseif ( osName == "linux" ) then
targetprefix ( "" ) -- Linux defaults to lib prefix
targetsuffix ( "_linux64" )
end
-- Commands to run after a successful build
postbuildcommands {
"{MKDIR} \"" .. repoRoot .. "/deploy\"", -- Create deploy directory
"{MOVE} \"%{cfg.buildtarget.abspath}\" \"" .. repoRoot .. "/deploy/%{cfg.buildtarget.name}\"", -- Move DLL to deploy directory
}