mirror of
https://github.com/tpoechtrager/osxcross.git
synced 2024-10-05 15:18:35 +03:00
Support both short and full SDK version naming (e.g., 14 and 14.0) (closes #377)
Remove troublesome libc++ IWYU mapping file which may cause compiler errors (https://github.com/include-what-you-use/include-what-you-use/tree/master) Update build_compiler_rt.sh
This commit is contained in:
parent
d291cb7b31
commit
96a651cfa7
20
build.sh
20
build.sh
@ -40,20 +40,20 @@ case $SDK_VERSION in
|
||||
10.14*) TARGET=darwin18; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=0; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
10.15*) TARGET=darwin19; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=0; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
10.16*) TARGET=darwin20; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
11.0*) TARGET=darwin20.1; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
11|11.0*) TARGET=darwin20.1; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
11.1*) TARGET=darwin20.2; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
11.2*) TARGET=darwin20.3; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
11.3*) TARGET=darwin20.4; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
12.0*) TARGET=darwin21.1; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
12|12.0*) TARGET=darwin21.1; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
12.1*) TARGET=darwin21.2; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
12.2*) TARGET=darwin21.3; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
12.3*) TARGET=darwin21.4; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
12.4*) TARGET=darwin21.5; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
13.0*) TARGET=darwin22; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
13|13.0*) TARGET=darwin22; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
13.1*) TARGET=darwin22.2; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
13.2*) TARGET=darwin22.3; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
13.3*) TARGET=darwin22.4; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.9; ;;
|
||||
14.0*) TARGET=darwin23; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.13; ;;
|
||||
14|14.0*) TARGET=darwin23; X86_64H_SUPPORTED=1; I386_SUPPORTED=0; ARM_SUPPORTED=1; NEED_TAPI_SUPPORT=1; OSX_VERSION_MIN_INT=10.13; ;;
|
||||
*) echo "Unsupported SDK"; exit 1 ;;
|
||||
esac
|
||||
|
||||
@ -185,7 +185,12 @@ popd &>/dev/null
|
||||
|
||||
## Extract SDK and move it to $SDK_DIR ##
|
||||
|
||||
SDK=$(ls $TARBALL_DIR/MacOSX$SDK_VERSION*)
|
||||
if [[ $SDK_VERSION == *.* ]]; then
|
||||
SDK=$(ls $TARBALL_DIR/MacOSX$SDK_VERSION*)
|
||||
else
|
||||
SDK=$(ls $TARBALL_DIR/MacOSX$SDK_VERSION.*| grep -v "\.0")
|
||||
fi
|
||||
|
||||
echo ""
|
||||
extract $SDK
|
||||
|
||||
@ -198,7 +203,10 @@ fi
|
||||
|
||||
## Fix broken SDKs ##
|
||||
|
||||
pushd $SDK_DIR/MacOSX$SDK_VERSION.sdk &>/dev/null
|
||||
pushd $SDK_DIR/MacOSX$SDK_VERSION*.sdk &>/dev/null
|
||||
# Remove troublesome libc++ IWYU mapping file that may cause compiler errors
|
||||
# https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUMappings.md
|
||||
rm -f usr/include/c++/v1/libcxx.imp
|
||||
set +e
|
||||
files=$(echo $BASE_DIR/oclang/quirks/*.h)
|
||||
for file in $files; do
|
||||
|
@ -57,7 +57,8 @@ case $CLANG_VERSION in
|
||||
15.* ) BRANCH=release/15.x; USE_CMAKE=1; ;;
|
||||
16.* ) BRANCH=release/16.x; USE_CMAKE=1; ;;
|
||||
17.* ) BRANCH=main; USE_CMAKE=1; ;;
|
||||
* ) echo "Unsupported Clang version, must be >= 3.2 and <= 15.0" 1>&2; exit 1;
|
||||
18.* ) BRANCH=main; USE_CMAKE=1; ;;
|
||||
* ) echo "Unsupported Clang version, must be >= 3.2 and <= 18.0" 1>&2; exit 1;
|
||||
esac
|
||||
|
||||
if [ $(osxcross-cmp $CLANG_VERSION ">=" 3.5) -eq 1 ]; then
|
||||
|
@ -140,7 +140,7 @@ void Target::overrideDefaultSDKPath(const char *SDKSearchDir) {
|
||||
}
|
||||
}
|
||||
|
||||
bool Target::getSDKPath(std::string &path, bool MacOSX10_16Fix) const {
|
||||
bool Target::getSDKPath(std::string &path, bool MacOSX10_16Fix, bool majorVersionOnly) const {
|
||||
OSVersion SDKVer = getSDKOSNum();
|
||||
|
||||
if (SDK) {
|
||||
@ -150,7 +150,11 @@ bool Target::getSDKPath(std::string &path, bool MacOSX10_16Fix) const {
|
||||
SDKVer = OSVersion(10, 16);
|
||||
path = execpath;
|
||||
path += "/../SDK/MacOSX";
|
||||
if (majorVersionOnly) {
|
||||
path += SDKVer.majorStr();
|
||||
} else {
|
||||
path += SDKVer.shortStr();
|
||||
}
|
||||
if (SDKVer <= OSVersion(10, 4))
|
||||
path += "u";
|
||||
path += ".sdk";
|
||||
@ -161,6 +165,9 @@ bool Target::getSDKPath(std::string &path, bool MacOSX10_16Fix) const {
|
||||
if (SDKVer == OSVersion(11, 0) && !MacOSX10_16Fix)
|
||||
return getSDKPath(path, true);
|
||||
|
||||
if (SDKVer.minor == 0 && !majorVersionOnly)
|
||||
return getSDKPath(path, false, true);
|
||||
|
||||
err << "cannot find macOS SDK (expected in: " << path << ")"
|
||||
<< err.endl();
|
||||
|
||||
|
@ -96,7 +96,7 @@ struct Target {
|
||||
|
||||
OSVersion getSDKOSNum() const;
|
||||
void overrideDefaultSDKPath(const char *SDKSearchDir);
|
||||
bool getSDKPath(std::string &path, bool MacOSX10_16Fix = false) const;
|
||||
bool getSDKPath(std::string &path, bool MacOSX10_16Fix = false, bool majorVersionOnly = false) const;
|
||||
|
||||
bool getMacPortsDir(std::string &path) const;
|
||||
bool getMacPortsSysRootDir(std::string &path) const;
|
||||
|
@ -326,6 +326,12 @@ struct OSVersion {
|
||||
return tmp.str();
|
||||
}
|
||||
|
||||
std::string majorStr() const {
|
||||
std::stringstream tmp;
|
||||
tmp << major;
|
||||
return tmp.str();
|
||||
}
|
||||
|
||||
int major;
|
||||
int minor;
|
||||
int patch;
|
||||
|
Loading…
Reference in New Issue
Block a user