class CMakeBuilder(Builder): def __init__(self, name, cfg, build_dir): super(CMakeBuilder, self).__init__(name, cfg, build_dir) self.cmake = CMake() def Build(self): with os_utils.Chdir(self.build_dir): self.cmake.setFlag("CMAKE_BUILD_TYPE", config.get("build-type")) cmake_opts = self.build_cfg.get("cmake", {}) cmake_flags = cmake_opts.get("flags", {}) for k, v in cmake_flags.items(): self.cmake.setFlag(k, v) # self.cmake.setFlag('CMAKE_INSTALL_PREFIX', self.install_prefix) self.cmake.generator = "NMake Makefiles" self.cmake.run(CMAKE=EXECUTABLES["cmake"]) if cmake_opts.get("build", False): target = "" if cmake_flags.get("CMAKE_INSTALL_PREFIX") is not None: target = "install" target = cmake_opts.get("build-target", target) self.cmake.build(target=target, CMAKE=EXECUTABLES["cmake"]) return True
'HHVMBUILD_DIR': HHVMBUILD_DIR }) pbsteps = distro_cfg.get('prebuild', []) if pbsteps is None: pbsteps = [] if len(pbsteps) > 0: log.info('Performing prebuild steps...') origpath = os.path.abspath(os.getcwd()) RunCommandsIn(distro_cfg.get('prebuild', []), distro_cfg, { 'SOURCE_DIR': SOURCE_DIR, 'DISTRO_DIR': os.path.join(HHVMBUILD_DIR, 'hhvm', DISTRO_NAME, DISTRO_RELEASE), 'HHVMBUILD_DIR': HHVMBUILD_DIR }) os.chdir(origpath) if not cmake.run(cfg.get('bin.cmake', 'cmake')): sys.exit(1) if not cmd([cfg.get('bin.make', 'make')] + MAKE_FLAGS, critical=True, echo=True): sys.exit(1) if not os.path.isfile(hhvm_bin): log.critical(hhvm_bin + " doesn't exist") sys.exit(1) if cfg.get('env.packaging.enabled', False): stdout, stderr = cmd_output('dpkg-architecture -qDEB_BUILD_GNU_TYPE'.split(), critical=True, echo=False) ARCH = (stdout + stderr).strip() for build_type in ['main', 'dev']: if build_type == 'dev':
cmake.build(CMAKE=EXECUTABLES['cmake']) """ asmjit_dir = os.path.join(script_dir, "build", "asmjit") with log.info("Building asmjit..."): if not args.rebuild_all and filesAllExist(["asmjit.lib"], basedir="install/lib"): log.info("Skipping; All needed files built.") else: with os_utils.Chdir(asmjit_dir): cmake = CMake() cmake.setFlag("ASMJIT_STATIC", "TRUE") cmake.setFlag("ASMJIT_DISABLE_COMPILER", "TRUE") cmake.setFlag("CMAKE_BUILD_TYPE", config.get("cmake.build-type")) cmake.setFlag("CMAKE_INSTALL_PREFIX", os.path.join(script_dir, "install").replace("\\", "/")) cmake.generator = "NMake Makefiles" cmake.run(CMAKE=EXECUTABLES["cmake"]) cmake.build(CMAKE=EXECUTABLES["cmake"], target="install") # MUST be built with system Python because it includes pyexpat. udis_dir = firstDirIn(os.path.join(script_dir, "build", "udis86")) with log.info("Building udis..."): with os_utils.Chdir(udis_dir): os_utils.cmd( [EXECUTABLES["python"], "scripts/ud_itab.py", "docs/x86/optable.xml", "libudis86"], echo=True, show_output=True, critical=True, ) cpp = WindowsCCompiler("libudis86.lib") cpp.files = [ "libudis86/decode.c",