cmake_minimum_required(VERSION 3.6) project(wifi-triangulator) include(CheckIncludeFiles) include(CheckLibraryExists) include(FindProtobuf) set(CMAKE_CXX_STANDARD 14) ###################################################### # Check dependencies check_include_files("pcap.h" HAVE_PCAP_H) if (NOT HAVE_PCAP_H) message(FATAL_ERROR "Missing pcap.h. You should probably install libpcap-dev or similar.") endif () find_package(Protobuf REQUIRED) check_include_files("iwlib.h" HAVE_IWLIB_H) if (NOT HAVE_IWLIB_H) message(FATAL_ERROR "Missing iwlib.h. You should probably install libiw-dev.") endif () # lib wifi-triangulator include_directories(${Protobuf_INCLUDE_DIRS} ${Protobuf_INCLUDE_DIR}) protobuf_generate_cpp(PROTO_SRC PROTO_HEADER wifi-triangulator.proto) add_library(wifi-triangulator src/core.cpp src/misc.cpp ${PROTO_SRC} ${PROTO_HEADER} include/wifi-triangulator/core.h third-party/radiotap-library/radiotap.c third-party/radiotap-library/radiotap.h third-party/radiotap-library/radiotap_iter.h third-party/radiotap-library/platform.h) target_include_directories(wifi-triangulator PUBLIC include ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(wifi-triangulator PUBLIC pcap ${Protobuf_LIBRARIES}) # capture add_executable(capture src/capture.cpp) target_link_libraries(capture PUBLIC wifi-triangulator iw) # transmitter add_executable(transmitter src/transmitter.cpp) target_link_libraries(transmitter PUBLIC wifi-triangulator) # receiver add_executable(receiver src/receiver.cpp) target_link_libraries(receiver PUBLIC wifi-triangulator) # formatter add_executable(formatter src/formatter.cpp) target_link_libraries(formatter PUBLIC wifi-triangulator)