Skip to content

Commit 5a770e0

Browse files
add build and release workflows
1 parent b4027f2 commit 5a770e0

File tree

3 files changed

+104
-10
lines changed

3 files changed

+104
-10
lines changed

.github/workflows/build.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Build
2+
on:
3+
workflow_call:
4+
pull_request:
5+
branches:
6+
- main
7+
jobs:
8+
arm64_ventura:
9+
runs-on: macos-13
10+
steps:
11+
- run: |
12+
brew fetch --force --bottle-tag=arm64_ventura sdl2
13+
brew install $(brew --cache --bottle-tag=arm64_ventura sdl2)
14+
sudo mkdir -p /opt/homebrew/lib
15+
sudo ln -s /usr/local/lib/libSDL2.a /opt/homebrew/lib/libSDL2.a
16+
- uses: actions/checkout@v3
17+
with:
18+
path: cheetah
19+
- uses: actions/checkout@v3
20+
with:
21+
repository: ggerganov/whisper.cpp
22+
ref: v1.3.0
23+
path: whisper.cpp
24+
- run: |
25+
cd cheetah
26+
xcodebuild -scheme Cheetah -configuration Release -destination generic/platform=macOS -derivedDataPath build
27+
cd build/Build/Products/Release
28+
zip -r Cheetah.zip Cheetah.app
29+
- uses: actions/upload-artifact@v3
30+
with:
31+
name: Cheetah
32+
path: cheetah/build/Build/Products/Release/Cheetah.zip

.github/workflows/release.yml

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Release
2+
on:
3+
push:
4+
tags:
5+
- 'v*.*'
6+
- 'v*.*.*'
7+
jobs:
8+
build:
9+
uses: ./.github/workflows/build.yml
10+
release:
11+
needs: build
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/download-artifact@v3
15+
with:
16+
name: Cheetah
17+
- uses: actions/create-release@v1
18+
id: create_release
19+
env:
20+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
with:
22+
tag_name: ${{ github.ref }}
23+
release_name: ${{ github.ref }}
24+
draft: true
25+
- uses: actions/upload-release-asset@v1
26+
env:
27+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
28+
with:
29+
upload_url: ${{ steps.create_release.outputs.upload_url }}
30+
asset_path: ./Cheetah.zip
31+
asset_name: Cheetah.zip
32+
asset_content_type: application/zip

Cheetah.xcodeproj/project.pbxproj

+40-10
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
37AE7ACA29A70CE900C45FF6 /* whisper.h in Headers */ = {isa = PBXBuildFile; fileRef = 37AE7AB129A5AAD400C45FF6 /* whisper.h */; };
3838
37B2997D29F9756F00971690 /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = 37B2997C29F9756F00971690 /* Sparkle */; };
3939
37B2997F29F9757700971690 /* Sparkle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B2997E29F9757700971690 /* Sparkle.swift */; };
40-
37B2998729F97C5D00971690 /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 37B2998429F97C1000971690 /* libSDL2.a */; };
4140
37B3A50629CE15AC0029821F /* OpenAIEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B3A4FD29CE15AC0029821F /* OpenAIEndpoint.swift */; };
4241
37B3A50729CE15AC0029821F /* OpenAISwift.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B3A4FE29CE15AC0029821F /* OpenAISwift.swift */; };
4342
37B3A51C29CE16330029821F /* ImageGeneration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B3A51629CE16330029821F /* ImageGeneration.swift */; };
@@ -170,7 +169,6 @@
170169
37AE7AC529A6E9C400C45FF6 /* stream.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = stream.cpp; sourceTree = "<group>"; };
171170
37AE7AC729A6EC2F00C45FF6 /* stream.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = stream.h; sourceTree = "<group>"; };
172171
37B2997E29F9757700971690 /* Sparkle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sparkle.swift; sourceTree = "<group>"; };
173-
37B2998429F97C1000971690 /* libSDL2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSDL2.a; path = /opt/homebrew/lib/libSDL2.a; sourceTree = "<absolute>"; };
174172
37B3A4FD29CE15AC0029821F /* OpenAIEndpoint.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenAIEndpoint.swift; sourceTree = "<group>"; };
175173
37B3A4FE29CE15AC0029821F /* OpenAISwift.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OpenAISwift.swift; sourceTree = "<group>"; };
176174
37B3A51629CE16330029821F /* ImageGeneration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ImageGeneration.swift; sourceTree = "<group>"; };
@@ -213,7 +211,6 @@
213211
isa = PBXFrameworksBuildPhase;
214212
buildActionMask = 2147483647;
215213
files = (
216-
37B2998729F97C5D00971690 /* libSDL2.a in Frameworks */,
217214
376437AE29A75B2C00297AC6 /* Accelerate.framework in Frameworks */,
218215
);
219216
runOnlyForDeploymentPostprocessing = 0;
@@ -231,7 +228,6 @@
231228
376437AC29A75B2C00297AC6 /* Frameworks */ = {
232229
isa = PBXGroup;
233230
children = (
234-
37B2998429F97C1000971690 /* libSDL2.a */,
235231
376437AD29A75B2C00297AC6 /* Accelerate.framework */,
236232
);
237233
name = Frameworks;
@@ -678,6 +674,7 @@
678674
isa = XCBuildConfiguration;
679675
buildSettings = {
680676
ALWAYS_SEARCH_USER_PATHS = NO;
677+
ARCHS = arm64;
681678
CLANG_ANALYZER_NONNULL = YES;
682679
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
683680
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
@@ -727,7 +724,6 @@
727724
MACOSX_DEPLOYMENT_TARGET = 13.1;
728725
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
729726
MTL_FAST_MATH = YES;
730-
ONLY_ACTIVE_ARCH = YES;
731727
SDKROOT = macosx;
732728
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
733729
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -738,6 +734,7 @@
738734
isa = XCBuildConfiguration;
739735
buildSettings = {
740736
ALWAYS_SEARCH_USER_PATHS = NO;
737+
ARCHS = arm64;
741738
CLANG_ANALYZER_NONNULL = YES;
742739
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
743740
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
@@ -782,7 +779,6 @@
782779
MACOSX_DEPLOYMENT_TARGET = 13.1;
783780
MTL_ENABLE_DEBUG_INFO = NO;
784781
MTL_FAST_MATH = YES;
785-
ONLY_ACTIVE_ARCH = YES;
786782
SDKROOT = macosx;
787783
SWIFT_COMPILATION_MODE = wholemodule;
788784
SWIFT_OPTIMIZATION_LEVEL = "-O";
@@ -862,20 +858,37 @@
862858
DYLIB_CURRENT_VERSION = 1;
863859
DYLIB_INSTALL_NAME_BASE = "@rpath";
864860
GENERATE_INFOPLIST_FILE = YES;
865-
HEADER_SEARCH_PATHS = /opt/homebrew/include/SDL2;
861+
HEADER_SEARCH_PATHS = (
862+
/opt/homebrew/include/SDL2,
863+
/usr/local/include/SDL2,
864+
);
866865
INFOPLIST_KEY_NSHumanReadableCopyright = "";
867866
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
868867
LD_RUNPATH_SEARCH_PATHS = (
869868
"$(inherited)",
870869
"@executable_path/../Frameworks",
871870
"@loader_path/Frameworks",
872871
);
873-
LIBRARY_SEARCH_PATHS = /opt/homebrew/lib;
874872
MARKETING_VERSION = 1.0;
875873
OTHER_CFLAGS = (
876874
"-D_THREAD_SAFE",
877875
"-DGGML_USE_ACCELERATE",
878876
);
877+
OTHER_LDFLAGS = (
878+
/opt/homebrew/lib/libSDL2.a,
879+
"-l",
880+
iconv,
881+
"-weak_framework",
882+
CoreHaptics,
883+
"-weak_framework",
884+
GameController,
885+
"-weak_framework",
886+
ForceFeedback,
887+
"-weak_framework",
888+
Carbon,
889+
"-weak_framework",
890+
AppKit,
891+
);
879892
PRODUCT_BUNDLE_IDENTIFIER = org.phrack.LibWhisper;
880893
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
881894
SKIP_INSTALL = YES;
@@ -900,20 +913,37 @@
900913
DYLIB_CURRENT_VERSION = 1;
901914
DYLIB_INSTALL_NAME_BASE = "@rpath";
902915
GENERATE_INFOPLIST_FILE = YES;
903-
HEADER_SEARCH_PATHS = /opt/homebrew/include/SDL2;
916+
HEADER_SEARCH_PATHS = (
917+
/opt/homebrew/include/SDL2,
918+
/usr/local/include/SDL2,
919+
);
904920
INFOPLIST_KEY_NSHumanReadableCopyright = "";
905921
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
906922
LD_RUNPATH_SEARCH_PATHS = (
907923
"$(inherited)",
908924
"@executable_path/../Frameworks",
909925
"@loader_path/Frameworks",
910926
);
911-
LIBRARY_SEARCH_PATHS = /opt/homebrew/lib;
912927
MARKETING_VERSION = 1.0;
913928
OTHER_CFLAGS = (
914929
"-D_THREAD_SAFE",
915930
"-DGGML_USE_ACCELERATE",
916931
);
932+
OTHER_LDFLAGS = (
933+
/opt/homebrew/lib/libSDL2.a,
934+
"-l",
935+
iconv,
936+
"-weak_framework",
937+
CoreHaptics,
938+
"-weak_framework",
939+
GameController,
940+
"-weak_framework",
941+
ForceFeedback,
942+
"-weak_framework",
943+
Carbon,
944+
"-weak_framework",
945+
AppKit,
946+
);
917947
PRODUCT_BUNDLE_IDENTIFIER = org.phrack.LibWhisper;
918948
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
919949
SKIP_INSTALL = YES;

0 commit comments

Comments
 (0)