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