def build_helper(build_dir): """ Returns 0 on success, non-0 on failure. """ # TODO(HTing): Add support for: # - building differnt configurations ("--config <cfg>") # - cleaning first ("--clean-first") return CMake.run_cmake(["--build", build_dir])
def run_cmake(generator, build_dir, depot_dir): generator_validity = CMake.get_cmake_generator_validity(generator) if generator_validity == CMake.GeneratorValidity.INVALID: sys.exit("The CMake generator '{}', set in '{}/Config.py', is invalid.".format( generator, Directories.BUILD_SCRIPTS_DIR)) elif generator_validity == CMake.GeneratorValidity.MISSING: sys.exit("The CMake generator '{}', set in '{}/Config.py', cannot be found.".format( generator, Directories.BUILD_SCRIPTS_DIR)) # Run from the build directory. os.makedirs(build_dir, exist_ok=True) os.chdir(build_dir) # CMake args: # -Wdev enable developer warnings # -G specifies the generator return CMake.run_cmake(["-Wdev", "-G", generator, depot_dir])
def run_cmake(generator, build_dir, depot_dir): generator_validity = CMake.get_cmake_generator_validity(generator) if generator_validity == CMake.GeneratorValidity.INVALID: sys.exit( "The CMake generator '{}', set in '{}/Config.py', is invalid.". format(generator, Directories.BUILD_SCRIPTS_DIR)) elif generator_validity == CMake.GeneratorValidity.MISSING: sys.exit( "The CMake generator '{}', set in '{}/Config.py', cannot be found." .format(generator, Directories.BUILD_SCRIPTS_DIR)) # Run from the build directory. os.makedirs(build_dir, exist_ok=True) os.chdir(build_dir) # CMake args: # -Wdev enable developer warnings # -G specifies the generator return CMake.run_cmake(["-Wdev", "-G", generator, depot_dir])
def _buildCMakeTarget( objectsDirectory, target): if len(_devenvSettings["callInsteadOfCMakeTarget"]): status = utils.call(_devenvSettings["callInsteadOfCMakeTarget"]) return status cwd = os.getcwd() os.chdir(objectsDirectory) if "MAKEFLAGS" in os.environ: # Gnu make controls most makefiles in project directories. On windows we # use nmake to build targets for C++ code. When nmake is (indirectly) # called from gnu make it complains about the MAKEFLAGS set by gnu make. # See it in action by running 'make all' in one of the C++ targets # directories. del os.environ["MAKEFLAGS"] # WARNING, not all cmake generated targets support fast. if _devenvSettings["cmakeFast"]: target += _devenvSettings['_makeTargetSlash'] + "fast" status = CMake.build(target, _devenvSettings["makeNrOfJobs"]) os.chdir(cwd) # return status, stdout, stderr return status