Index: ProcMon-for-Linux-1.0.1/CMakeLists.txt =================================================================== --- ProcMon-for-Linux-1.0.1.orig/CMakeLists.txt +++ ProcMon-for-Linux-1.0.1/CMakeLists.txt @@ -15,38 +15,11 @@ configure_file ( "${PROJECT_BINARY_DIR}/src/version.h" ) -include(FetchContent) - -# Fetch bcc. -# TODO: Consider maybe making this a CMake script to be called. -FetchContent_Declare( - bcc - GIT_REPOSITORY https://github.com/iovisor/bcc.git - GIT_TAG v0.19.0 -) - -FetchContent_GetProperties(bcc) -if(NOT bcc_POPULATED) - FetchContent_Populate(bcc) - add_subdirectory(${bcc_SOURCE_DIR} ${bcc_BINARY_DIR} EXCLUDE_FROM_ALL) -endif() - -# Include Sqlite3 amalgamation. -add_library(sqlite3-static STATIC - "${CMAKE_SOURCE_DIR}/vendor/sqlite3/sqlite3.c" -) -set_target_properties(sqlite3-static - PROPERTIES - INTERFACE_LINK_LIBRARIES "dl;pthread" -) - -# Fetch Catch2 testing framework. -FetchContent_Declare( - Catch2 - GIT_REPOSITORY https://github.com/catchorg/Catch2.git - GIT_TAG v2.7.2 -) -FetchContent_MakeAvailable(Catch2) +find_package (Threads REQUIRED) +include(FindPkgConfig) +pkg_search_module(BCC REQUIRED libbcc) +pkg_search_module(SQLITE3 REQUIRED sqlite3) +pkg_search_module(CATCH2 REQUIRED catch2) # Set compiler flags. set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fno-omit-frame-pointer -DELPP_THREAD_SAFE -D ELPP_DEFAULT_LOG_FILE='\"/var/log/procmon.log\"'") @@ -56,11 +29,9 @@ set (CMAKE_CXX_STANDARD_REQUIRED True) # Include required versioning, bcc, logging and sqlite3 header files. include_directories( "${PROJECT_BINARY_DIR}/src/" - "/usr/include/bcc/compat" - "${bcc_SOURCE_DIR}/src/cc/api" - "${bcc_SOURCE_DIR}/src/cc" - "${CMAKE_SOURCE_DIR}/vendor/sqlite3" - ${CURSES_INCLUDE_DIR} + ${BCC_INCLUDE_DIRS} + ${SQLITE3_INCLUDE_DIRS} + ${NCURSES_INCLUDE_DIRS} ) enable_testing() @@ -89,8 +60,9 @@ target_link_libraries( storage-static display-static common-static - bcc-static - ${CURSES_LIBRARIES} + ${BCC_LIBRARIES} + ${NCURSES_LIBRARIES} + Threads::Threads -lpanel logging-static stdc++fs Index: ProcMon-for-Linux-1.0.1/src/storage/CMakeLists.txt =================================================================== --- ProcMon-for-Linux-1.0.1.orig/src/storage/CMakeLists.txt +++ ProcMon-for-Linux-1.0.1/src/storage/CMakeLists.txt @@ -7,7 +7,7 @@ add_library(storage-static STATIC target_link_libraries( storage-static - sqlite3-static + ${SQLITE3_LIBRARIES} ) # Create test target for sqlite3 storage engine. @@ -16,7 +16,7 @@ target_link_libraries( test-sqlite3-storage storage-static logging-static - Catch2 + Threads::Threads ) -add_test(NAME test-procmon-sqlite3-storage COMMAND test-sqlite3-storage) \ No newline at end of file +add_test(NAME test-procmon-sqlite3-storage COMMAND test-sqlite3-storage) Index: ProcMon-for-Linux-1.0.1/src/tracer/ebpf/ebpf_tracer_engine.h =================================================================== --- ProcMon-for-Linux-1.0.1.orig/src/tracer/ebpf/ebpf_tracer_engine.h +++ ProcMon-for-Linux-1.0.1/src/tracer/ebpf/ebpf_tracer_engine.h @@ -3,7 +3,7 @@ #pragma once -#include +#include #include #include #include @@ -67,4 +67,4 @@ public: void AddPids(std::vector pidsToTrace) override; void SetRunState(int runState) override; -}; \ No newline at end of file +};