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.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.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; ;;
|
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.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.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; ;;
|
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.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.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.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; ;;
|
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.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.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; ;;
|
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 ;;
|
*) echo "Unsupported SDK"; exit 1 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
@ -185,7 +185,12 @@ popd &>/dev/null
|
|||||||
|
|
||||||
## Extract SDK and move it to $SDK_DIR ##
|
## 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 ""
|
echo ""
|
||||||
extract $SDK
|
extract $SDK
|
||||||
|
|
||||||
@ -198,7 +203,10 @@ fi
|
|||||||
|
|
||||||
## Fix broken SDKs ##
|
## 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
|
set +e
|
||||||
files=$(echo $BASE_DIR/oclang/quirks/*.h)
|
files=$(echo $BASE_DIR/oclang/quirks/*.h)
|
||||||
for file in $files; do
|
for file in $files; do
|
||||||
|
@ -57,7 +57,8 @@ case $CLANG_VERSION in
|
|||||||
15.* ) BRANCH=release/15.x; USE_CMAKE=1; ;;
|
15.* ) BRANCH=release/15.x; USE_CMAKE=1; ;;
|
||||||
16.* ) BRANCH=release/16.x; USE_CMAKE=1; ;;
|
16.* ) BRANCH=release/16.x; USE_CMAKE=1; ;;
|
||||||
17.* ) BRANCH=main; 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
|
esac
|
||||||
|
|
||||||
if [ $(osxcross-cmp $CLANG_VERSION ">=" 3.5) -eq 1 ]; then
|
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();
|
OSVersion SDKVer = getSDKOSNum();
|
||||||
|
|
||||||
if (SDK) {
|
if (SDK) {
|
||||||
@ -150,7 +150,11 @@ bool Target::getSDKPath(std::string &path, bool MacOSX10_16Fix) const {
|
|||||||
SDKVer = OSVersion(10, 16);
|
SDKVer = OSVersion(10, 16);
|
||||||
path = execpath;
|
path = execpath;
|
||||||
path += "/../SDK/MacOSX";
|
path += "/../SDK/MacOSX";
|
||||||
path += SDKVer.shortStr();
|
if (majorVersionOnly) {
|
||||||
|
path += SDKVer.majorStr();
|
||||||
|
} else {
|
||||||
|
path += SDKVer.shortStr();
|
||||||
|
}
|
||||||
if (SDKVer <= OSVersion(10, 4))
|
if (SDKVer <= OSVersion(10, 4))
|
||||||
path += "u";
|
path += "u";
|
||||||
path += ".sdk";
|
path += ".sdk";
|
||||||
@ -161,6 +165,9 @@ bool Target::getSDKPath(std::string &path, bool MacOSX10_16Fix) const {
|
|||||||
if (SDKVer == OSVersion(11, 0) && !MacOSX10_16Fix)
|
if (SDKVer == OSVersion(11, 0) && !MacOSX10_16Fix)
|
||||||
return getSDKPath(path, true);
|
return getSDKPath(path, true);
|
||||||
|
|
||||||
|
if (SDKVer.minor == 0 && !majorVersionOnly)
|
||||||
|
return getSDKPath(path, false, true);
|
||||||
|
|
||||||
err << "cannot find macOS SDK (expected in: " << path << ")"
|
err << "cannot find macOS SDK (expected in: " << path << ")"
|
||||||
<< err.endl();
|
<< err.endl();
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ struct Target {
|
|||||||
|
|
||||||
OSVersion getSDKOSNum() const;
|
OSVersion getSDKOSNum() const;
|
||||||
void overrideDefaultSDKPath(const char *SDKSearchDir);
|
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 getMacPortsDir(std::string &path) const;
|
||||||
bool getMacPortsSysRootDir(std::string &path) const;
|
bool getMacPortsSysRootDir(std::string &path) const;
|
||||||
|
@ -326,6 +326,12 @@ struct OSVersion {
|
|||||||
return tmp.str();
|
return tmp.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string majorStr() const {
|
||||||
|
std::stringstream tmp;
|
||||||
|
tmp << major;
|
||||||
|
return tmp.str();
|
||||||
|
}
|
||||||
|
|
||||||
int major;
|
int major;
|
||||||
int minor;
|
int minor;
|
||||||
int patch;
|
int patch;
|
||||||
|
Loading…
Reference in New Issue
Block a user