From 6a8270f62678ee620c9da7ea4ecfd3931b83cbed Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 12:16:46 -0400 Subject: [PATCH 01/25] initial script --- .github/workflows/macos_build.yaml | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/macos_build.yaml diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml new file mode 100644 index 0000000..c86baf1 --- /dev/null +++ b/.github/workflows/macos_build.yaml @@ -0,0 +1,31 @@ +name: MacOS Build + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + workflow_dispatch: + +jobs: + build: + runs-on: macos-latest + + steps: + - uses: actions/checkout@v3 + - name: Set up environment + run: | + brew install bash + + - name: Run build script + run: | + chmod +x ./build_sokol_library.sh + ./build_sokol_library.sh + shell: bash + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: macos-build + path: ./build/ + if-no-files-found: error From 1e16bb53944e4c9b0a0bcd5c288d553d4441b3cc Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 12:25:07 -0400 Subject: [PATCH 02/25] testing to see if this triggers on any branch automatically... --- .github/workflows/macos_build.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index c86baf1..9167e63 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -2,9 +2,11 @@ name: MacOS Build on: push: - branches: [ main ] + branches: + - '**' pull_request: - branches: [ main ] + branches: + - '**' workflow_dispatch: jobs: From 9fd5df839ffae06482bb59152ec15ef2724fc442 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 12:27:16 -0400 Subject: [PATCH 03/25] wrong path for script to run in workflow --- .github/workflows/macos_build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 9167e63..12c76b3 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -21,8 +21,8 @@ jobs: - name: Run build script run: | - chmod +x ./build_sokol_library.sh - ./build_sokol_library.sh + chmod +x ./scripts/build_sokol_library.sh + ./scripts/build_sokol_library.sh shell: bash - name: Upload artifacts From a62e996943f50d5f0d803e23485f9fd5e3f58061 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 12:30:11 -0400 Subject: [PATCH 04/25] making some more verbose logs... in the mac workflow --- .github/workflows/macos_build.yaml | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 12c76b3..50f361b 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -4,6 +4,7 @@ on: push: branches: - '**' + - '**' pull_request: branches: - '**' @@ -14,20 +15,38 @@ jobs: runs-on: macos-latest steps: - - uses: actions/checkout@v3 + - name: Checkout repository + uses: actions/checkout@v3 + + - name: List directory contents + run: ls -R + - name: Set up environment run: | brew install bash + echo "Bash version: $(bash --version)" + + - name: Check build script + run: | + ls -l ./scripts/build_sokol_library.sh || echo "build_sokol_library.sh not found in ./scripts/" - name: Run build script run: | - chmod +x ./scripts/build_sokol_library.sh - ./scripts/build_sokol_library.sh + if [ -f "./scripts/build_sokol_library.sh" ]; then + chmod +x ./scripts/build_sokol_library.sh + ./scripts/build_sokol_library.sh + else + echo "Error: build_sokol_library.sh not found" + exit 1 + fi shell: bash + - name: List build artifacts + run: ls -R ./build || echo "build directory not found" + - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: macos-build path: ./build/ - if-no-files-found: error + if-no-files-found: warn From 988aa5efee4f581cd0bdac5ec4d29cf1ff4580ff Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 12:40:06 -0400 Subject: [PATCH 05/25] Updated build_sokol_library.sh for mac support --- scripts/build_sokol_library.sh | 59 ++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/scripts/build_sokol_library.sh b/scripts/build_sokol_library.sh index e2cec23..e4cf7d6 100644 --- a/scripts/build_sokol_library.sh +++ b/scripts/build_sokol_library.sh @@ -36,27 +36,46 @@ fi pushd "$path_sokol" -check_and_install() { - if ! dpkg -s $1 &> /dev/null; then - echo "$1 not found. Attempting to install..." - sudo apt update && sudo apt install -y $1 - if [ $? -ne 0 ]; then - echo "Failed to install $1. Please install manually and try again." - exit 1 - fi - fi -} +# Detect the operating system +OS=$(uname -s) -# Check for OpenGL and X11 development libraries -# check_and_install libgl1-mesa-dev -# check_and_install libx11-dev -# check_and_install libxcursor-dev -# check_and_install libxrandr-dev -# check_and_install libxinerama-dev -# check_and_install libxi-dev -# check_and_install libasound2-dev # ALSA development library +case "$OS" in + Linux*) + echo "Detected Linux operating system" + # Check for OpenGL and X11 development libraries + check_and_install() { + if ! dpkg -s $1 &> /dev/null; then + echo "$1 not found. Attempting to install..." + sudo apt update && sudo apt install -y $1 + if [ $? -ne 0 ]; then + echo "Failed to install $1. Please install manually and try again." + exit 1 + fi + fi + } + # Uncomment these lines if you need to install these dependencies + # check_and_install libgl1-mesa-dev + # check_and_install libx11-dev + # check_and_install libxcursor-dev + # check_and_install libxrandr-dev + # check_and_install libxinerama-dev + # check_and_install libxi-dev + # check_and_install libasound2-dev # ALSA development library -# Run the build script -./build_clibs_linux.sh + echo "Running Linux build script..." + ./build_clibs_linux.sh + ;; + Darwin*) + echo "Detected macOS operating system" + echo "Running macOS build script..." + ./build_clibs_macos.sh + ;; + *) + echo "Unsupported operating system: $OS" + exit 1 + ;; +esac popd + +echo "Build process completed." From 25f1acbb87c22e16c94fbc1b2b205b5200e00adf Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 12:52:33 -0400 Subject: [PATCH 06/25] gh worflow dumb debug --- scripts/build_sokol_library.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/build_sokol_library.sh b/scripts/build_sokol_library.sh index e4cf7d6..b235d6a 100644 --- a/scripts/build_sokol_library.sh +++ b/scripts/build_sokol_library.sh @@ -68,6 +68,7 @@ case "$OS" in Darwin*) echo "Detected macOS operating system" echo "Running macOS build script..." + ls -al ./build_clibs_macos.sh ;; *) From 26744f40cce44e485c60e6dab58a2f40102eb493 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 12:58:04 -0400 Subject: [PATCH 07/25] worfklow: make sure git is installed --- .github/workflows/macos_build.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 50f361b..df3a5b3 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -21,6 +21,16 @@ jobs: - name: List directory contents run: ls -R + - name: Check for Git and install if necessary + run: | + if ! command -v git &> /dev/null; then + echo "Git not found. Installing Git..." + brew install git + else + echo "Git is already installed." + fi + git --version + - name: Set up environment run: | brew install bash From 7ebc071724d1d2dafb9b6c5081f4775c03f63fa3 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 12:59:43 -0400 Subject: [PATCH 08/25] worflow: more dumb debug --- scripts/build_sokol_demo.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/build_sokol_demo.sh b/scripts/build_sokol_demo.sh index c63e82d..25c5a80 100644 --- a/scripts/build_sokol_demo.sh +++ b/scripts/build_sokol_demo.sh @@ -40,6 +40,7 @@ path_sokol_tools="$path_thirdparty/sokol-tools" sokol_build_clibs_command="$path_scripts/build_sokol_library.sh" +echo "Should be cloning...?" clone_gitrepo "$path_freetype" "$url_freetype" clone_gitrepo "$path_sokol_tools" "$url_sokol_tools" From 93cae9a27f39a5bfc48d524c420d0bd1c694be76 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:01:04 -0400 Subject: [PATCH 09/25] workflow: wrong script --- .github/workflows/macos_build.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index df3a5b3..9b3a061 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -38,15 +38,15 @@ jobs: - name: Check build script run: | - ls -l ./scripts/build_sokol_library.sh || echo "build_sokol_library.sh not found in ./scripts/" + ls -l ./scripts/build_sokol_demo.sh || echo "build_sokol_demo.sh not found in ./scripts/" - name: Run build script run: | - if [ -f "./scripts/build_sokol_library.sh" ]; then - chmod +x ./scripts/build_sokol_library.sh - ./scripts/build_sokol_library.sh + if [ -f "./scripts/build_sokol_demo.sh" ]; then + chmod +x ./scripts/build_sokol_demo.sh + ./scripts/build_sokol_demo.sh else - echo "Error: build_sokol_library.sh not found" + echo "Error: build_sokol_demo.sh not found" exit 1 fi shell: bash From 2aec34fb69985367e2210f70253cc0045e270eba Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:05:08 -0400 Subject: [PATCH 10/25] worflow: skip check --- .github/workflows/macos_build.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 9b3a061..31a9eda 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -36,9 +36,9 @@ jobs: brew install bash echo "Bash version: $(bash --version)" - - name: Check build script - run: | - ls -l ./scripts/build_sokol_demo.sh || echo "build_sokol_demo.sh not found in ./scripts/" + # - name: Check build script + # run: | + # ls -l ./scripts/build_sokol_demo.sh || echo "build_sokol_demo.sh not found in ./scripts/" - name: Run build script run: | From 06f82b7328f3762d774b93aaff22b54826c2040e Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:07:48 -0400 Subject: [PATCH 11/25] worfklow: make sure nproc is installed --- .github/workflows/macos_build.yaml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 31a9eda..526bade 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -21,7 +21,7 @@ jobs: - name: List directory contents run: ls -R - - name: Check for Git and install if necessary + - name: Set up environment run: | if ! command -v git &> /dev/null; then echo "Git not found. Installing Git..." @@ -31,14 +31,15 @@ jobs: fi git --version - - name: Set up environment - run: | brew install bash echo "Bash version: $(bash --version)" - # - name: Check build script - # run: | - # ls -l ./scripts/build_sokol_demo.sh || echo "build_sokol_demo.sh not found in ./scripts/" + if command -v nproc &> /dev/null; then + echo "nproc is installed. Number of processors: $(nproc)" + else + echo "Error: nproc installation failed" + exit 1 + fi - name: Run build script run: | From 6c20c3ed39ce03b08e0ed48709ccd610cdebcfae Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:10:17 -0400 Subject: [PATCH 12/25] worflow: nproc doesn't exist on mac --- .github/workflows/macos_build.yaml | 7 ------- scripts/build_sokol_demo.sh | 22 ++++++++++++++++++++-- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 526bade..0b9cb9c 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -34,13 +34,6 @@ jobs: brew install bash echo "Bash version: $(bash --version)" - if command -v nproc &> /dev/null; then - echo "nproc is installed. Number of processors: $(nproc)" - else - echo "Error: nproc installation failed" - exit 1 - fi - - name: Run build script run: | if [ -f "./scripts/build_sokol_demo.sh" ]; then diff --git a/scripts/build_sokol_demo.sh b/scripts/build_sokol_demo.sh index 25c5a80..97e8e4c 100644 --- a/scripts/build_sokol_demo.sh +++ b/scripts/build_sokol_demo.sh @@ -19,8 +19,26 @@ if [ -f "$path_system_details" ]; then CoreCount_Physical=$(grep "PhysicalCores" "$path_system_details" | cut -d'=' -f2) CoreCount_Logical=$(grep "LogicalCores" "$path_system_details" | cut -d'=' -f2) else - CoreCount_Physical=$(nproc --all) - CoreCount_Logical=$(nproc) + # Detect the operating system + OS=$(uname -s) + + case "$OS" in + Darwin*) + # macOS-specific commands + CoreCount_Physical=$(sysctl -n hw.physicalcpu) + CoreCount_Logical=$(sysctl -n hw.logicalcpu) + ;; + Linux*) + # Linux-specific commands + CoreCount_Physical=$(nproc --all) + CoreCount_Logical=$(nproc) + ;; + *) + echo "Unsupported operating system: $OS" + CoreCount_Physical=1 + CoreCount_Logical=1 + ;; + esac echo "[CPU]" > "$path_system_details" echo "PhysicalCores=$CoreCount_Physical" >> "$path_system_details" From 8f4f64bc575e8263bda883767ff142baf04ea7f7 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:14:03 -0400 Subject: [PATCH 13/25] workflow: permissions --- .github/workflows/macos_build.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 0b9cb9c..ef924b7 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -36,13 +36,14 @@ jobs: - name: Run build script run: | - if [ -f "./scripts/build_sokol_demo.sh" ]; then - chmod +x ./scripts/build_sokol_demo.sh - ./scripts/build_sokol_demo.sh - else - echo "Error: build_sokol_demo.sh not found" - exit 1 - fi + echo "Setting execute permissions on specific .sh files" + chmod +x ./scripts/build_sokol_demo.sh + chmod +x ./scripts/build_sokol_library.sh + chmod +x ./scripts/compile_sokol_shaders.sh + chmod +x ./scripts/clean.sh + chmod +x ./scripts/helpers/misc.sh + chmod +x ./scripts/helpers/odin_compiler_defs.sh + ./scripts/build_sokol_demo.sh shell: bash - name: List build artifacts From f05c8994e3e4a410abe451381ceaf9c8491eff26 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:17:04 -0400 Subject: [PATCH 14/25] worflow: more permissions --- .github/workflows/macos_build.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index ef924b7..176161e 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -43,6 +43,11 @@ jobs: chmod +x ./scripts/clean.sh chmod +x ./scripts/helpers/misc.sh chmod +x ./scripts/helpers/odin_compiler_defs.sh + chmod +x ./thirdparty/sokol/build_clibs_macos.sh + chmod +x ./thirdparty/harfbuzz/scripts/misc.sh + chmod +x ./thirdparty/harfbuzz/scripts/build.sh + + echo "Running build_sokol_demo.sh" ./scripts/build_sokol_demo.sh shell: bash From b10b68ea847f232997bd8e4f7ea67b503179cba2 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:22:24 -0400 Subject: [PATCH 15/25] worfklow: removing perm for files that don't exist before cloning --- .github/workflows/macos_build.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 176161e..80dc7e2 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -43,9 +43,6 @@ jobs: chmod +x ./scripts/clean.sh chmod +x ./scripts/helpers/misc.sh chmod +x ./scripts/helpers/odin_compiler_defs.sh - chmod +x ./thirdparty/sokol/build_clibs_macos.sh - chmod +x ./thirdparty/harfbuzz/scripts/misc.sh - chmod +x ./thirdparty/harfbuzz/scripts/build.sh echo "Running build_sokol_demo.sh" ./scripts/build_sokol_demo.sh From f3a10d0a93c7b21c4bbc3857b1239b36ef49d84e Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:28:01 -0400 Subject: [PATCH 16/25] workflow: problably will not work (permissions) --- scripts/build_sokol_demo.sh | 1 - scripts/helpers/misc.sh | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/build_sokol_demo.sh b/scripts/build_sokol_demo.sh index 97e8e4c..2859235 100644 --- a/scripts/build_sokol_demo.sh +++ b/scripts/build_sokol_demo.sh @@ -58,7 +58,6 @@ path_sokol_tools="$path_thirdparty/sokol-tools" sokol_build_clibs_command="$path_scripts/build_sokol_library.sh" -echo "Should be cloning...?" clone_gitrepo "$path_freetype" "$url_freetype" clone_gitrepo "$path_sokol_tools" "$url_sokol_tools" diff --git a/scripts/helpers/misc.sh b/scripts/helpers/misc.sh index 3ad335c..29c927f 100644 --- a/scripts/helpers/misc.sh +++ b/scripts/helpers/misc.sh @@ -90,6 +90,8 @@ update_git_repo() { echo 'Pulling...' git -C "$path" pull + chmod +x "$build_command" + echo "Building $url" pushd "$path" > /dev/null eval "$build_command" From d2636a9b13a0a441ab1c3aafd94975ae422eea8f Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:29:40 -0400 Subject: [PATCH 17/25] workflow: woops --- scripts/helpers/misc.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/helpers/misc.sh b/scripts/helpers/misc.sh index 29c927f..febfa2d 100644 --- a/scripts/helpers/misc.sh +++ b/scripts/helpers/misc.sh @@ -65,6 +65,8 @@ update_git_repo() { echo "Cloning repo from $url to $path" git clone "$url" "$path" + chmod +x "$build_command" + echo "Building $url" pushd "$path" > /dev/null eval "$build_command" From c1f8c5641cc03b9dbadec6e790eeba4b15a0f5b5 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:31:20 -0400 Subject: [PATCH 18/25] worfklow: woops 2 --- scripts/helpers/misc.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/scripts/helpers/misc.sh b/scripts/helpers/misc.sh index febfa2d..2dc0a6c 100644 --- a/scripts/helpers/misc.sh +++ b/scripts/helpers/misc.sh @@ -65,10 +65,9 @@ update_git_repo() { echo "Cloning repo from $url to $path" git clone "$url" "$path" - chmod +x "$build_command" - echo "Building $url" pushd "$path" > /dev/null + chmod +x "$build_command" eval "$build_command" popd > /dev/null @@ -92,10 +91,9 @@ update_git_repo() { echo 'Pulling...' git -C "$path" pull - chmod +x "$build_command" - echo "Building $url" pushd "$path" > /dev/null + chmod +x "$build_command" eval "$build_command" popd > /dev/null From 99d64f55a1ea37ab1704060976429028ed723a6e Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:42:50 -0400 Subject: [PATCH 19/25] attempting to fix sokol shaders exectable picked --- scripts/compile_sokol_shaders.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/scripts/compile_sokol_shaders.sh b/scripts/compile_sokol_shaders.sh index 743e605..1316503 100644 --- a/scripts/compile_sokol_shaders.sh +++ b/scripts/compile_sokol_shaders.sh @@ -6,7 +6,16 @@ path_scripts="$path_root/scripts" path_thirdparty="$path_root/thirdparty" path_sokol_tools="$path_thirdparty/sokol-tools" -sokol_shdc="$path_sokol_tools/bin/linux/sokol-shdc" +case "$OS" in + Darwin*) + sokol_shdc="$path_sokol_tools/bin/osx/sokol-shdc" + ;; + Linux*) + sokol_shdc="$path_sokol_tools/bin/linux/sokol-shdc" + ;; +esac +echo "Using sokol-shdc: $sokol_shdc" +chmod +x "$sokol_shdc" path_backend_sokol="$path_backend/sokol" From 9a673f68ef686fa1e318a5db0a494476e44ece18 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:54:59 -0400 Subject: [PATCH 20/25] worflow: fixes to os case switch in shader build script --- scripts/build_sokol_demo.sh | 2 -- scripts/build_sokol_library.sh | 2 -- scripts/compile_sokol_shaders.sh | 7 +++++++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/scripts/build_sokol_demo.sh b/scripts/build_sokol_demo.sh index 2859235..e234093 100644 --- a/scripts/build_sokol_demo.sh +++ b/scripts/build_sokol_demo.sh @@ -19,9 +19,7 @@ if [ -f "$path_system_details" ]; then CoreCount_Physical=$(grep "PhysicalCores" "$path_system_details" | cut -d'=' -f2) CoreCount_Logical=$(grep "LogicalCores" "$path_system_details" | cut -d'=' -f2) else - # Detect the operating system OS=$(uname -s) - case "$OS" in Darwin*) # macOS-specific commands diff --git a/scripts/build_sokol_library.sh b/scripts/build_sokol_library.sh index b235d6a..71ce9a9 100644 --- a/scripts/build_sokol_library.sh +++ b/scripts/build_sokol_library.sh @@ -36,9 +36,7 @@ fi pushd "$path_sokol" -# Detect the operating system OS=$(uname -s) - case "$OS" in Linux*) echo "Detected Linux operating system" diff --git a/scripts/compile_sokol_shaders.sh b/scripts/compile_sokol_shaders.sh index 1316503..579a68b 100644 --- a/scripts/compile_sokol_shaders.sh +++ b/scripts/compile_sokol_shaders.sh @@ -1,5 +1,7 @@ #!/bin/bash +OS=$(uname -s) + path_root="$(git rev-parse --show-toplevel)" path_backend="$path_root/backend" path_scripts="$path_root/scripts" @@ -13,6 +15,11 @@ case "$OS" in Linux*) sokol_shdc="$path_sokol_tools/bin/linux/sokol-shdc" ;; + *) + echo "Unsupported operating system: $OS" + CoreCount_Physical=1 + CoreCount_Logical=1 + ;; esac echo "Using sokol-shdc: $sokol_shdc" chmod +x "$sokol_shdc" From bee81f896c29658a361f1cf13066dadaaf2fde8f Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 13:59:59 -0400 Subject: [PATCH 21/25] workflow: install odin --- .github/workflows/macos_build.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 80dc7e2..ac86e50 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -18,9 +18,6 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: List directory contents - run: ls -R - - name: Set up environment run: | if ! command -v git &> /dev/null; then @@ -34,6 +31,8 @@ jobs: brew install bash echo "Bash version: $(bash --version)" + brew install odin + - name: Run build script run: | echo "Setting execute permissions on specific .sh files" From 44fcdabf38261267c7f6c9d4634cc7ee169ff8a2 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 14:05:36 -0400 Subject: [PATCH 22/25] Fixes for demo build not copying harfbuzz lib in macos --- scripts/build_sokol_demo.sh | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/scripts/build_sokol_demo.sh b/scripts/build_sokol_demo.sh index e234093..0cbfbdd 100644 --- a/scripts/build_sokol_demo.sh +++ b/scripts/build_sokol_demo.sh @@ -22,12 +22,10 @@ else OS=$(uname -s) case "$OS" in Darwin*) - # macOS-specific commands CoreCount_Physical=$(sysctl -n hw.physicalcpu) CoreCount_Logical=$(sysctl -n hw.logicalcpu) ;; Linux*) - # Linux-specific commands CoreCount_Physical=$(nproc --all) CoreCount_Logical=$(nproc) ;; @@ -63,7 +61,19 @@ update_git_repo "$path_sokol" "$url_sokol" "$sokol_build_clibs_command" update_git_repo "$path_harfbuzz" "$url_harfbuzz" "./scripts/build.sh" pushd "$path_thirdparty" > /dev/null - path_harfbuzz_dlls="$path_harfbuzz/lib/linux64" + case "$OS" in + Darwin*) + path_harfbuzz_dlls="$path_harfbuzz/lib/osx" + ;; + Linux*) + path_harfbuzz_dlls="$path_harfbuzz/lib/linux64" + ;; + *) + echo "Unsupported operating system: $OS" + CoreCount_Physical=1 + CoreCount_Logical=1 + ;; + esac if ls "$path_harfbuzz_dlls"/*.so 1> /dev/null 2>&1; then cp "$path_harfbuzz_dlls"/*.so "$path_build/" else From ce6995262066fa66b3371ab99b8c8a13c535f13e Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 14:14:22 -0400 Subject: [PATCH 23/25] Make sure freetype is installed --- .github/workflows/macos_build.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index ac86e50..5100d5e 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -31,6 +31,7 @@ jobs: brew install bash echo "Bash version: $(bash --version)" + brew install freetype brew install odin - name: Run build script From c9af4417ab1dee76f09d3e0761a56a665c9fc675 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 14:17:34 -0400 Subject: [PATCH 24/25] see if this build works for stb libs --- .github/workflows/macos_build.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 5100d5e..6deaf39 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -34,6 +34,8 @@ jobs: brew install freetype brew install odin + make -C "/opt/homebrew/Cellar/odin/2024-10/libexec/vendor/stb/src" + - name: Run build script run: | echo "Setting execute permissions on specific .sh files" From a64edb425360ee4542db1d23bb2169bad4fb6969 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Sat, 19 Oct 2024 14:54:00 -0400 Subject: [PATCH 25/25] Workflow: install harfbuzz via brew since there is an issue with linking path of the library on osx --- .github/workflows/macos_build.yaml | 1 + scripts/compile_sokol_shaders.sh | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.github/workflows/macos_build.yaml b/.github/workflows/macos_build.yaml index 6deaf39..e7f5ee5 100644 --- a/.github/workflows/macos_build.yaml +++ b/.github/workflows/macos_build.yaml @@ -32,6 +32,7 @@ jobs: echo "Bash version: $(bash --version)" brew install freetype + brew install harfbuzz brew install odin make -C "/opt/homebrew/Cellar/odin/2024-10/libexec/vendor/stb/src" diff --git a/scripts/compile_sokol_shaders.sh b/scripts/compile_sokol_shaders.sh index 579a68b..9ca5e37 100644 --- a/scripts/compile_sokol_shaders.sh +++ b/scripts/compile_sokol_shaders.sh @@ -58,4 +58,6 @@ pushd "$path_backend_sokol" > /dev/null "$flag_target_lang" "glsl410:glsl300es:metal_macos:wgsl" \ "$flag_format_odin" "$flag_module=draw_text" +echo "Built sokol shaders" + popd > /dev/null