1# -*- coding: utf-8 -*-
2
3#-------------------------------------------------------------------------
4# drawElements Quality Program utilities
5# --------------------------------------
6#
7# Copyright 2015 The Android Open Source Project
8#
9# Licensed under the Apache License, Version 2.0 (the "License");
10# you may not use this file except in compliance with the License.
11# You may obtain a copy of the License at
12#
13#      http://www.apache.org/licenses/LICENSE-2.0
14#
15# Unless required by applicable law or agreed to in writing, software
16# distributed under the License is distributed on an "AS IS" BASIS,
17# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18# See the License for the specific language governing permissions and
19# limitations under the License.
20#
21#-------------------------------------------------------------------------
22
23import os
24import sys
25
26from common import *
27from config import *
28
29def initBuildDir (config, generator):
30	cfgArgs = []
31
32	# Build base configuration args
33	cfgArgs += config.getArgs()
34
35	# Generator args
36	cfgArgs += generator.getGenerateArgs(config.getBuildType())
37
38	if not os.path.exists(config.buildDir):
39		os.makedirs(config.buildDir)
40
41	pushWorkingDir(config.getBuildDir())
42	execute(["cmake", config.getSrcPath()] + cfgArgs)
43	popWorkingDir()
44
45def build (config, generator, targets = None):
46	# Initialize or update build dir.
47	initBuildDir(config, generator)
48
49	baseCmd		= ['cmake', '--build', '.']
50	buildArgs	= generator.getBuildArgs(config.getBuildType())
51
52	pushWorkingDir(config.getBuildDir())
53
54	if targets == None:
55		execute(baseCmd + buildArgs)
56	else:
57		for target in targets:
58			execute(baseCmd + ['--target', target] + buildArgs)
59
60	popWorkingDir()
61