macos build fix 4

This commit is contained in:
t1amak
2025-11-13 19:36:08 +00:00
parent 4f9d40f396
commit 7c19f5fba4
4 changed files with 102 additions and 18 deletions

View File

@@ -9,13 +9,24 @@ set(CMAKE_ASM_COMPILER /usr/local/bin/aarch64-apple-darwin25-as)
set(CMAKE_STRIP /usr/local/bin/aarch64-apple-darwin25-strip)
if(NOT DEFINED CMAKE_OSX_SYSROOT)
execute_process(
COMMAND ${CMAKE_C_COMPILER} -print-sysroot
OUTPUT_VARIABLE _OSX_SYSROOT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(CMAKE_OSX_SYSROOT "${_OSX_SYSROOT}")
if(DEFINED ENV{SDKROOT} AND IS_DIRECTORY "$ENV{SDKROOT}")
set(CMAKE_OSX_SYSROOT "$ENV{SDKROOT}")
else()
foreach(_sdk_root "/usr/local/target/SDK" "/usr/local/osxcross/target/SDK" "/osxcross/target/SDK")
if(IS_DIRECTORY "${_sdk_root}")
file(GLOB _sdk_candidates "${_sdk_root}/MacOSX*.sdk")
list(SORT _sdk_candidates)
list(REVERSE _sdk_candidates)
if(_sdk_candidates)
list(GET _sdk_candidates 0 CMAKE_OSX_SYSROOT)
break()
endif()
endif()
endforeach()
endif()
endif()
set(CMAKE_SYSROOT "${CMAKE_OSX_SYSROOT}")
set(CMAKE_SYSTEM_FRAMEWORK_PATH "${CMAKE_OSX_SYSROOT}/System/Library/Frameworks")
if(DEFINED CMAKE_OSX_SYSROOT AND CMAKE_OSX_SYSROOT)
set(CMAKE_SYSROOT "${CMAKE_OSX_SYSROOT}")
set(CMAKE_SYSTEM_FRAMEWORK_PATH "${CMAKE_OSX_SYSROOT}/System/Library/Frameworks")
endif()

View File

@@ -9,13 +9,24 @@ set(CMAKE_ASM_COMPILER /usr/local/bin/x86_64-apple-darwin25-as)
set(CMAKE_STRIP /usr/local/bin/x86_64-apple-darwin25-strip)
if(NOT DEFINED CMAKE_OSX_SYSROOT)
execute_process(
COMMAND ${CMAKE_C_COMPILER} -print-sysroot
OUTPUT_VARIABLE _OSX_SYSROOT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
set(CMAKE_OSX_SYSROOT "${_OSX_SYSROOT}")
if(DEFINED ENV{SDKROOT} AND IS_DIRECTORY "$ENV{SDKROOT}")
set(CMAKE_OSX_SYSROOT "$ENV{SDKROOT}")
else()
foreach(_sdk_root "/usr/local/target/SDK" "/usr/local/osxcross/target/SDK" "/osxcross/target/SDK")
if(IS_DIRECTORY "${_sdk_root}")
file(GLOB _sdk_candidates "${_sdk_root}/MacOSX*.sdk")
list(SORT _sdk_candidates)
list(REVERSE _sdk_candidates)
if(_sdk_candidates)
list(GET _sdk_candidates 0 CMAKE_OSX_SYSROOT)
break()
endif()
endif()
endforeach()
endif()
endif()
set(CMAKE_SYSROOT "${CMAKE_OSX_SYSROOT}")
set(CMAKE_SYSTEM_FRAMEWORK_PATH "${CMAKE_OSX_SYSROOT}/System/Library/Frameworks")
if(DEFINED CMAKE_OSX_SYSROOT AND CMAKE_OSX_SYSROOT)
set(CMAKE_SYSROOT "${CMAKE_OSX_SYSROOT}")
set(CMAKE_SYSTEM_FRAMEWORK_PATH "${CMAKE_OSX_SYSROOT}/System/Library/Frameworks")
endif()

View File

@@ -19,7 +19,38 @@ flags_datetime="-D__DATE__=\"\\\"$CURRENT_DATE\\\"\" -D__TIME__=\"\\\"$CURRENT_T
flags_libs="-Os -flto -w $flags_size $flags_datetime"
flags_p2pool="$flags_size $flags_datetime"
sdk_sysroot="$(/usr/local/bin/aarch64-apple-darwin25-clang -print-sysroot)"
clang_bin="$(command -v aarch64-apple-darwin25-clang || true)"
if [ -z "$clang_bin" ]; then
echo "aarch64-apple-darwin25-clang not found in PATH" >&2
exit 1
fi
find_macos_sdk() {
if [ -n "${SDKROOT:-}" ] && [ -d "${SDKROOT:-}" ]; then
echo "$SDKROOT"
return 0
fi
for base in /usr/local/target/SDK /usr/local/osxcross/target/SDK /osxcross/target/SDK; do
if [ -d "$base" ]; then
for candidate in "$base"/MacOSX*.sdk; do
if [ -d "$candidate" ]; then
echo "$candidate"
return 0
fi
done
fi
done
find /usr/local -maxdepth 4 -name 'MacOSX*.sdk' -type d 2>/dev/null | head -n 1
}
sdk_sysroot="$(find_macos_sdk)"
if [ -z "$sdk_sysroot" ]; then
echo "Unable to locate macOS SDK sysroot. Set SDKROOT to the SDK path." >&2
exit 1
fi
export SDKROOT="$sdk_sysroot"
cmake_osx_args="-DCMAKE_OSX_SYSROOT=$sdk_sysroot -DCMAKE_SYSROOT=$sdk_sysroot -DCMAKE_SYSTEM_FRAMEWORK_PATH=$sdk_sysroot/System/Library/Frameworks"

View File

@@ -19,7 +19,38 @@ flags_datetime="-D__DATE__=\"\\\"$CURRENT_DATE\\\"\" -D__TIME__=\"\\\"$CURRENT_T
flags_libs="-Os -flto -w $flags_size $flags_datetime"
flags_p2pool="$flags_size $flags_datetime"
sdk_sysroot="$(/usr/local/bin/x86_64-apple-darwin25-clang -print-sysroot)"
clang_bin="$(command -v x86_64-apple-darwin25-clang || true)"
if [ -z "$clang_bin" ]; then
echo "x86_64-apple-darwin25-clang not found in PATH" >&2
exit 1
fi
find_macos_sdk() {
if [ -n "${SDKROOT:-}" ] && [ -d "${SDKROOT:-}" ]; then
echo "$SDKROOT"
return 0
fi
for base in /usr/local/target/SDK /usr/local/osxcross/target/SDK /osxcross/target/SDK; do
if [ -d "$base" ]; then
for candidate in "$base"/MacOSX*.sdk; do
if [ -d "$candidate" ]; then
echo "$candidate"
return 0
fi
done
fi
done
find /usr/local -maxdepth 4 -name 'MacOSX*.sdk' -type d 2>/dev/null | head -n 1
}
sdk_sysroot="$(find_macos_sdk)"
if [ -z "$sdk_sysroot" ]; then
echo "Unable to locate macOS SDK sysroot. Set SDKROOT to the SDK path." >&2
exit 1
fi
export SDKROOT="$sdk_sysroot"
cmake_osx_args="-DCMAKE_OSX_SYSROOT=$sdk_sysroot -DCMAKE_SYSROOT=$sdk_sysroot -DCMAKE_SYSTEM_FRAMEWORK_PATH=$sdk_sysroot/System/Library/Frameworks"