some additional reconfigurations and what not.
This commit is contained in:
58
CMakeLists.txt
Normal file
58
CMakeLists.txt
Normal file
@@ -0,0 +1,58 @@
|
||||
cmake_minimum_required(VERSION 3.15)
|
||||
project(ParseLogCLI LANGUAGES CXX)
|
||||
|
||||
# System and compiler configurations
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# ==========================================
|
||||
# 1. CORE LIBRARY TARGET
|
||||
# ==========================================
|
||||
# Compiles your core logic files into a shared library module
|
||||
add_library(parselog_core
|
||||
log_parsing/log_parsing.cpp
|
||||
ip_to_geo/ip_to_geo.cpp
|
||||
third_party/src/GeoLite2PP.cpp
|
||||
third_party/src/GeoLite2PP_error_category.cpp
|
||||
)
|
||||
|
||||
# Include paths for your modules and MaxMind headers
|
||||
target_include_directories(parselog_core PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/log_parsing
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/ip_to_geo
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/include
|
||||
)
|
||||
|
||||
# Link the static third-party MaxMind binary
|
||||
target_link_libraries(parselog_core PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/third_party/lib/libmaxminddb.a
|
||||
)
|
||||
|
||||
# Version definitions needed by your GeoLite2PP wrapper
|
||||
target_compile_definitions(parselog_core PRIVATE
|
||||
GEOLITE2PP_VERSION="0.0.1"
|
||||
)
|
||||
|
||||
# ==========================================
|
||||
# 2. APPLICATION EXECUTABLE
|
||||
# ==========================================
|
||||
# Compiles your main user-facing CLI binary
|
||||
add_executable(parselog_cli main.cpp)
|
||||
target_link_libraries(parselog_cli PRIVATE parselog_core)
|
||||
|
||||
set_target_properties(parselog_cli PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
)
|
||||
|
||||
# ==========================================
|
||||
# 3. TEST SUITE
|
||||
# ==========================================
|
||||
# Activates the built-in CTest engine
|
||||
enable_testing()
|
||||
|
||||
# add_executable(parselog_test tests.cpp)
|
||||
# target_link_libraries(parselog_test PRIVATE parselog_core)
|
||||
|
||||
# Registers the testing executable under the "RunAllTests" banner
|
||||
# add_test(NAME RunAllTests COMMAND parselog_test)
|
||||
Reference in New Issue
Block a user