Files
bluehound/CMakeLists.txt
2026-07-29 00:39:00 -04:00

49 lines
1.3 KiB
CMake

cmake_minimum_required(VERSION 3.15)
project(Bluehound)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# SimpleBLE local build
set(SIMPLEBLE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/simpleble/simpleble")
set(SIMPLEBLE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/simpleble")
add_library(simpleble STATIC IMPORTED)
set_target_properties(simpleble PROPERTIES
IMPORTED_LOCATION "${SIMPLEBLE_DIR}/build/lib/libsimpleble.a"
INTERFACE_INCLUDE_DIRECTORIES "${SIMPLEBLE_DIR}/include;${SIMPLEBLE_DIR}/build/export;${SIMPLEBLE_ROOT}/dependencies/external"
)
# Find other packages
find_package(SQLite3 REQUIRED)
# cpp-httplib v0.14.3 vendored under third_party for offline builds
set(HTTPLIB_DIR "${CMAKE_CURRENT_SOURCE_DIR}/third_party")
# Executable
add_executable(bluehound
bluehound.cpp
classic_bluetooth.mm
)
# Enable Objective-C++ for .mm files
set_source_files_properties(classic_bluetooth.mm PROPERTIES
COMPILE_FLAGS "-x objective-c++ -fobjc-arc"
)
target_link_libraries(bluehound
simpleble
SQLite::SQLite3
pthread
"-framework Foundation"
"-framework CoreBluetooth"
"-framework IOKit"
"-framework IOBluetooth"
)
target_include_directories(bluehound PRIVATE
${HTTPLIB_DIR}
)
# Installation
install(TARGETS bluehound DESTINATION bin)