-
-
Notifications
You must be signed in to change notification settings - Fork 268
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
94 lines (80 loc) · 2.12 KB
/
Copy pathCMakeLists.txt
File metadata and controls
94 lines (80 loc) · 2.12 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
cmake_minimum_required(VERSION 3.16)
set(PROJECT_NAME file-indexer)
project(${PROJECT_NAME})
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(FILE_INDEXER_BIN vicinae-file-indexer)
set(FILE_INDEXER_CORE ${FILE_INDEXER_BIN}-core)
find_package(glaze)
find_package(Qt6 REQUIRED COMPONENTS Core)
include("Figura")
set(FIGURA_DIR "${CMAKE_SOURCE_DIR}/figura")
figura_compile(
SERVER
PROTO "${FIGURA_DIR}/file-indexer.fig"
LANG glaze
NAMESPACE file_indexer_gen
OUTPUT file-indexer-server.hpp
WIRE beve
)
set(VENDOR_DIR ${CMAKE_SOURCE_DIR}/vendor)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(PLATFORM_SRCS
src/important-dir-watcher-linux.cpp
src/background-thread-linux.cpp
)
endif()
# core library used by the file indexer binary and the tests
add_library(${FILE_INDEXER_CORE} STATIC
src/file-indexer.cpp
src/file-indexer-db.cpp
src/file-indexer-query-engine.cpp
src/file-indexer-query-policy.cpp
src/query-pool.cpp
src/db-writer.cpp
src/scan-dispatcher.cpp
src/indexer-scanner.cpp
src/incremental-scanner.cpp
src/filesystem-walker.cpp
src/entry-filter.cpp
src/io-pacer.cpp
src/file-system-watcher.cpp
${PLATFORM_SRCS}
${VENDOR_DIR}/fuzzy-trigram/register.c
${VENDOR_DIR}/spellfix/register.c
)
target_include_directories(${FILE_INDEXER_CORE} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/src
${VENDOR_DIR}
${VENDOR_DIR}/sqlcipher
)
target_compile_features(${FILE_INDEXER_CORE} PUBLIC cxx_std_23)
target_link_libraries(${FILE_INDEXER_CORE} PUBLIC
Qt6::Core
sqlcipher
vicinae::fuzzy
vicinae::xdgpp
vicinae::common
)
add_executable(${FILE_INDEXER_BIN}
src/main.cpp
src/indexer-service.cpp
${SRCS}
)
target_include_directories(${FILE_INDEXER_BIN} PRIVATE ${GENOUT})
target_link_libraries(${FILE_INDEXER_BIN} PRIVATE
${FILE_INDEXER_CORE}
glaze::glaze
)
install(TARGETS ${FILE_INDEXER_BIN}
RUNTIME DESTINATION ${VICINAE_LIBEXEC_DIR}
)
if (BUILD_TESTS)
set(TEST_TARGET ${FILE_INDEXER_BIN}-tests)
find_package(Catch2 3 REQUIRED)
add_executable(${TEST_TARGET}
tests/main.cpp
tests/query-quality.cpp
)
target_link_libraries(${TEST_TARGET} PRIVATE Catch2::Catch2WithMain ${FILE_INDEXER_CORE})
endif()