diff --git a/os/emscripten/cmake/Findnlohmann_json.cmake b/os/emscripten/cmake/Findnlohmann_json.cmake new file mode 100644 --- /dev/null +++ b/os/emscripten/cmake/Findnlohmann_json.cmake @@ -0,0 +1,20 @@ +# nlohmann-json is a custom addition to the emscripten SDK, so it is possible +# someone patched their SDK. Test out if the SDK supports nlohmann-json. +include(CheckCXXSourceCompiles) +set(CMAKE_REQUIRED_FLAGS "-sUSE_NLOHMANN_JSON=1") + +check_cxx_source_compiles(" + #include + int main() { return 0; }" + NLOHMANN_JSON_FOUND +) + +if (NLOHMANN_JSON_FOUND) + add_library(nlohmann_json INTERFACE IMPORTED) + set_target_properties(nlohmann_json PROPERTIES + INTERFACE_COMPILE_OPTIONS "-sUSE_NLOHMANN_JSON=1" + INTERFACE_LINK_LIBRARIES "-sUSE_NLOHMANN_JSON=1" + ) +else() + message(WARNING "You are using an emscripten SDK without nlohmann-json support. Please apply 'emsdk-nlohmann_json.patch' to your local emsdk installation.") +endif()