diff --git a/bootstrap/cli.py b/bootstrap/cli.py index c014630425..c18b208825 100644 --- a/bootstrap/cli.py +++ b/bootstrap/cli.py @@ -43,7 +43,7 @@ def export_custom_conan_recipes(minifi_options: MinifiOptions, package_manager: version = next(iter(data["versions"])) print(f"Exporting the custom Conan recipe {root} with version {version}") - if not package_manager.run_cmd(f"conan export {root} --version={version} --user=minifi --channel=develop"): + if not package_manager.run_cmd(f'conan export "{root}" --version={version} --user=minifi --channel=develop'): print(f"Exporting the custom Conan recipe {root} failed") return False return True @@ -81,8 +81,8 @@ def run_conan_install(minifi_options: MinifiOptions, package_manager: PackageMan if not package_manager.run_cmd(conan_remote_add_cmd): print("Adding the nifi-conan remote failed") return False - build_cmd = f"conan install {minifi_options.source_dir} --output-folder={minifi_options.build_dir} --build=missing {conan_options} " \ - f"--settings=build_type={minifi_options.build_type.value}{generator_setting}{compiler_settings}" + build_cmd = f'conan install "{minifi_options.source_dir}" --output-folder="{minifi_options.build_dir}" --build=missing {conan_options} ' \ + f'--settings=build_type={minifi_options.build_type.value}{generator_setting}{compiler_settings}' res = package_manager.run_cmd(build_cmd) print("Conan install was successful" if res else "Conan install was unsuccessful") return res @@ -98,27 +98,27 @@ def _conan_build_env_prefix(minifi_options: MinifiOptions) -> str: def run_cmake(minifi_options: MinifiOptions, package_manager: PackageManager): if not os.path.exists(minifi_options.build_dir): os.mkdir(minifi_options.build_dir) - cmake_cmd = f"{_conan_build_env_prefix(minifi_options)}cmake {minifi_options.create_cmake_generator_str()} {minifi_options.create_cmake_use_conan_str()} " \ - f"{minifi_options.create_cmake_options_str()} {minifi_options.source_dir} -B {minifi_options.build_dir}" + cmake_cmd = f'{_conan_build_env_prefix(minifi_options)}cmake {minifi_options.create_cmake_generator_str()} {minifi_options.create_cmake_use_conan_str()} ' \ + f'{minifi_options.create_cmake_options_str()} "{minifi_options.source_dir}" -B "{minifi_options.build_dir}"' res = package_manager.run_cmd(cmake_cmd) print("CMake command run successfully" if res else "CMake command run unsuccessfully") return res def do_build(minifi_options: MinifiOptions, package_manager: PackageManager): - build_cmd = f"{_conan_build_env_prefix(minifi_options)}cmake --build {str(minifi_options.build_dir)} {minifi_options.create_cmake_build_flags_str()}" + build_cmd = f'{_conan_build_env_prefix(minifi_options)}cmake --build "{str(minifi_options.build_dir)}" {minifi_options.create_cmake_build_flags_str()}' res = package_manager.run_cmd(build_cmd) print("Build was successful" if res else "Build was unsuccessful") return res def do_package(minifi_options: MinifiOptions, package_manager: PackageManager): - build_cmd = f"{_conan_build_env_prefix(minifi_options)}cmake --build {str(minifi_options.build_dir)} --target package {minifi_options.create_cmake_build_flags_str()}" + build_cmd = f'{_conan_build_env_prefix(minifi_options)}cmake --build "{str(minifi_options.build_dir)}" --target package {minifi_options.create_cmake_build_flags_str()}' return package_manager.run_cmd(build_cmd) def do_docker_build(minifi_options: MinifiOptions, package_manager: PackageManager): - build_cmd = f"cmake --build {str(minifi_options.build_dir)} --target docker" + build_cmd = f'cmake --build "{str(minifi_options.build_dir)}" --target docker' return package_manager.run_cmd(build_cmd) @@ -213,7 +213,7 @@ def build_dir_menu(minifi_options: MinifiOptions, _package_manager: PackageManag answers = inquirer.prompt(questions) if answers is None: return True - minifi_options.build_dir = answers["build_dir"] + minifi_options.build_dir = Path(answers["build_dir"]).resolve() minifi_options.save_option_state() return False diff --git a/bootstrap/cmake_parser.py b/bootstrap/cmake_parser.py index 4c9fae362b..ff450d42d7 100644 --- a/bootstrap/cmake_parser.py +++ b/bootstrap/cmake_parser.py @@ -45,10 +45,10 @@ def create_cmake_cache(cmake_path: str, cmake_options: str, directory: str, pack cmake_lists_file.write(f'include("{cmake_path}")\n') if cmake_options is None: - assert package_manager.run_cmd(f'cmake -G Ninja -Wno-dev --log-level=ERROR {directory} -B {directory}') + assert package_manager.run_cmd(f'cmake -G Ninja -Wno-dev --log-level=ERROR "{directory}" -B "{directory}"') else: assert package_manager.run_cmd( - f'cmake -G Ninja -Wno-dev --no-warn-unused-cli --log-level=ERROR {cmake_options} {directory} -B {directory}') + f'cmake -G Ninja -Wno-dev --no-warn-unused-cli --log-level=ERROR {cmake_options} "{directory}" -B "{directory}"') return os.path.join(directory, 'CMakeCache.txt') diff --git a/bootstrap/package_manager.py b/bootstrap/package_manager.py index 67c7b21626..b2389acad1 100644 --- a/bootstrap/package_manager.py +++ b/bootstrap/package_manager.py @@ -236,7 +236,7 @@ def _get_activate_venv_path(): def _minifi_setup_env_str(vs_where_location: VsWhereLocation) -> str: return f""" call refreshenv -call {_get_activate_venv_path()} +call "{_get_activate_venv_path()}" call {_get_vs_dev_cmd(vs_where_location)} setlocal EnableDelayedExpansion set PATH=!PATH:C:\\Strawberry\\c\\bin;=!;C:\\Program Files\\NASM; @@ -302,7 +302,7 @@ def install_compiler(self) -> str: def run_cmd(self, cmd: str) -> bool: env_bat_path = pathlib.Path(__file__).parent.resolve() / "build_environment.bat" - res = subprocess.run(f"{env_bat_path} & {cmd}", check=True, text=True) + res = subprocess.run(f'"{env_bat_path}" & {cmd}', check=True, text=True) return res.returncode == 0