88 set (STTSERVER_IS_TOP_LEVEL OFF )
99endif ()
1010
11+ include (cmake/FetchCPM.cmake )
1112include (cmake/SubmoduleUpdate.cmake )
1213include (cmake/UseCCache.cmake )
1314include (cmake/ColouredOutput.cmake )
1415include (cmake/OutputDir.cmake )
1516include (cmake/WorkspaceOptions.cmake )
1617include (cmake/BuildDiagnostics.cmake )
18+ include_cpm ()
19+
1720
1821# 1. Workspace/Project-Wide Specific Configurations
1922enable_coloured_diagnostics_if_available ()
2023use_ccache_program_if_exists ()
2124define_aggregate_output_artifact_directory ()
22-
2325update_submodules_on_cmake_configure ("dependencies" )
2426
27+
2528# 2. Workspace/Project-Wide Options
26- OPTION (STTSERVER_FORCE_COLOURED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only) (Platform Agnostic)" ON )
2729OPTION (STTSERVER_ENABLE_SANITIZER_ADDRESS "Enable AddressSanitizer" OFF )
2830OPTION (STTSERVER_ENABLE_SANITIZER_UNDEFINED "Enable UndefinedBehaviorSanitizer" OFF )
2931OPTION (STTSERVER_ENABLE_SANITIZER_MEMORY "Enable MemorySanitizer" OFF )
3032OPTION (STTSERVER_ENABLE_LINK_TIME_OPTIMIZATION "Enable Link-Time/Interprocedural Optimization (LTO/IPO)" OFF )
3133OPTION (STTSERVER_ENABLE_TRACY_PROFILING "Enable Code-paths for the Tracy Profiler" OFF )
3234OPTION (STTSERVER_BUILD_LIBRARY_BACKEND_WHISPER "Build the server with the master branch of https://github.com/ggml-org/whisper.cpp" OFF )
33- OPTION (STTSERVER_BUILD_LIBRARY_BACKEND_PARAKEET "Build the server with the feature-parakeet branch" OFF )
3435OPTION (STTSERVER_BUILD_LIBRARY_BACKEND_SHERPA_ONNX "Build the server with the sherpa-onnx" OFF )
3536OPTION (STTSERVER_BUILD_LIBRARY "Build The actual Speech-To-Text [ASR] Server" OFF )
3637
@@ -43,88 +44,59 @@ if(STTSERVER_ENABLE_SANITIZER_ADDRESS AND STTSERVER_ENABLE_SANITIZER_MEMORY)
4344 message (FATAL_ERROR "ASan and MSan are mutually exclusive. Please choose only one\n " )
4445endif ()
4546
46- if (NOT STTSERVER_BUILD_LIBRARY_BACKEND_WHISPER
47- AND
48- NOT STTSERVER_BUILD_LIBRARY_BACKEND_PARAKEET
49- AND
50- NOT STTSERVER_BUILD_LIBRARY_BACKEND_SHERPA_ONNX
51- )
47+ if (NOT STTSERVER_BUILD_LIBRARY_BACKEND_WHISPER AND NOT STTSERVER_BUILD_LIBRARY_BACKEND_SHERPA_ONNX)
5248 message (FATAL_ERROR "Must Select Atleast 1 Backend to build the project with" )
5349endif ()
5450
51+
5552# 3. Declare interface libraries - Sanitizer Interface Library depends on these
5653declare_optional_interface_library_different_sanitizers ()
5754declare_optional_interface_library_lto ()
5855declare_optional_interface_default_project_configuration ()
56+ enable_coloured_diagnostics_if_available ()
5957
60- # 4. Process Actions related to the options above.
61- # 4. Process Actions related to the options above.
62- if (STTSERVER_FORCE_COLOURED_OUTPUT)
63- set (CMAKE_COLOR_DIAGNOSTICS ON )
64- enable_coloured_diagnostics_if_available ()
65- endif ()
66-
67- if (STTSERVER_ENABLE_SANITIZER_ADDRESS)
68- add_link_options (STTSERVER_WORKSPACE_CONFIG::AddressSanitizerInterface )
69- endif ()
70-
71- if (STTSERVER_ENABLE_SANITIZER_UNDEFINED)
72- add_link_options (STTSERVER_WORKSPACE_CONFIG::UBSanInterface )
73- endif ()
74-
75- if (STTSERVER_ENABLE_SANITIZER_MEMORY)
76- add_link_options (STTSERVER_WORKSPACE_CONFIG::MemorySanitizerInterface )
77- endif ()
78-
79- if (STTSERVER_ENABLE_LINK_TIME_OPTIMIZATION)
80- add_link_options (STTSERVER_WORKSPACE_CONFIG::LTO )
81- endif ()
8258
8359# 5. Print Enabled/Disabled Flags For Verbose Diagnostics
84- if (STTSERVER_BUILD_LIBRARY_BACKEND_WHISPER OR STTSERVER_BUILD_LIBRARY_BACKEND_PARAKEET )
60+ if (STTSERVER_BUILD_LIBRARY_BACKEND_WHISPER)
8561 setup_whisper_backend_defaults ()
8662endif ()
63+
8764if (STTSERVER_BUILD_LIBRARY_BACKEND_SHERPA_ONNX)
8865 setup_sherpa_onnx_backend_defaults ()
8966endif ()
67+
9068print_all_workspace_flags_and_vars ()
9169
9270# 6. Actual Start
9371if (STTSERVER_ENABLE_TRACY_PROFILING)
94- message (STATUS "[STTSERVER_ENABLE_TRACY_PROFILING] Building with Tracy for Profiling!" )
95- set (TRACY_ENABLE ON )
96- set (TRACY_VERBOSE ON )
97- add_subdirectory (dependencies/tracy )
72+ safe_cpm_add_package (NAME tracy SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /dependencies/tracy" )
9873endif ()
99-
10074if (STTSERVER_BUILD_LIBRARY_BACKEND_WHISPER)
101- message (STATUS "[STTSERVER_BUILD_LIBRARY_BACKEND_WHISPER] Building with backend whisper.cpp (master branch)" )
102- add_subdirectory (dependencies/whispercpp )
75+ safe_cpm_add_package (NAME whispercpp SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /dependencies/whispercpp" )
10376endif ()
104-
10577if (STTSERVER_BUILD_LIBRARY_BACKEND_PARAKEET)
106- message (STATUS "[STTSERVER_BUILD_LIBRARY_BACKEND_PARAKEET] Building with backend whisper.cpp (parakeet feature-branch [dan-bev])" )
107- add_subdirectory (dependencies/parakeetcpp )
78+ safe_cpm_add_package (NAME parakeetcpp SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /dependencies/parakeetcpp" )
10879endif ()
109-
11080if (STTSERVER_BUILD_LIBRARY_BACKEND_SHERPA_ONNX)
111- message (STATUS "[STTSERVER_BUILD_LIBRARY_BACKEND_SHERPA_ONNX] Building with backend sherpa-onnx" )
112- add_subdirectory (dependencies/sherpa-onnx )
81+ safe_cpm_add_package (NAME sherpa-onnx SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /dependencies/sherpa-onnx" )
11382endif ()
11483
115- add_subdirectory (dependencies/cxxopts )
116- add_subdirectory (dependencies/miniaudio )
117- add_subdirectory (dependencies/util2 )
84+ safe_cpm_add_package (NAME cxxopts SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /dependencies/cxxopts" )
85+ safe_cpm_add_package (NAME miniaudio SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /dependencies/miniaudio" )
86+ safe_cpm_add_package (NAME util2 SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /dependencies/util2" )
87+
11888
119- if (STTSERVER_BUILD_LIBRARY)
89+ if (STTSERVER_BUILD_LIBRARY AND EXISTS " ${ CMAKE_CURRENT_SOURCE_DIR } /sttserv" )
12090 add_subdirectory (sttserv )
12191endif ()
12292
12393if (STTSERVER_BUILD_TESTS)
124- add_subdirectory (dependencies/googletest )
125- add_subdirectory (test )
94+ safe_cpm_add_package (NAME googletest SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR } /dependencies/googletest" )
95+ if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR } /test" )
96+ add_subdirectory (test )
97+ endif ()
12698endif ()
12799
128- if (STTSERVER_BUILD_BENCHMARKS)
100+ if (STTSERVER_BUILD_BENCHMARKS AND EXISTS " ${ CMAKE_CURRENT_SOURCE_DIR } /benchmark" )
129101 add_subdirectory (benchmark )
130102endif ()
0 commit comments