fix(config builder): compiler validation on windows #176
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The basic problem here is that windows allows you to omit a file extension when referring to a file. That is,
gcc
is perfectly fine to refer togcc.exe
. However, calling.is_file()
on a path ending withgcc
where the file is actuallygcc.exe
will returnfalse
. This causes a bug in our compiler validation logic on Windows, leading us to tell users that their compiler couldn't be found when it definitely was.The fix is to simply iterate over common executable extension when the
is_file()
check fails. If any of these extension paths exist and point to a file, we'll consider that good enough™️ and treat it as a valid compiler path. We'll still print a warning to the screen in this case, to avoid potential confusion.Addresses the main issue raised in #173