Use case: I am building a project on Mojave. By default, Clang builds binaries only compatible with Mojave. (By some mystery, they run on Sierra, but not High Sierra.) I’ve changed a parameter (-mmacosx-version-min) to target Sierra so they should be compatible. However, I am also using plenty of dependencies from Brew, and when installed, they are built against (or poured from bottles built against) Mojave. Is it possible to build targeting Sierra (-mmacosx-version-min=10.12) or forcibly use bottles meant for Sierra?
How come? Brew never links its packages to
$PATH if naming intersection presents. Maybe you have corrupted environment? Try running
brew doctor --verbose,
brew --env --plain and
brew config --verbose - maybe you will notice something odd.
As for targeted bottle builds, I guess you can try
brew install <formula> -s --build-bottle --build-arch. After build you can generate bottle with
brew bottle --force-core-tap.
If I wasn’t clear, the problem is that the binaries are specific to Mojave and may or may not run on older macOS. This poses a problem if dylibs and a files are linked to an executable meant to be usable on older macOS as well.