From cea097df833767271950a210d265be1d7a534295 Mon Sep 17 00:00:00 2001
From: Victor Oliveira <rhapsodyv@gmail.com>
Date: Mon, 20 Jul 2020 06:52:15 -0300
Subject: [PATCH] Patch auto-deps for Windows CXX (#18721)

---
 .../scripts/common-features-dependencies.py   | 29 +++++++++++++++++--
 1 file changed, 27 insertions(+), 2 deletions(-)

diff --git a/buildroot/share/PlatformIO/scripts/common-features-dependencies.py b/buildroot/share/PlatformIO/scripts/common-features-dependencies.py
index e88afd7488..778004744f 100644
--- a/buildroot/share/PlatformIO/scripts/common-features-dependencies.py
+++ b/buildroot/share/PlatformIO/scripts/common-features-dependencies.py
@@ -93,6 +93,29 @@ def install_features_dependencies():
 			proj.set("env:" + env["PIOENV"], "src_filter", src_filter)
 			env.Replace(SRC_FILTER=src_filter)
 
+# search the current compiler, considering the OS
+def search_compiler():
+	if env['PLATFORM'] == 'win32':
+		# the first path have the compiler
+		compiler_path = None
+		for path in env['ENV']['PATH'].split(';'):
+			if re.search(r'platformio\\packages.*\\bin', path):
+				compiler_path = path
+				break
+		if compiler_path == None:
+			print("Could not find the g++ path")
+			return None
+		
+		print(compiler_path)
+		for file in os.listdir(compiler_path):
+			if file.endswith("g++.exe"):
+				return file
+		print("Could not find the g++")
+		return None
+	else:
+		return env.get('CXX')
+
+
 # load marlin features
 def load_marlin_features():
 	if "MARLIN_FEATURES" in env:
@@ -102,7 +125,10 @@ def load_marlin_features():
 	# print(env.Dump())
 	build_flags = env.get('BUILD_FLAGS')
 	build_flags = env.ParseFlagsExtended(build_flags)
-	cmd = []
+
+	cxx = search_compiler()
+	cmd = [cxx]
+
 	# build flags from board.json
 	# if 'BOARD' in env:
 	# 	cmd += [env.BoardConfig().get("build.extra_flags")]
@@ -113,7 +139,6 @@ def load_marlin_features():
 			cmd += ['-D' + s]
 	# cmd += ['-w -dM -E -x c++ Marlin/src/inc/MarlinConfigPre.h']
 	cmd += ['-w -dM -E -x c++ buildroot/share/PlatformIO/scripts/common-features-dependencies.h']
-	cmd = [env.get('CXX')] + cmd
 	cmd = ' '.join(cmd)
 	print(cmd)
 	define_list = subprocess.check_output(cmd, shell=True).splitlines()
-- 
GitLab