cmake_minimum_required(VERSION 3.10)
project(CgeThread LANGUAGES C)

set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)

set(SOURCES
)

set(SOURCES_WIN32
    win32/Condition.c
    win32/Mutex.c
    win32/Semaphore.c
    win32/Thread.c
    win32/Tss.c
)

set(SOURCES_POSIX
    posix/Condition.c
    posix/Mutex.c
    posix/Semaphore.c
    posix/Thread.c
    posix/Tss.c
)

set(HEADERS
    CgeThread.h
)

if(WIN32)
    message(STATUS "Platform - Win32")
    list(APPEND SOURCES ${SOURCES_WIN32})
elseif(UNIX)
    message(STATUS "Platform: Unix (Linux/BSD/MacOS X)")
    list(APPEND SOURCES ${SOURCES_POSIX})
endif()

add_library(CgeThread STATIC ${SOURCES} ${HEADERS})

target_include_directories(CgeThread PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

install(TARGETS CgeThread
    ARCHIVE DESTINATION lib
    LIBRARY DESTINATION lib
    RUNTIME DESTINATION bin
)

install(FILES ${HEADERS} DESTINATION include)
