diff --git a/ObjectiveGitFramework.xcodeproj/project.pbxproj b/ObjectiveGitFramework.xcodeproj/project.pbxproj index bdfc1d91..1a3e1ac9 100644 --- a/ObjectiveGitFramework.xcodeproj/project.pbxproj +++ b/ObjectiveGitFramework.xcodeproj/project.pbxproj @@ -1390,9 +1390,12 @@ files = ( ); inputPaths = ( + "$(SRCROOT)/script/update_libgit2", + "$(SRCROOT)/External/libgit2/CMakeLists.txt", ); name = libgit2; outputPaths = ( + "$(SRCROOT)/External/libgit2.a", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -1743,6 +1746,7 @@ CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; ENABLE_TESTABILITY = YES; + EXCLUDED_ARCHS = x86_64; GCC_NO_COMMON_BLOCKS = YES; GCC_TREAT_WARNINGS_AS_ERRORS = NO; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; @@ -1783,6 +1787,7 @@ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; + EXCLUDED_ARCHS = x86_64; GCC_NO_COMMON_BLOCKS = YES; GCC_TREAT_WARNINGS_AS_ERRORS = NO; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; @@ -1918,6 +1923,7 @@ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; + EXCLUDED_ARCHS = x86_64; GCC_NO_COMMON_BLOCKS = YES; GCC_TREAT_WARNINGS_AS_ERRORS = NO; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; @@ -2136,6 +2142,7 @@ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; + EXCLUDED_ARCHS = x86_64; GCC_NO_COMMON_BLOCKS = YES; GCC_TREAT_WARNINGS_AS_ERRORS = NO; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = NO; diff --git a/script/update_libgit2 b/script/update_libgit2 index 3152c446..068d2fd1 100755 --- a/script/update_libgit2 +++ b/script/update_libgit2 @@ -2,6 +2,15 @@ set -e +product="External/libgit2.a" +newer_source=$(find External/libgit2 \ + \( -path 'External/libgit2/.git' -o -path 'External/libgit2/build' \) -prune -o \ + -type f -newer "$product" -print -quit 2>/dev/null || true) +if [ -f "$product" ] && [ -z "$newer_source" ]; then + echo "libgit2 is up to date." + exit 0 +fi + cd "External/libgit2" if [ -d "build" ]; then @@ -12,7 +21,7 @@ mkdir build cd build # OpenSSL is keg-only, so add its pkgconfig location manually -if [[ $(uname -m) == 'arm64' ]]; then +if [ "$(uname -m)" = 'arm64' ]; then echo "Running on a Apple Silicon M1" export ARCH_PREFIX=/opt/homebrew else