-
Notifications
You must be signed in to change notification settings - Fork 8
/
project_qt.lua
87 lines (66 loc) · 2.33 KB
/
project_qt.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
--
-- Copyright 2023 Milos Tosic. All rights reserved.
-- License: http://www.opensource.org/licenses/BSD-2-Clause
--
function addProject_qt(_name, _libProjNotExe, _includes, _prebuildcmds, _extraQtModules)
if _ACTION == nil then return end
_libProjNotExe = _libProjNotExe or false
_includes = _includes or {}
_prebuildcmds = _prebuildcmds or {}
if _libProjNotExe == true then
group ("toollibs")
else
group ("tools")
end
project (_name)
local projKind = "WindowedApp"
if _libProjNotExe == true then
projKind = "StaticLib"
end
language "C++"
kind ( projKind )
uuid ( os.uuid(project().name) )
project().path = getProjectPath(project().name, ProjectPath.Root) .. "/" .. _name .. "/"
local sourceFiles = mergeTables( { project().path .. "inc/**.h" },
{ project().path .. "src/**.cpp" },
{ project().path .. "src/**.h" },
{ project().path .. "src/**.ui" },
{ project().path .. "src/**.qrc" },
{ project().path .. "src/**.ts" } )
if getTargetOS() == "windows" then
sourceFiles = mergeTables(sourceFiles, { project().path .. "src/**.rc" })
end
files { sourceFiles }
mocFiles = { os.matchfiles( project().path .. "inc/**.h"), os.matchfiles( project().path .. "src/**.h"), os.matchfiles(headersPath) }
uiFiles = { os.matchfiles( project().path .. "src/**.ui") }
qrcFiles = { os.matchfiles( project().path .. "src/**.qrc") }
tsFiles = { os.matchfiles( project().path .. "src/**.ts") }
libsToLink = mergeTables({ "Core", "Gui", "Widgets"}, _extraQtModules)
addPCH( project().path .. "src/", project().name )
configuration {}
includedirs
{
getProjectPath(project().name, ProjectPath.Root),
project().path .. "src/",
_includes
}
flags { Flags_QtTool }
if os.is("linux") then
buildoptions { "-fPIC" }
end
local outputDir = RTM_OUT_DIR
if _libProjNotExe == true then
outputDir = RTM_LIB_DIR
end
assert(loadfile(RTM_SCRIPTS_DIR .. "configurations.lua"))( sourceFiles,
false, -- IS_LIBRARY
false, -- IS_SHARED_LIBRARY
true, -- COPY_QT_DLLS
true, -- WITH_QT
_libProjNotExe == false -- EXECUTABLE
)
for _,cmd in ipairs( _prebuildcmds ) do
prebuildcommands {cmd}
end
addDependencies(_name)
end