include(CMakeFindDependencyMacro) find_dependency(Boost CONFIG REQUIRED COMPONENTS json) find_dependency(OpenSSL CONFIG REQUIRED) find_dependency(SQLite3 CONFIG REQUIRED) find_dependency(raylib CONFIG REQUIRED) find_dependency(miniaudio CONFIG REQUIRED) function(modulus_define_bridge target) if(NOT TARGET ${target}) add_library(${target} INTERFACE IMPORTED) endif() endfunction() modulus_define_bridge(modulus::boost_json) set_target_properties(modulus::boost_json PROPERTIES INTERFACE_LINK_LIBRARIES "Boost::boost;Boost::json" ) modulus_define_bridge(modulus::openssl) set_target_properties(modulus::openssl PROPERTIES INTERFACE_LINK_LIBRARIES "OpenSSL::SSL;OpenSSL::Crypto" ) modulus_define_bridge(modulus::sqlite) set_target_properties(modulus::sqlite PROPERTIES INTERFACE_LINK_LIBRARIES "SQLite::SQLite3" ) set(_modulus_raylib_target "") if(TARGET raylib) set(_modulus_raylib_target raylib) elseif(TARGET raylib::raylib) set(_modulus_raylib_target raylib::raylib) endif() if(NOT _modulus_raylib_target) message(FATAL_ERROR "raylib package did not define a supported CMake target") endif() set(_modulus_raylib_link_libraries ${_modulus_raylib_target}) if(CMAKE_SYSTEM_NAME STREQUAL "Linux") list(APPEND _modulus_raylib_link_libraries EGL GLESv2 drm gbm atomic dl) endif() modulus_define_bridge(modulus::raylib) set_target_properties(modulus::raylib PROPERTIES INTERFACE_LINK_LIBRARIES "${_modulus_raylib_link_libraries}" ) unset(_modulus_raylib_link_libraries) unset(_modulus_raylib_target) set(_modulus_miniaudio_target "") if(TARGET miniaudio::miniaudio) set(_modulus_miniaudio_target miniaudio::miniaudio) elseif(TARGET miniaudio) set(_modulus_miniaudio_target miniaudio) endif() if(NOT _modulus_miniaudio_target) message(FATAL_ERROR "miniaudio package did not define a supported CMake target") endif() modulus_define_bridge(modulus::miniaudio) set_target_properties(modulus::miniaudio PROPERTIES INTERFACE_LINK_LIBRARIES "${_modulus_miniaudio_target}" ) unset(_modulus_miniaudio_target)