### Build OpenSuperWhisper Locally Source: https://github.com/starmel/opensuperwhisper/blob/master/Readme.md Clones the repository, updates submodules, installs dependencies, and builds the application locally. Consult the CI workflow for troubleshooting. ```shell git clone git@github.com:Starmel/OpenSuperWhisper.git cd OpenSuperWhisper git submodule update --init --recursive brew install cmake libomp rust ruby gem install xcpretty ./run.sh build ``` -------------------------------- ### Install OpenSuperWhisper using Homebrew Source: https://github.com/starmel/opensuperwhisper/blob/master/Readme.md Installs OpenSuperWhisper using the Homebrew package manager. An optional brew update command is included. ```shell brew update # Optional brew install opensuperwhisper ``` -------------------------------- ### Configure and Build Whisper Static Library Source: https://github.com/starmel/opensuperwhisper/blob/master/docs/build_whisper.md This command configures the build environment for a static library release, disabling shared libraries, setting C++ standard to 11, applying visibility flags, and excluding examples and tests. It then proceeds to build the library using parallel jobs. ```bash cd ../.. && rm -rf build && mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_FLAGS="-fvisibility=hidden" -DWHISPER_BUILD_EXAMPLES=OFF -DWHISPER_BUILD_TESTS=OFF .. make -j$(sysctl -n hw.ncpu) ``` -------------------------------- ### Notarize App Script Source: https://github.com/starmel/opensuperwhisper/blob/master/docs/release_build.md Execute the notarization script with the code sign identity. Ensure the identity is correctly formatted. ```shell ./notarize_app.sh $CODE_SIGN_IDENTITY ``` ```shell ./notarize_app.sh "Developer ID Application: AAAA BBBB (XXXXX)" ``` -------------------------------- ### Define Project Name Source: https://github.com/starmel/opensuperwhisper/blob/master/libwhisper/CMakeLists.txt Declares the project name as 'libwhisper'. ```cmake project(libwhisper) ``` -------------------------------- ### Configure Shared Libraries Option Source: https://github.com/starmel/opensuperwhisper/blob/master/libwhisper/CMakeLists.txt Sets an option to control whether shared libraries are built. Defaults to OFF. ```cmake option(BUILD_SHARED_LIBS "build shared libraries" OFF) ``` -------------------------------- ### Set macOS Deployment Target Source: https://github.com/starmel/opensuperwhisper/blob/master/libwhisper/CMakeLists.txt Configures the minimum macOS version for which the project will be deployed. This is set to 14.0. ```cmake set(CMAKE_OSX_DEPLOYMENT_TARGET "14.0") ``` -------------------------------- ### Initialize C++ Compiler Flags Source: https://github.com/starmel/opensuperwhisper/blob/master/libwhisper/CMakeLists.txt Sets the initial C++ compiler flags, specifically enabling `-fvisibility=hidden` to control symbol visibility. ```cmake set(CMAKE_CXX_FLAGS_INIT "-fvisibility=hidden") ``` -------------------------------- ### Add Subdirectory for Whisper Source Source: https://github.com/starmel/opensuperwhisper/blob/master/libwhisper/CMakeLists.txt Includes the 'whisper.cpp' subdirectory, which contains the main source code for the whisper library. ```cmake add_subdirectory(whisper.cpp) ``` -------------------------------- ### Set Minimum CMake Version Source: https://github.com/starmel/opensuperwhisper/blob/master/libwhisper/CMakeLists.txt Specifies the minimum required CMake version for the project. This ensures compatibility with features used in the build scripts. ```cmake cmake_minimum_required(VERSION 3.30) ``` -------------------------------- ### Disable i8mm/MATMUL_INT8 for Compatibility Source: https://github.com/starmel/opensuperwhisper/blob/master/libwhisper/CMakeLists.txt Disables the i8mm/MATMUL_INT8 feature to fix compilation issues on GitHub Actions runners with newer Xcode toolchains. This prevents the use of i8mm intrinsics. ```cmake add_compile_definitions(GGML_MATMUL_INT8=0) add_compile_options(-U__ARM_FEATURE_MATMUL_INT8) ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.