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
    write_mmap_segment.c
    read_mmap_segment.c
    unlink_mmap_segment.c
)

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

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

# Demo writer executable
add_executable(demo_writer demo_writer.c)
target_link_libraries(demo_writer PRIVATE ${PRO}_mmap)

# Demo reader executable
add_executable(demo_reader demo_reader.c)
target_link_libraries(demo_reader PRIVATE ${PRO}_mmap)
