diff --git a/build.sh b/build.sh index 5214fa5..806cc79 100755 --- a/build.sh +++ b/build.sh @@ -257,10 +257,25 @@ fi cp -f "$BASE_DIR/tools/toolchain.cmake" "$TARGET_DIR/" cp -f "$BASE_DIR/tools/osxcross-cmake" "$TARGET_DIR/bin/" + chmod 755 "$TARGET_DIR/bin/osxcross-cmake" -create_symlink osxcross-cmake "$TARGET_DIR/bin/i386-apple-$TARGET-cmake" + +if [ $I386_SUPPORTED -eq 1 ]; then + create_symlink osxcross-cmake "$TARGET_DIR/bin/i386-apple-$TARGET-cmake" +fi + create_symlink osxcross-cmake "$TARGET_DIR/bin/x86_64-apple-$TARGET-cmake" +if [ $X86_64H_SUPPORTED -eq 1 ]; then + create_symlink osxcross-cmake "$TARGET_DIR/bin/x86_64h-apple-$TARGET-cmake" +fi + +if [ $ARM_SUPPORTED -eq 1 ]; then + create_symlink osxcross-cmake "$TARGET_DIR/bin/arm64-apple-$TARGET-cmake" + create_symlink osxcross-cmake "$TARGET_DIR/bin/arm64e-apple-$TARGET-cmake" +fi + + ## Compiler test ## unset MACOSX_DEPLOYMENT_TARGET diff --git a/tools/toolchain.cmake b/tools/toolchain.cmake index 19794cf..0ebba39 100644 --- a/tools/toolchain.cmake +++ b/tools/toolchain.cmake @@ -21,15 +21,8 @@ set(CMAKE_SYSTEM_NAME "Darwin") string(REGEX REPLACE "-.*" "" CMAKE_SYSTEM_PROCESSOR "${OSXCROSS_HOST}") # specify the cross compiler -if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") - set(CMAKE_C_COMPILER "${OSXCROSS_TARGET_DIR}/bin/o32-clang") - set(CMAKE_CXX_COMPILER "${OSXCROSS_TARGET_DIR}/bin/o32-clang++") -elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") - set(CMAKE_C_COMPILER "${OSXCROSS_TARGET_DIR}/bin/o64-clang") - set(CMAKE_CXX_COMPILER "${OSXCROSS_TARGET_DIR}/bin/o64-clang++") -else() - message(FATAL_ERROR "Unrecognized target architecture") -endif() +set(CMAKE_C_COMPILER "${OSXCROSS_TARGET_DIR}/bin/${OSXCROSS_HOST}-clang") +set(CMAKE_CXX_COMPILER "${OSXCROSS_TARGET_DIR}/bin/${OSXCROSS_HOST}-clang++") # where is the target environment set(CMAKE_FIND_ROOT_PATH diff --git a/wrapper/target.cpp b/wrapper/target.cpp index a89091a..2f4374d 100644 --- a/wrapper/target.cpp +++ b/wrapper/target.cpp @@ -809,8 +809,9 @@ bool Target::setup() { if (OSNum.Num()) { std::string tmp; tmp = "-mmacosx-version-min="; - if (OSNum >= OSVersion(11, 0)) { - // Fix this once clang is able to parse 11.x + if (clangversion <= ClangVersion(11, 0) && + OSNum >= OSVersion(11, 0)) { + // Clang <= 11.0 can't parse -mmacosx-version-min=11.x tmp += "10.16"; } else { tmp += OSNum.Str();