diff --git a/HISTORY.rst b/HISTORY.rst index 63f54eec..5c8a5a88 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -19,6 +19,7 @@ PlatformIO Core 6 ~~~~~~~~~~~~~~~~~~ * Rectified a regression bug that occurred when the ``-include`` flag was passed via the `build_flags `__ option as a relative path and subsequently expanded (`issue #4683 `_) +* Resolved an issue that resulted in unresolved absolute toolchain paths when generating the `Compilation database "compile_commands.json" `__ (`issue #4684 `_) 6.1.8 (2023-07-05) ~~~~~~~~~~~~~~~~~~ diff --git a/docs b/docs index 3f462c9a..f74e6ca2 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 3f462c9ae63623710d48c85e16241bbb0a2b6553 +Subproject commit f74e6ca2346e4523fc841d2871114c45e36f651d diff --git a/platformio/builder/main.py b/platformio/builder/main.py index 3aa460cd..2ca41f38 100644 --- a/platformio/builder/main.py +++ b/platformio/builder/main.py @@ -30,7 +30,7 @@ from SCons.Script import Variables # pylint: disable=import-error from platformio import app, fs from platformio.platform.base import PlatformBase -from platformio.proc import get_pythonexe_path, where_is_program +from platformio.proc import get_pythonexe_path from platformio.project.helpers import get_project_dir AllowSubstExceptions(NameError) @@ -195,13 +195,6 @@ if env.get("SIZETOOL") and not ( Default("checkprogsize") if "compiledb" in COMMAND_LINE_TARGETS: - # Resolve absolute path of toolchain - for cmd in ("CC", "CXX", "AS"): - if cmd not in env: - continue - if os.path.isabs(env[cmd]): - continue - env[cmd] = where_is_program(env.subst("$%s" % cmd), env.subst("${ENV['PATH']}")) env.Alias("compiledb", env.CompilationDatabase("$COMPILATIONDB_PATH")) # Print configured protocols diff --git a/platformio/builder/tools/piobuild.py b/platformio/builder/tools/piobuild.py index 6fb2eb6f..74725a02 100644 --- a/platformio/builder/tools/piobuild.py +++ b/platformio/builder/tools/piobuild.py @@ -26,6 +26,7 @@ from SCons.Script import SConscript # pylint: disable=import-error from platformio import __version__, fs from platformio.compat import IS_MACOS, string_types from platformio.package.version import pepver_to_semver +from platformio.proc import where_is_program SRC_HEADER_EXT = ["h", "hpp"] SRC_ASM_EXT = ["S", "spp", "SPP", "sx", "s", "asm", "ASM"] @@ -125,12 +126,21 @@ def ProcessProgramDeps(env): # remove specified flags env.ProcessUnFlags(env.get("BUILD_UNFLAGS")) - if "compiledb" in COMMAND_LINE_TARGETS and env.get( - "COMPILATIONDB_INCLUDE_TOOLCHAIN" - ): - for scope, includes in env.DumpIntegrationIncludes().items(): - if scope in ("toolchain",): - env.Append(CPPPATH=includes) + if "compiledb" in COMMAND_LINE_TARGETS: + # Resolve absolute path of toolchain + for cmd in ("CC", "CXX", "AS"): + if cmd not in env: + continue + if os.path.isabs(env[cmd]): + continue + env[cmd] = where_is_program( + env.subst("$%s" % cmd), env.subst("${ENV['PATH']}") + ) + + if env.get("COMPILATIONDB_INCLUDE_TOOLCHAIN"): + for scope, includes in env.DumpIntegrationIncludes().items(): + if scope in ("toolchain",): + env.Append(CPPPATH=includes) def ProcessProjectDeps(env):