summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/genie/src/actions/qbs/_qbs.lua
blob: 8f1ba4b5e0b351e264f0dc92140d97c8402bf5a6 (plain) (blame)
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
--
-- GENie - Project generator tool
-- https://github.com/bkaradzic/GENie#license
--

premake.qbs = { }

local qbs = premake.qbs

newaction
{
	-- Metadata for the command line and help system
	trigger     = "qbs",
	shortname   = "qbs",
	description = "Generate QBS build files",
	module      = "qbs",

	-- The capabilities of this action
	valid_kinds     = {"ConsoleApp", "WindowedApp", "StaticLib", "SharedLib", "Bundle"},
	valid_languages = {"C", "C++"},
	valid_tools     = {
		cc = { "gcc", "msc" },
	},

	-- Solution and project generation logic
	onsolution = function(sln)
		io.eol    = "\n"
		io.indent = "\t"
		io.escaper(qbs.esc)
		premake.generate(sln, sln.name .. ".creator.qbs",      qbs.generate_solution)
		io.indent = " "
		premake.generate(sln, sln.name .. ".creator.qbs.user", qbs.generate_user)
	end,

	onproject = function(prj)
		io.eol    = "\n"
		io.indent = "\t"
		io.escaper(qbs.esc)
		premake.generate(prj, prj.name .. ".qbs", qbs.generate_project)
	end,
}