#---------------------------------- MUXER SERVER - in muxer-sdk/muxer-server
# This ensures that the hadean logging library is available for ther server plugin
find_package(PkgConfig REQUIRED)
pkg_check_modules(HADEAN-LOGGER REQUIRED hadean-logger-cc)
# Only required in the unix version
find_library(MUXER-FMT NAMES libfmt.a PATHS ${CMAKE_CURRENT_LIST_DIR}/../common/lib/${LIB_FOLDER} REQUIRED)
message(STATUS "Building Muxer Server Plugin for ${LIB_FOLDER}")
# Set the locations of the various required files based on where you have deployed the muxer sdk
set( PROTOCOL_INCLUDE_PATH ${CMAKE_CURRENT_LIST_DIR}/../protocol/include)
set( PROTOCOL_SRC_PATH ${CMAKE_CURRENT_LIST_DIR}/../protocol/src)
set( COMMON_INCLUDE_PATH ${CMAKE_CURRENT_LIST_DIR}/../common/include)
set( COMMON_LIB_PATH ${CMAKE_CURRENT_LIST_DIR}/../common/lib)
set( SERVER_INCLUDE_PATH ${CMAKE_CURRENT_LIST_DIR}/include)
set( SERVER_LIB_PATH ${CMAKE_CURRENT_LIST_DIR}/lib)
set( SERVER_SRC_PATH ${CMAKE_CURRENT_LIST_DIR}/src)
find_library(MUXER-SERVER NAMES libmuxer-server.a PATHS ${SERVER_LIB_PATH}/${LIB_FOLDER} REQUIRED)
find_library(MUXER-CAPNP NAMES libcapnp.a capnp.lib PATHS ${COMMON_LIB_PATH}/${LIB_FOLDER} REQUIRED)
find_library(MUXER-CAPNPJSON NAMES libcapnp-json.a capnp-json.lib PATHS ${COMMON_LIB_PATH}/${LIB_FOLDER} REQUIRED)
find_library(MUXER-CAPNPRPC NAMES libcapnp-rpc.a capnp-rpc.lib PATHS ${COMMON_LIB_PATH}/${LIB_FOLDER} REQUIRED)
find_library(MUXER-KJ NAMES libkj.a kj.lib PATHS ${COMMON_LIB_PATH}/${LIB_FOLDER} REQUIRED)
find_library(MUXER-KJTEST NAMES libkj-test.a kj-test.lib PATHS ${COMMON_LIB_PATH}/${LIB_FOLDER} REQUIRED)
find_library(MUXER-KJASYNC NAMES libkj-async.a kj-async.lib PATHS ${COMMON_LIB_PATH}/${LIB_FOLDER} REQUIRED)
find_library(MUXER-KJHTTP NAMES libkj-http.a kj-http.lib PATHS ${COMMON_LIB_PATH}/${LIB_FOLDER} REQUIRED)
find_library(MUXER-COMMON NAMES libaether_common.a PATHS ${COMMON_LIB_PATH}/${LIB_FOLDER} REQUIRED)
add_library(muxer-server-plugin
${PROTOCOL_SRC_PATH}/marshalling.cc
target_compile_features(muxer-server-plugin PUBLIC cxx_std_17)
target_compile_definitions(muxer-server-plugin PUBLIC WITHOUT_HADEAN_LOGGING)
target_include_directories(muxer-server-plugin
PUBLIC ${SERVER_INCLUDE_PATH}
PUBLIC ${PROTOCOL_INCLUDE_PATH}
PUBLIC ${COMMON_INCLUDE_PATH}
PUBLIC $ENV{HADEAN_SDK}/sdk/include