CMAKE_MINIMUM_REQUIRED(VERSION 3.2)

SET(CMAKE_CXX_STANDARD 11)

FUNCTION(ADD_SUBDIRECTORY_BINDY)
    SET(BUILD_SHARED_LIBS OFF CACHE INTERNAL "")
    SET(BUILD_EXAMPLE OFF CACHE INTERNAL "")
    ADD_SUBDIRECTORY(vendor/bindy)
ENDFUNCTION()
ADD_SUBDIRECTORY_BINDY()
INCLUDE_DIRECTORIES(vendor)

GET_DIRECTORY_PROPERTY(HAS_PARENT PARENT_DIRECTORY)
IF(NOT HAS_PARENT)
    PROJECT(urpc-xinet-server CXX)
    FUNCTION(ADD_SUBDIRECTORY_LIBURPC)
        SET(BUILD_SHARED_LIBS OFF CACHE INTERNAL "")
        SET(URPC_ENABLE_SERIAL ON CACHE INTERNAL "")
        SET(URPC_ENABLE_XINET OFF CACHE INTERNAL "")
        ADD_SUBDIRECTORY(.. liburpc)
    ENDFUNCTION()
    ADD_SUBDIRECTORY_LIBURPC()
    ADD_EXECUTABLE(urpc-xinet-server common.cpp server.cpp)
    TARGET_LINK_LIBRARIES(urpc-xinet-server PRIVATE zf_log urpc bindy)
ELSE()
    PROJECT(urpc-xinet CXX)
    ADD_LIBRARY(urpc-xinet STATIC common.cpp devxinet.cpp)
    TARGET_LINK_LIBRARIES(urpc-xinet PRIVATE bindy)
ENDIF()
