11cmake_minimum_required (VERSION 3.19 )
22
3- # 0.1.0.0 carries the first batch of changes to public value types — LanguageStatus grew a
4- # reachable depth and a coverage report, and the pipeline extension grew two virtuals. None of that
5- # is ABI compatible with 0.0.1.0, and wolf makes no ABI promise before 1.0, so the number moves
6- # with the change rather than after it . See README, "Versioning and ABI".
3+ # 0.1.0.0 contains the first set of changes to public value types: LanguageStatus gained a
4+ # reachable depth and a coverage report, and the pipeline extension gained two virtual functions.
5+ # These changes are not ABI compatible with 0.0.1.0. Versions before 1.0 carry no ABI guarantee, so
6+ # the version is raised together with the change . See README, "Versioning and ABI".
77project (wolf
88 VERSION 0.1.0.0
99 LANGUAGES CXX
@@ -72,10 +72,10 @@ find_package(re2 CONFIG REQUIRED)
7272# ----------------------------------
7373# Optional inference backend
7474# ----------------------------------
75- # The model backed G2P variant runs its models through dsinfer's driver framework. dsinfer is
76- # built by synthrt[onnx] and installs its own CMake package beside synthrt's , so it is found the
77- # ordinary way. It is optional, and it can be refused even when it is installed: without that
78- # there is no supported way to ask for the minimal build.
75+ # The model- backed G2P variant runs its models through the driver framework of dsinfer.
76+ # synthrt[onnx] builds dsinfer, which installs its own CMake package beside the synthrt package , so
77+ # find_package locates it. dsinfer is optional, and WOLF_DISABLE_DSINFER excludes it even if it is
78+ # installed; this option is the supported way to request the minimal build.
7979option (WOLF_DISABLE_DSINFER "Build without dsinfer even if it is installed" OFF )
8080option (WOLF_DISABLE_LUAJIT "Build without LuaJIT even if it is installed" OFF )
8181
@@ -86,12 +86,13 @@ endif()
8686if (TARGET dsinfer::dsinfer)
8787 set (WOLF_HAS_DSINFER ON )
8888 # The ONNX driver ships as a plugin under lib/plugins beside the library, not as a link
89- # target. The dsinfer package says where that tree is through DSINFER_PLUGINS_DIR; an older
90- # package that does not is searched for a lib/plugins/dsinfer tree above its config file,
91- # which is share/dsinfer in a vcpkg tree and lib/cmake/dsinfer in a plain install. A plugin
92- # search path holds one subdirectory per plugin, so this is the parent of the onnx directory.
93- # A vcpkg tree keeps its Debug build under a separate debug/ prefix. Tests hand the directory
94- # to the driver factory at run time.
89+ # target. The dsinfer package specifies the location of that tree in DSINFER_PLUGINS_DIR. For
90+ # an older package that does not define the variable, the directories above its config file
91+ # are searched for a lib/plugins/dsinfer tree; the config file is in share/dsinfer in a vcpkg
92+ # tree and in lib/cmake/dsinfer in a plain install. A plugin search path contains one
93+ # subdirectory per plugin, so the resulting directory is the parent of the onnx directory. A
94+ # vcpkg tree keeps its Debug build under a separate debug/ prefix. Tests pass the directory to
95+ # the driver factory at run time.
9596 set (_wolf_dsinfer_plugins "" )
9697 if (DEFINED DSINFER_PLUGINS_DIR AND IS_DIRECTORY "${DSINFER_PLUGINS_DIR} " )
9798 set (_wolf_dsinfer_plugins "${DSINFER_PLUGINS_DIR} " )
@@ -115,24 +116,23 @@ if(TARGET dsinfer::dsinfer)
115116 set (WOLF_DSINFER_DRIVER_DIR "${_wolf_dsinfer_plugins} /inferencedrivers" )
116117 endif ()
117118 else ()
118- message (WARNING "dsinfer was found but its plugin tree was not; the model backed tests "
119- "will skip for want of a driver" )
119+ message (WARNING "dsinfer was found, but its plugin tree was not; the model- backed tests "
120+ "will be skipped because no driver is available " )
120121 endif ()
121122 message (STATUS "dsinfer: ${dsinfer_DIR} " )
122123else ()
123124 set (WOLF_HAS_DSINFER OFF )
124125 if (WOLF_DISABLE_DSINFER)
125- message (STATUS "dsinfer: disabled; the model backed G2P variant will not be built" )
126+ message (STATUS "dsinfer: disabled; the model- backed G2P variant will not be built" )
126127 else ()
127- message (STATUS "dsinfer: not found; the model backed G2P variant will not be built "
128+ message (STATUS "dsinfer: not found; the model- backed G2P variant will not be built "
128129 "(install synthrt with the onnx feature to enable it)" )
129130 endif ()
130131endif ()
131132
132- # The scripted variants embed LuaJIT, which ships a pkg-config file and no CMake package, so it
133- # too is located by hand. Its headers live in a versioned subdirectory.
134- # The versioned subdirectory is what the Unix makefile installs to; the vcpkg port on Windows uses
135- # a plain luajit directory instead.
133+ # The scripted variants embed LuaJIT, which ships a pkg-config file but no CMake package, so it is
134+ # also located manually. The Unix makefile installs its headers in a versioned subdirectory
135+ # (luajit-2.1); the vcpkg port on Windows uses a plain luajit directory instead.
136136find_path (WOLF_LUAJIT_INCLUDE_DIR
137137 NAMES lua.hpp
138138 PATH_SUFFIXES luajit-2.1 luajit
@@ -160,8 +160,9 @@ else()
160160 endif ()
161161endif ()
162162
163- # Where the ONNX Runtime payload was deployed, so tests can hand it to the driver. The driver
164- # loads the library itself at run time, which is why this is a directory and not a link target.
163+ # The directory to which the ONNX Runtime payload was deployed, so that tests can pass it to the
164+ # driver. The driver loads the library at run time, so the value is a directory and not a link
165+ # target.
165166find_package (onnxruntime-builds CONFIG QUIET )
166167if (onnxruntime-builds_FOUND)
167168 set (WOLF_ONNXRUNTIME_DIR "${ONNXRUNTIME_BUILDS_RUNTIME_DIR} " )
@@ -179,6 +180,11 @@ endif()
179180set (WOLF_LANG_PACKAGES_SOURCE "" CACHE PATH
180181 "Unpacked language packages to use instead of the wolf-lang-packages port" )
181182
183+ # The voicebank-shaped fixture that scripts/make-voicebank-fixture.py generates from those
184+ # packages. Only the host flow test reads it, and that test is skipped if the variable is empty.
185+ set (WOLF_VOICEBANK_FIXTURE_SOURCE "" CACHE PATH
186+ "Generated voicebank fixture for the host flow test" )
187+
182188if (NOT WOLF_LANG_PACKAGES_SOURCE)
183189 find_package (wolf-lang-packages CONFIG QUIET )
184190 if (wolf-lang-packages_FOUND)
@@ -189,7 +195,7 @@ endif()
189195if (WOLF_LANG_PACKAGES_SOURCE)
190196 message (STATUS "Language packages: ${WOLF_LANG_PACKAGES_SOURCE} " )
191197else ()
192- message (STATUS "Language packages: none; tests that need them will skip " )
198+ message (STATUS "Language packages: none; tests that require them will be skipped " )
193199endif ()
194200
195201# ----------------------------------
0 commit comments