diff --git a/.github/scripts/as-cmake-sub-project/CMakeLists.txt b/.github/scripts/as-cmake-sub-project/CMakeLists.txt new file mode 100644 index 00000000..9ce22540 --- /dev/null +++ b/.github/scripts/as-cmake-sub-project/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.13 FATAL_ERROR) + +project(use-of-sherpa-onnx-as-a-sub-project) + +if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/sherpa-onnx/setup.py") + message(FATAL_ERROR "Please download the source code of sherpa-onnx and put it inside this directory") +endif() + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") + +include_directories(./sherpa-onnx) +add_subdirectory(./sherpa-onnx) + +add_executable(main main.cc) +target_link_libraries(main sherpa-onnx-core) diff --git a/.github/scripts/as-cmake-sub-project/main.cc b/.github/scripts/as-cmake-sub-project/main.cc new file mode 100644 index 00000000..4e2d5775 --- /dev/null +++ b/.github/scripts/as-cmake-sub-project/main.cc @@ -0,0 +1,10 @@ +#include "sherpa-onnx/csrc/offline-recognizer.h" +#include "sherpa-onnx/csrc/parse-options.h" + +int main(int32_t argc, char *argv[]) { + sherpa_onnx::ParseOptions po("help info"); + sherpa_onnx::OfflineRecognizerConfig config; + config.Register(&po); + po.PrintUsage(); + return 0; +} diff --git a/.github/workflows/as_cmake_sub_project.yaml b/.github/workflows/as_cmake_sub_project.yaml new file mode 100644 index 00000000..72897d41 --- /dev/null +++ b/.github/workflows/as_cmake_sub_project.yaml @@ -0,0 +1,66 @@ +name: as_cmake_sub_project + +on: + push: + branches: + - master + pull_request: + branches: + - master + + workflow_dispatch: + +concurrency: + group: as-cmake-sub-project-${{ github.ref }} + cancel-in-progress: true + +jobs: + as_cmake_sub_project: + name: ${{ matrix.os }} shared ${{ matrix.shared_lib }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + shared_lib: [ON, OFF] + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: ccache + uses: hendrikmuhs/ccache-action@v1.2 + with: + key: ${{ matrix.os }}-${{ matrix.shared_lib }}-cmake-sub-project + + - name: Display PWD + shell: bash + run: | + echo "pwd: $PWD" + ls -lh + du -h -d1 . + + - name: Build + shell: bash + run: | + mv .github/scripts/as-cmake-sub-project .. + cd ../as-cmake-sub-project + ln -s $PWD/../sherpa-onnx . + mkdir build + cd build + cmake -DBUILD_SHARED_LIBS=${{ matrix.shared_lib }} .. + make -j2 main + + - name: Test + shell: bash + run: | + cd ../as-cmake-sub-project + + cd build + ls -lh lib + echo "----" + ls -lh bin + + readelf -d ./bin/main + ./bin/main diff --git a/CMakeLists.txt b/CMakeLists.txt index 402ed450..7ed33dc3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -322,8 +322,8 @@ if(WIN32 AND MSVC) add_compile_options("$<$:/utf-8>") endif() -list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules) -list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) if(SHERPA_ONNX_ENABLE_WASM) # Enable it for debugging in case there is something wrong.