Home | History | Annotate | Download | only in build
      1 # -*- coding: utf-8 -*-
      2 
      3 import os
      4 import sys
      5 
      6 from common import *
      7 from config import *
      8 
      9 def 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 
     25 def 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