-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
41 lines (34 loc) · 1.14 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
cmake_minimum_required(VERSION 3.15)
project(gfs LANGUAGES CXX)
# Check if GFS is being used directly or via add_subdirectory
if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
set(GFS_MASTER_PROJECT ON)
else()
set(GFS_MASTER_PROJECT OFF)
endif()
option(GFS_BUILD_TESTS "Build test" ${GFS_MASTER_PROJECT})
option(GFS_BUILD_BENCHMARK "Build benchmark" ${GFS_MASTER_PROJECT})
option(LZ4_BUILD_CLI "Build lz4 program" OFF)
option(LZ4_BUILD_LEGACY_LZ4C "Build lz4c program with legacy argument support" OFF)
add_subdirectory(external/lz4/build/cmake)
add_library(filewatch INTERFACE)
target_include_directories(filewatch INTERFACE external/filewatch)
add_library(gfs
src/gfs/filesystem.cpp
src/gfs/binary_streams.cpp
)
target_include_directories(gfs PUBLIC include)
set_target_properties(gfs PROPERTIES
CXX_STANDARD 17
CXX_STANDARD_REQUIRED ON
CXX_EXTENSIONS OFF
)
target_link_libraries(gfs PRIVATE lz4_static PUBLIC filewatch)
if(${GFS_BUILD_TESTS})
message(STATUS "Building testbed")
add_subdirectory(testbed)
endif()
if(${GFS_BUILD_BENCHMARK})
message(STATUS "Building benchmark")
add_subdirectory(benchmark)
endif()