46 lines
1.4 KiB
CMake
46 lines
1.4 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
project(BinaryTable)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
# Add include directories globally
|
|
include_directories(${CMAKE_SOURCE_DIR}/src/Public)
|
|
include_directories(${CMAKE_SOURCE_DIR}/src/Private)
|
|
|
|
# Main executable with integrated binary table implementation
|
|
add_executable(main
|
|
src/Private/sweepstore/header.cpp
|
|
src/Public/sweepstore/utils/helpers.h
|
|
src/Private/sweepstore/structures.cpp
|
|
src/Public/sweepstore/structures.h
|
|
src/Private/sweepstore/sweepstore.cpp
|
|
src/Public/sweepstore/sweepstore.h
|
|
src/Public/sweepstore/concurrency.h
|
|
src/Private/sweepstore/concurrency.cpp
|
|
src/Public/sweepstore/utils/file_lock.h
|
|
src/Private/sweepstore/utils/file_lock.cpp
|
|
src/Private/sweepstore/utils/fd_pool.cpp
|
|
src/Public/sweepstore/utils/file_handle.h
|
|
src/Private/sweepstore/utils/file_handle.cpp
|
|
src/Public/sweepstore/header.h
|
|
src/Private/sweepstore/benchmark.cpp
|
|
)
|
|
|
|
# Add include directories
|
|
target_include_directories(main PRIVATE ${CMAKE_SOURCE_DIR}/src/Public)
|
|
|
|
# Compiler Settings
|
|
if(MSVC)
|
|
target_compile_options(main PRIVATE /W4)
|
|
else()
|
|
target_compile_options(main PRIVATE -Wall -Wextra -pedantic)
|
|
endif()
|
|
|
|
# Link required libraries
|
|
if(UNIX AND NOT APPLE)
|
|
# Only link stdc++fs on Linux, not macOS
|
|
target_link_libraries(main PRIVATE stdc++fs)
|
|
endif()
|