示例#1
0
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
示例#2
0
"""

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",