cmake_minimum_required(VERSION 3.16)
project(${PRO} C)

set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

find_package(Threads REQUIRED)
find_library(LIBRT rt)

set(LIB_SOURCES
    mq_posix_open.c
    mq_posix_open_mode.c
    mq_posix_send.c
    mq_posix_receive.c
    mq_posix_close.c
    mq_posix_unlink.c
    mq_posix_fatal_error.c
    mq_posix_getattr.c
    mq_posix_setattr.c
    mq_posix_timedsend.c
    mq_posix_timedreceive.c
    mq_posix_notify.c
)

add_library(${PRO}_mq STATIC ${LIB_SOURCES})
target_include_directories(${PRO}_mq PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

if(LIBRT)
    target_link_libraries(${PRO}_mq PUBLIC ${LIBRT})
endif()
target_link_libraries(${PRO}_mq PUBLIC Threads::Threads)

# Demo sender executable
add_executable(demo_sender demo_sender.c)
target_link_libraries(demo_sender PRIVATE ${PRO}_mq)

# Demo receiver executable
add_executable(demo_receiver demo_receiver.c)
target_link_libraries(demo_receiver PRIVATE ${PRO}_mq)
