diff --git a/docs b/docs index 437b1175..890d8e20 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 437b1175bdb310e143f1fe6312433ba4f34ef715 +Subproject commit 890d8e20fed40f653ac84ff366ac16d805b4bf01 diff --git a/platformio/builder/tools/piobuild.py b/platformio/builder/tools/piobuild.py index ba194eb0..79e2c39b 100644 --- a/platformio/builder/tools/piobuild.py +++ b/platformio/builder/tools/piobuild.py @@ -200,7 +200,7 @@ def ParseFlagsExtended(env, flags): # pylint: disable=too-many-branches # fix relative CPPPATH & LIBPATH for k in ("CPPPATH", "LIBPATH"): for i, p in enumerate(result.get(k, [])): - if os.path.isdir(p): + if not os.path.isabs(p): result[k][i] = os.path.abspath(p) # fix relative path for "-include" diff --git a/platformio/project/integration/generator.py b/platformio/project/integration/generator.py index 12f53ef0..40b8e87a 100644 --- a/platformio/project/integration/generator.py +++ b/platformio/project/integration/generator.py @@ -134,7 +134,7 @@ class ProjectGenerator: for root, _, files in os.walk(self.config.get("platformio", "src_dir")): for f in files: result.append( - os.path.relpath(os.path.join(os.path.realpath(root), f)) + os.path.relpath(os.path.join(os.path.abspath(root), f)) ) return result diff --git a/tests/commands/test_run.py b/tests/commands/test_run.py index 009f33c9..cb9e3d85 100644 --- a/tests/commands/test_run.py +++ b/tests/commands/test_run.py @@ -22,6 +22,7 @@ def test_generic_build(clirunner, validate_cliresult, tmpdir): ("-D TEST_INT=13", "-DTEST_INT=13"), ("-DTEST_SINGLE_MACRO", "-DTEST_SINGLE_MACRO"), ('-DTEST_STR_SPACE="Andrew Smith"', '"-DTEST_STR_SPACE=Andrew Smith"'), + ("-Iextra_inc", "-Iextra_inc"), ] tmpdir.join("platformio.ini").write( @@ -58,8 +59,20 @@ projenv.Append(CPPDEFINES="POST_SCRIPT_MACRO") """ ) + tmpdir.mkdir("extra_inc").join("foo.h").write( + """ +#define FOO + """ + ) + tmpdir.mkdir("src").join("main.cpp").write( """ +#include "foo.h" + +#ifndef FOO +#error "FOO" +#endif + #ifdef I_AM_ONLY_SRC_FLAG #include #else