def build_internal(even_more_cmake_args: List[str] = []) -> None: final_cmake_args = args + even_more_cmake_args log("CMake command line (one argument per line):\n%s" % "\n".join([(" " * 4 + sanitize_flags_line_for_log(line)) for line in final_cmake_args])) log_output(log_prefix, final_cmake_args) if build_tool == 'ninja': dep.postprocess_ninja_build_file(self, 'build.ninja') build_tool_cmd = [ build_tool, '-j{}'.format(get_make_parallelism()) ] + extra_build_tool_args log_output(log_prefix, build_tool_cmd) if should_install: log_output(log_prefix, [build_tool] + install_targets) with open('compile_commands.json') as compile_commands_file: compile_commands = json.load(compile_commands_file) for command_item in compile_commands: command_args = command_item['command'].split() if self.build_type == BUILD_TYPE_ASAN: assert_list_contains(command_args, '-fsanitize=address') assert_list_contains(command_args, '-fsanitize=undefined') if self.build_type == BUILD_TYPE_TSAN: assert_list_contains(command_args, '-fsanitize=thread')
def build_with_configure(self, log_prefix: str, extra_args: List[str] = [], configure_cmd: List[str] = ['./configure'], install: List[str] = ['install'], run_autogen: bool = False, autoconf: bool = False, src_subdir_name: Optional[str] = None) -> None: os.environ["YB_REMOTE_COMPILATION"] = "0" dir_for_build = os.getcwd() if src_subdir_name: dir_for_build = os.path.join(dir_for_build, src_subdir_name) with PushDir(dir_for_build): log("Building in %s", dir_for_build) if run_autogen: log_output(log_prefix, ['./autogen.sh']) if autoconf: log_output(log_prefix, ['autoreconf', '-i']) configure_args = (configure_cmd.copy() + ['--prefix={}'.format(self.prefix)] + extra_args) log_output(log_prefix, configure_args) log_output(log_prefix, ['make', '-j{}'.format(get_make_parallelism())]) if install: log_output(log_prefix, ['make'] + install)