Fix build issues on macos

pre-release-3
James H Ball 2025-01-04 16:47:24 +00:00
rodzic 35fd78de44
commit 866ee0f568
6 zmienionych plików z 194 dodań i 172 usunięć

Wyświetl plik

@ -1,13 +0,0 @@
#!/bin/bash
if [[ "$(uname)" != "Darwin" ]]; then
echo "Not macos"
exit 0
fi
PROJECT_ROOT="$1"
PBXPROJ_FILE="$2"
PROJECT_NAME="$3"
sh -c "$PROJECT_ROOT/ci/remove_embed_frameworks.sh \"$PBXPROJ_FILE\" \"$PROJECT_NAME\" \"All"\"
sh -c "$PROJECT_ROOT/ci/remove_embed_frameworks.sh \"$PBXPROJ_FILE\" \"$PROJECT_NAME\" \"Shared Code"\"

Wyświetl plik

@ -1,136 +0,0 @@
#!/bin/bash
if [[ "$(uname)" != "Darwin" ]]; then
echo "Not macos"
exit 0
fi
# Path to the project.pbxproj file
PBXPROJ_FILE="$1"
PROJECT_NAME="$2"
TARGET_NAME="$3"
if [[ ! -f "$PBXPROJ_FILE" ]]; then
echo "Error: File '$PBXPROJ_FILE' not found!"
exit 1
fi
# Temporary file for storing embed framework blocks and the final output
TEMP_EMBED_FILE="$(mktemp)"
TEMP_FILE="$(mktemp)"
# Step 1: Find all 'Embed Frameworks' blocks and their IDs
echo "Debug: Extracting Embed Frameworks blocks and IDs..."
awk '
BEGIN { in_embed_block = 0; current_id = ""; embed_block = ""; }
{
# Look for the start of an Embed Frameworks block
if ($0 ~ /^[[:space:]]*[A-Z0-9]+[[:space:]]*\/\* Embed Frameworks \*\/[[:space:]]*=/) {
in_embed_block = 1;
split($0, parts, " ");
current_id = parts[1];
embed_block = $0 "\n"; # Start of the block
}
# Add lines to the block if we are inside it
if (in_embed_block) {
embed_block = embed_block $0 "\n";
}
# Look for the end of the Embed Frameworks block
if (in_embed_block && $0 ~ /^[[:space:]]*};/) {
in_embed_block = 0;
# Store the embed block and ID
print current_id "\t" embed_block;
embed_block = ""; # Reset the block for the next one
current_id = "";
}
}
' "$PBXPROJ_FILE" > "$TEMP_EMBED_FILE"
# Step 2: Find the ID of the target
TARGET_ID=$(grep -E "^\s*[A-Z0-9]+ \/\* $PROJECT_NAME - $TARGET_NAME \*\/ = {" "$PBXPROJ_FILE" | grep -oE '^\s*[A-Z0-9]+' | tr -d '[:space:]')
if [[ -z "$TARGET_ID" ]]; then
echo "Error: Could not find the '$TARGET_NAME' target!"
exit 1
fi
echo "Debug: Found target ID: $TARGET_ID"
# Step 3: Extract the buildPhases for the target
echo "Debug: Extracting buildPhases for the '$TARGET_NAME' target..."
BUILD_PHASES=$(awk -v target_id="$TARGET_ID" -v project_name="$PROJECT_NAME" -v target_name="$TARGET_NAME" '
BEGIN { found_target = 0; in_build_phases = 0; }
{
# Look for the target block
if ($0 ~ target_id " /\\* " project_name " - " target_name " \\*/ = \\{") { found_target = 1; }
# Capture the buildPhases section
if (found_target && $0 ~ /buildPhases = \(/) {
in_build_phases = 1;
}
if (in_build_phases) {
print $0;
}
# Stop capturing buildPhases after the closing parenthesis
if (in_build_phases && $0 ~ /^[[:space:]]*\);/) {
in_build_phases = 0;
}
# End target block
if (found_target && $0 ~ /^[[:space:]]*\};/) {
found_target = 0;
}
}
' "$PBXPROJ_FILE" | grep -oE '^\s*[A-Z0-9]+' | tr -d "[:blank:]")
# Debug: Show the captured buildPhases
echo "Debug: Build Phases for '$TARGET_NAME':"
echo "$BUILD_PHASES"
# Step 4: Extract the Embed Framework ID that matches the build phase ID
echo "Debug: Matching Embed Frameworks with Build Phases..."
EMBED_ID=""
while read -r build_phase_id; do
# For each build phase ID, check if it exists in TEMP_EMBED_FILE
# Extract the matching Embed Framework ID from TEMP_EMBED_FILE
EMBED_ID=$(grep "$build_phase_id" "$TEMP_EMBED_FILE")
# If a matching Embed ID is found, exit the loop
if [[ -n "$EMBED_ID" ]]; then
EMBED_ID=$build_phase_id
echo "Debug: Found matching Embed ID: $EMBED_ID"
break
fi
done <<< "$BUILD_PHASES"
if [[ -z "$EMBED_ID" ]]; then
echo "Error: Could not find a matching Embed Frameworks ID in the build phases!"
exit 1
fi
# Step 5: Remove the 'Embed Frameworks' block and references to it
echo "Debug: Removing the Embed Frameworks block with ID $EMBED_ID..."
awk -v embed_id="$EMBED_ID" '
{
# Skip the Embed Frameworks block
if ($0 ~ embed_id " \\*/ = {") {in_embed_block=1}
if (in_embed_block && $0 ~ "^[[:space:]]*};") {in_embed_block=0; next}
if (in_embed_block) next
# Remove references to the Embed Frameworks block in the build phases
if ($0 ~ "buildPhases = \\(") {in_build_phases=1}
if (in_build_phases && $0 ~ embed_id ",") {next}
if (in_build_phases && $0 ~ "^[[:space:]]*\\);") {in_build_phases=0}
# Print the remaining lines
print
}' "$PBXPROJ_FILE" > "$TEMP_FILE"
# Replace the original file with the modified file
mv "$TEMP_FILE" "$PBXPROJ_FILE"
echo "Successfully removed the Embed Frameworks block for '$TARGET_NAME'."

Wyświetl plik

@ -6,7 +6,7 @@
cppLanguageStandard="20" projectLineFeed="&#10;" headerPath="./include"
version="2.4.0" companyName="James H Ball" companyWebsite="https://osci-render.com"
companyEmail="james@ball.sh" defines="NOMINMAX=1&#10;INTERNET_FLAG_NO_AUTO_REDIRECT=0&#10;SOSCI_FEATURES=1"
pluginAUMainType="'aumf'" postExportShellCommandPosix="%%1%%/ci/post_export.sh %%1%% %%1%%/Builds/osci-render/MacOSX/osci-render.xcodeproj/project.pbxproj osci-render">
pluginAUMainType="'aumf'">
<MAINGROUP id="j5Ge2T" name="osci-render">
<GROUP id="{5ABCED88-0059-A7AF-9596-DBF91DDB0292}" name="Resources">
<GROUP id="{8930EC48-30FD-646B-9DC5-0861171F8B2E}" name="fonts">
@ -777,17 +777,16 @@
<XCODE_MAC targetFolder="Builds/osci-render/MacOSX" extraLinkerFlags="-Wl,-weak_reference_mismatches,weak"
extraDefs="JUCE_SILENCE_XCODE_15_LINKER_WARNING=1" smallIcon="aZXbCi"
bigIcon="aZXbCi" applicationCategory="public.app-category.music"
microphonePermissionNeeded="1" frameworkSearchPaths="../../../External/syphon"
embeddedFrameworks="../../../External/syphon/Syphon.framework"
extraCustomFrameworks="../../../External/syphon/Syphon.framework"
hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.device.audio-input"
microphonePermissionNeeded="1" frameworkSearchPaths="/Library/Frameworks"
extraCustomFrameworks="/Library/Frameworks/Syphon.framework"
hardenedRuntime="1" hardenedRuntimeOptions="com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input"
iosDevelopmentTeamID="D86A3M3H2L">
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" targetName="osci-render" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '@executable_path/../Frameworks' '@executable_path/',OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
<CONFIGURATION isDebug="1" name="Debug" targetName="osci-render" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '/Library/Frameworks',OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/>
<CONFIGURATION name="Release" targetName="osci-render" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '@executable_path/../Frameworks' '@executable_path/',CODE_SIGN_INJECT_BASE_ENTITLEMENTS=NO,OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
<CONFIGURATION name="Release" targetName="osci-render" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '/Library/Frameworks',CODE_SIGN_INJECT_BASE_ENTITLEMENTS=NO,OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/>
<CONFIGURATION name="Release (Development)" targetName="osci-render" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '@executable_path/../Frameworks' '@executable_path/',OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
<CONFIGURATION name="Release (Development)" targetName="osci-render" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '/Library/Frameworks',OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/>
</CONFIGURATIONS>
<MODULEPATHS>

Wyświetl plik

@ -197,7 +197,36 @@
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<array>
<dict>
<key>BUNDLE_CAN_DOWNGRADE</key>
<false/>
<key>BUNDLE_POSTINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>BUNDLE_PREINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>../External/syphon/Syphon.framework</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>509</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
@ -765,7 +794,36 @@
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<array>
<dict>
<key>BUNDLE_CAN_DOWNGRADE</key>
<false/>
<key>BUNDLE_POSTINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>BUNDLE_PREINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>../External/syphon/Syphon.framework</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>509</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
@ -1268,7 +1326,36 @@
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<array>
<dict>
<key>BUNDLE_CAN_DOWNGRADE</key>
<false/>
<key>BUNDLE_POSTINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>BUNDLE_PREINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>../External/syphon/Syphon.framework</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>509</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>

Wyświetl plik

@ -197,7 +197,36 @@
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<array>
<dict>
<key>BUNDLE_CAN_DOWNGRADE</key>
<false/>
<key>BUNDLE_POSTINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>BUNDLE_PREINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>../External/syphon/Syphon.framework</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>509</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
@ -765,7 +794,36 @@
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<array>
<dict>
<key>BUNDLE_CAN_DOWNGRADE</key>
<false/>
<key>BUNDLE_POSTINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>BUNDLE_PREINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>../External/syphon/Syphon.framework</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>509</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
@ -1268,7 +1326,36 @@
</dict>
<dict>
<key>CHILDREN</key>
<array/>
<array>
<dict>
<key>BUNDLE_CAN_DOWNGRADE</key>
<false/>
<key>BUNDLE_POSTINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>BUNDLE_PREINSTALL_PATH</key>
<dict>
<key>PATH_TYPE</key>
<integer>0</integer>
</dict>
<key>CHILDREN</key>
<array/>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>
<string>../External/syphon/Syphon.framework</string>
<key>PATH_TYPE</key>
<integer>1</integer>
<key>PERMISSIONS</key>
<integer>509</integer>
<key>TYPE</key>
<integer>3</integer>
<key>UID</key>
<integer>0</integer>
</dict>
</array>
<key>GID</key>
<integer>0</integer>
<key>PATH</key>

Wyświetl plik

@ -6,8 +6,7 @@
headerPath="./include" version="1.0.0" companyName="James H Ball"
companyWebsite="https://osci-render.com" companyEmail="james@ball.sh"
defines="NOMINMAX=1&#10;INTERNET_FLAG_NO_AUTO_REDIRECT=0&#10;SOSCI_FEATURES=1"
pluginManufacturerCode="Jhba" pluginCode="Sosc" pluginAUMainType="'aufx'"
postExportShellCommandPosix="%%1%%/ci/post_export.sh %%1%% %%1%%/Builds/sosci/MacOSX/sosci.xcodeproj/project.pbxproj sosci">
pluginManufacturerCode="Jhba" pluginCode="Sosc" pluginAUMainType="'aufx'">
<MAINGROUP id="j5Ge2T" name="sosci">
<GROUP id="{5ABCED88-0059-A7AF-9596-DBF91DDB0292}" name="Resources">
<GROUP id="{1C0FC3AA-01F6-8768-381C-200ED18AB5F2}" name="fonts">
@ -255,17 +254,16 @@
<XCODE_MAC targetFolder="Builds/sosci/MacOSX" extraLinkerFlags="-Wl,-weak_reference_mismatches,weak"
extraDefs="JUCE_SILENCE_XCODE_15_LINKER_WARNING=1" smallIcon="CeSRLV"
bigIcon="CeSRLV" applicationCategory="public.app-category.music"
microphonePermissionNeeded="1" embeddedFrameworks="../../../External/syphon/Syphon.framework"
extraCustomFrameworks="../../../External/syphon/Syphon.framework"
frameworkSearchPaths="../../../External/syphon" hardenedRuntime="1"
hardenedRuntimeOptions="com.apple.security.device.audio-input"
microphonePermissionNeeded="1" extraCustomFrameworks="/Library/Frameworks/Syphon.framework"
frameworkSearchPaths="/Library/Frameworks" hardenedRuntime="1"
hardenedRuntimeOptions="com.apple.security.cs.disable-library-validation,com.apple.security.device.audio-input"
iosDevelopmentTeamID="D86A3M3H2L">
<CONFIGURATIONS>
<CONFIGURATION isDebug="1" name="Debug" targetName="sosci" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '@executable_path/../Frameworks' '@executable_path/',OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
<CONFIGURATION isDebug="1" name="Debug" targetName="sosci" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '/Library/Frameworks',OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/>
<CONFIGURATION name="Release" targetName="sosci" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '@executable_path/../Frameworks' '@executable_path/',CODE_SIGN_INJECT_BASE_ENTITLEMENTS=NO,OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
<CONFIGURATION name="Release" targetName="sosci" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '/Library/Frameworks',CODE_SIGN_INJECT_BASE_ENTITLEMENTS=NO,OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/>
<CONFIGURATION name="Release (Development)" targetName="sosci" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '@executable_path/../Frameworks' '@executable_path/',OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
<CONFIGURATION name="Release (Development)" targetName="sosci" customXcodeFlags="LD_RUNPATH_SEARCH_PATHS = '/Library/Frameworks',OTHER_CODE_SIGN_FLAGS = --timestamp --force --deep"
codeSigningIdentity="Developer ID Application: James Ball (D86A3M3H2L)"/>
</CONFIGURATIONS>
<MODULEPATHS>