@@ -5,6 +5,8 @@ set(CMAKE_CXX_STANDARD 23)
55set (CMAKE_CXX_STANDARD_REQUIRED ON )
66set (CMAKE_CXX_EXTENSIONS OFF )
77
8+ find_package (PkgConfig REQUIRED )
9+
810###### SOURCE ######
911file (GLOB_RECURSE SOURCE_SOURCE_FILES CONFIGURE_DEPENDS
1012 ${PROJECT_SOURCE_DIR } /src/source/*.cpp
@@ -13,17 +15,33 @@ add_library(lbdSource STATIC)
1315target_sources (lbdSource PRIVATE ${SOURCE_SOURCE_FILES} )
1416target_include_directories (lbdSource PUBLIC ${PROJECT_SOURCE_DIR } /include )
1517
18+ ###### DIAGNOSTICS ######
19+ file (GLOB_RECURSE DIAGNOSTICS_SOURCE_FILES CONFIGURE_DEPENDS
20+ ${PROJECT_SOURCE_DIR } /src/diagnostics/*.cpp
21+ )
22+ add_library (lbdDiagnostics STATIC )
23+ target_sources (lbdDiagnostics PRIVATE ${DIAGNOSTICS_SOURCE_FILES} )
24+ target_link_libraries (lbdDiagnostics PUBLIC
25+ lbdSource
26+ )
27+ target_include_directories (lbdDiagnostics PUBLIC ${PROJECT_SOURCE_DIR } /include )
28+
29+ # Fmt.
30+ pkg_check_modules (FMT REQUIRED fmt )
31+
1632####### FRONTEND #######
1733file (GLOB_RECURSE FRONTEND_SOURCE_FILES CONFIGURE_DEPENDS
1834 ${PROJECT_SOURCE_DIR } /src/frontend/*.cpp
1935)
2036add_library (lbdFrontend STATIC )
2137target_sources (lbdFrontend PRIVATE ${FRONTEND_SOURCE_FILES} )
22- target_link_libraries (lbdFrontend PUBLIC
23- lbdSource
24- )
2538target_include_directories (lbdFrontend PUBLIC
2639 ${PROJECT_SOURCE_DIR } /include
40+ ${FMT_INCLUDE_DIRS}
41+ )
42+ target_link_libraries (lbdFrontend PRIVATE
43+ lbdDiagnostics
44+ ${FMT_LIBRARIES}
2745)
2846
2947####### RUNTIME #######
@@ -32,25 +50,28 @@ file(GLOB_RECURSE RUNTIME_SOURCE_FILES CONFIGURE_DEPENDS
3250)
3351add_library (lbdRuntime STATIC )
3452target_sources (lbdRuntime PRIVATE ${RUNTIME_SOURCE_FILES} )
35- target_link_libraries (lbdRuntime PUBLIC
36- lbdSource
37- )
3853target_include_directories (lbdRuntime PUBLIC
3954 ${PROJECT_SOURCE_DIR } /include
55+ ${FMT_INCLUDE_DIRS}
56+ )
57+ target_link_libraries (lbdRuntime PRIVATE
58+ lbdDiagnostics
59+ ${FMT_LIBRARIES}
4060)
4161
4262###### MAIN EXECUTABLE ######
4363file (GLOB LBD_SOURCE_FILES CONFIGURE_DEPENDS
4464 ${PROJECT_SOURCE_DIR } /src/*.cpp
65+ ${PROJECT_SOURCE_DIR } /src/utils/terminal/*.cpp
4566)
4667add_executable (lbd )
4768target_sources (lbd PRIVATE ${LBD_SOURCE_FILES} )
4869target_link_libraries (lbd PRIVATE
70+ lbdDiagnostics
4971 lbdFrontend
5072 lbdRuntime
5173)
5274
53- find_package (PkgConfig REQUIRED )
5475# Readline.
5576pkg_check_modules (READLINE REQUIRED readline )
5677target_include_directories (lbd PRIVATE ${READLINE_INCLUDE_DIRS} )
0 commit comments