[service] macOS deployment target of uploaded binaries
See original GitHub issueSupported platforms page says:
Compilers: Apple-clang versions 11.0.3, 12.0.5, 13.0.0
if I understand correctly, that would be basically Xcode 11.3.1, Xcode 12.5 and Xcode 13.0.
I run macOS 10.15 and use Xcode 12.4 there. Using default detected profile I was able to install binaries from ConanCenter (--build=never
). But when I built my project, I noticed linker warnings like “libminizip.dylib was built for newer version (11.3) than being linked (11.1)”.
I know that if deployment target flag isn’t provided to apple-clang explicitly, then it simply sets it to the SDK version used. In this case, Xcode 12.5 has macOS 11.3 SDK, that’s why that warning appears. Besides, checking downloaded binaries with vtool -show-build
also showed that their deployment target is 11.3, which of course doesn’t make sense for my environment.
I strongly suggest to set os.version
in CI profiles to a value that is viable for end users:
- Apple-clang 11 (Xcode 11.x): Xcode 11.0-11.3.1 can be used at least on macOS 10.14 => set
os.version=10.14
- Apple-clang 12 (Xcode 12.x): Xcode 12.0-12.4 can be used at least on macOS 10.15 => set
os.version=10.15
- Apple-clang 13 (Xcode 13.x): Xcode 13.0-13.2.1 can be used at least on macOS 11 => set
os.version=11.0
- Apple-clang 14 (Xcode 14.x): Xcode 14.0-14.?? can be used at least on macOS 12 => set
os.version=12.0
Issue Analytics
- State:
- Created a year ago
- Reactions:1
- Comments:7 (7 by maintainers)
@AndreyMlashkin Conan v2 also does not add os.version by default. And, CCI only follows the default profile values from Conan client. Thus, to add
os.version
to packages, first, it should be added to Conan client by default, so it’s a discussion for Conan v2 (Conan client repository).Well, the goal of this issue is to make cci binaries usable for a wider range of users and to match expected behavior (the latter is probably even more important). Since os.version would break package hashes, the same can be achieved with these env and/or tools.* adjustments for all new binaries.