This applies a somewhat more modern approach to cmake dependency handling. The next step after this is revamping the README with a Getting Started guide.
extism and jsoncpp are now always linked via cmake targets instead of sometimes doing a filename search of libraries, whether they are included with add_subdirectory, find_package or FetchContent.
Removed submodules. Projects wishing to do an in-tree build should include extism, jsoncpp, and cpp-sdk all in the same directory. Including them within cpp-sdk made having a flat dependency tree impossible.
Added building and making available extism and jsoncpp dependencies with FetchContent. If the build is not an in-tree build and find_package fails, they are downloaded and built.
Added extism-cpp CMake package to more easily integrate the cpp-sdk with non-intree build projects.
GTest / googletest is no longer a mandatory dependency. It's now included via find_package and the test target is not built if it's not found.
Remove hacks for including headers and linking libraries. cmake and pkg-config may be used to get the right flags.
Add .clang-format, it appears to be the style aready used.
ci now fetches libextism with a github token to avoid rate limiting
This applies a somewhat more modern approach to cmake dependency handling. The next step after this is revamping the README with a Getting Started guide.
extism
andjsoncpp
are now always linked via cmake targets instead of sometimes doing a filename search of libraries, whether they are included withadd_subdirectory
,find_package
orFetchContent
.extism
,jsoncpp
, andcpp-sdk
all in the same directory. Including them withincpp-sdk
made having a flat dependency tree impossible.extism
andjsoncpp
dependencies withFetchContent
. If the build is not an in-tree build andfind_package
fails, they are downloaded and built.extism-cpp
CMake package to more easily integrate thecpp-sdk
with non-intree build projects.find_package
and the test target is not built if it's not found.cmake
andpkg-config
may be used to get the right flags..clang-format
, it appears to be the style aready used.