• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# -*- coding: utf-8 -*-
2
3import os
4import sys
5
6from common import *
7from config import *
8
9def initBuildDir (config, generator):
10	cfgArgs = []
11
12	# Build base configuration args
13	cfgArgs += config.getArgs()
14
15	# Generator args
16	cfgArgs += generator.getGenerateArgs(config.getBuildType())
17
18	if not os.path.exists(config.buildDir):
19		os.makedirs(config.buildDir)
20
21	pushWorkingDir(config.getBuildDir())
22	execute(["cmake", config.getSrcPath()] + cfgArgs)
23	popWorkingDir()
24
25def build (config, generator, targets = None):
26	# Initialize or update build dir.
27	initBuildDir(config, generator)
28
29	baseCmd		= ['cmake', '--build', '.']
30	buildArgs	= generator.getBuildArgs(config.getBuildType())
31
32	pushWorkingDir(config.getBuildDir())
33
34	if targets == None:
35		execute(baseCmd + buildArgs)
36	else:
37		for target in targets:
38			execute(baseCmd + ['--target', target] + buildArgs)
39
40	popWorkingDir()
41