
# Version
cmake_minimum_required(VERSION 3.18.4)

# Project
project("engine" LANGUAGES C CXX VERSION "${VERSION_NUMBER}")
add_library(${PROJECT_NAME} STATIC)
message(STATUS ${PROJECT_NAME})

# Directories
add_subdirectory(security)
add_subdirectory(util)

# Include Directories
target_include_directories(${PROJECT_NAME} PRIVATE ${PROJECT_SOURCE_DIR})
target_include_directories(${PROJECT_NAME} PUBLIC ${BOOST_INCLUDE_DIR})
target_include_directories(${PROJECT_NAME} PUBLIC ${DILITHIUM_INCLUDE_DIR})
target_include_directories(${PROJECT_NAME} PUBLIC ${KYBER_INCLUDE_DIR})
target_include_directories(${PROJECT_NAME} PUBLIC ${OPENSSL_INCLUDE_DIR})

# Link Libraries
foreach (library ${BOOST_LIBRARIES})
	target_link_libraries(${PROJECT_NAME} PUBLIC ${library})
endforeach()

foreach (library ${OPENSSL_LIBRARIES})
	target_link_libraries(${PROJECT_NAME} PUBLIC ${library})
endforeach()

if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
	target_link_libraries(${PROJECT_NAME} PUBLIC dl pthread crypt)
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
	target_link_libraries(${PROJECT_NAME} PUBLIC advapi32 Crypt32 gdi32 secur32 ShLwApi user32 ws2_32)
endif()
