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
""" 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", "libudis86/itab.c",