diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a3201e..e2fd243 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v4 - name: Configure - run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DTAP_DSP_WERROR=ON + run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DTAP_DSP_WERROR=ON -DTAP_DSP_BUILD_CAPI=ON - name: Build run: cmake --build build --config Release diff --git a/.gitignore b/.gitignore index 993115e..6590f84 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ CMakeUserPresets.json !.claude/settings.json !.claude/hooks/ build_capi/ +__pycache__/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d7d5f3..99ae77a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,3 +132,14 @@ if(TAP_DSP_BUILD_TESTS) enable_testing() add_subdirectory(tests) endif() + +# C ABI shared library for FFI consumers (the notebooks drive the shipping C++ +# through it via ctypes — see notebooks/dsptap_py.py). tools/capi also builds +# standalone (`cmake -B build_capi -S tools/capi`), which is what the ctypes +# bridge does on first import; this option exists so the root build can compile +# it too, matching the BUILD_CAPI option every sibling library carries. CI turns +# it on so the verification layer cannot rot unnoticed. +option(TAP_DSP_BUILD_CAPI "Build the C ABI shared library" OFF) +if(TAP_DSP_BUILD_CAPI) + add_subdirectory(tools/capi) +endif() diff --git a/notebooks/__pycache__/dsptap_py.cpython-311.pyc b/notebooks/__pycache__/dsptap_py.cpython-311.pyc deleted file mode 100644 index a544978..0000000 Binary files a/notebooks/__pycache__/dsptap_py.cpython-311.pyc and /dev/null differ