diff --git a/CMakeLists.txt b/CMakeLists.txt index 3fa5e333fdfd2e6463697a1b19a190e295850eb4..dbfbbe3fb06a3a8fdc977e6eec815319d12f92de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,16 @@ cmake_minimum_required(VERSION 3.2) option(BUILD_TESTS "Build tests" ON) option(BUILD_EXAMPLES "Build examples" ON) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules") + +find_package(LIBUBOX REQUIRED) + +add_library(libubox INTERFACE) +target_include_directories(libubox +INTERFACE + ${LIBUBOX_LIBRARIES} +) + set(NLOHMANN_JSON_DIR "" CACHE STRING "path to json.hpp") # find nlohmann's json.hpp diff --git a/cmake/modules/FindLIBUBOX.cmake b/cmake/modules/FindLIBUBOX.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8b9341200ce3f99126379974abc1b4e5c24c7818 --- /dev/null +++ b/cmake/modules/FindLIBUBOX.cmake @@ -0,0 +1,21 @@ +find_package(PkgConfig) + +pkg_check_modules(PC_LIBUBOX QUIET libubox) + +find_path(LIBUBOX_INCLUDE_DIR libubox/uloop.h + HINTS ${PC_LIBUBOX_INCLUDEDIR} ${PC_LIBUBOX_INCLUDE_DIRS} PATH_SUFFIXES libubox) + +find_library(LIBUBOX_LIBRARY_ubox NAMES ubox + HINTS ${PC_LIBUBOX_LIBDIR} ${PC_LIBUBOX_LIBRARY_DIRS}) + +find_library(LIBUBOX_LIBRARY_blobmsg_json NAMES blobmsg_json + HINTS ${PC_LIBUBOX_LIBDIR} ${PC_LIBUBOX_LIBRARY_DIRS}) + +set(LIBUBOX_LIBRARIES ${LIBUBOX_LIBRARY_ubox} ${LIBUBOX_LIBRARY_blobmsg_json}) +set(LIBUBOX_INCLUDE_DIRS ${LIBUBOX_INCLUDE_DIR}) + +include(FindPackageHandleStandardArgs) + +find_package_handle_standard_args(LIBUBOX DEFAULT_MSG LIBUBOX_LIBRARY_ubox LIBUBOX_LIBRARY_blobmsg_json LIBUBOX_INCLUDE_DIR) + +mark_as_advanced(LIBUBOX_INCLUDE_DIR LIBUBOX_LIBRARY)