From 3350e7a3aa9a1b359e0eebd601f1f4bee9c5447d Mon Sep 17 00:00:00 2001 From: gichan Date: Thu, 1 Sep 2022 15:25:18 +0900 Subject: [PATCH] [Cmake] Add option to change features. Add build option to change features. Signed-off-by: gichan --- CMakeLists.txt | 55 ++++++++++++++++++++++---------------------- src/CMakeLists.txt | 10 ++++---- tests/CMakeLists.txt | 2 +- 3 files changed, 34 insertions(+), 33 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f5d6bb7..5a0527c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,10 @@ INCLUDE(FindPkgConfig) OPTION(ENABLE_TEST "Enable Test case" OFF) OPTION(ENABLE_DEBUG "Enable Debug" OFF) +# Default features. You may change the features according to your needs. +OPTION(MQTT_SUPPORT "Enable MQTT" ON) +OPTION(AITT_SUPPORT "Enable AITT" ON) + IF (NOT DEFINED VERSION) SET(VERSION 0.1.0) ENDIF() @@ -37,41 +41,36 @@ SET(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src) SET(INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) SET(NNS_EDGE_SRC_DIR ${SOURCE_DIR}/libnnstreamer-edge) -# Paho MQTT Library -SET(ENABLE_PAHO_MQTT OFF) - -PKG_SEARCH_MODULE(PAHO_MQTT_PKG "paho-mqtt-c") -IF(PAHO_MQTT_PKG_FOUND) - MESSAGE("Found Paho MQTT pkgconfig.") - SET(ENABLE_PAHO_MQTT ON) - SET(PAHO_MQTT_LIB ${PAHO_MQTT_PKG_LDFLAGS}) -ELSE() - FIND_LIBRARY(PAHO_MQTT_LIB NAMES paho-mqtt3a paho-mqtt3c paho-mqtt3as paho-mqtt3cs) - - IF(NOT PAHO_MQTT_LIB) - MESSAGE("Cannot find Paho MQTT library." ) +IF(MQTT_SUPPORT) + PKG_SEARCH_MODULE(PAHO_MQTT_PKG "paho-mqtt-c") + IF(PAHO_MQTT_PKG_FOUND) + MESSAGE("Found Paho MQTT pkgconfig.") + SET(PAHO_MQTT_LIB ${PAHO_MQTT_PKG_LDFLAGS}) ELSE() - MESSAGE("Found Paho MQTT library.") - SET(ENABLE_PAHO_MQTT ON) - ENDIF() -ENDIF() + FIND_LIBRARY(PAHO_MQTT_LIB NAMES paho-mqtt3a paho-mqtt3c paho-mqtt3as paho-mqtt3cs) -IF(ENABLE_PAHO_MQTT) + IF(NOT PAHO_MQTT_LIB) + MESSAGE(FATAL_ERROR "Cannot find Paho MQTT library." ) + ELSE() + MESSAGE("Found Paho MQTT library.") + ENDIF() + ENDIF() SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_MQTT=1") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_MQTT=1") ENDIF() # AITT Library -SET(ENABLE_AITT OFF) -FIND_LIBRARY(AITT_LIB NAMES aitt) -IF(NOT AITT_LIB) - MESSAGE("Cannot find AITT library.") -ELSE() - MESSAGE("Found AITT library.") - SET(ENABLE_AITT ON) - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_AITT=1") - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_AITT=1") - SET(AITT_INCLUDE_DIR ${PREFIX}/include/aitt) +IF(AITT_SUPPORT) + FIND_LIBRARY(AITT_LIB NAMES aitt) + IF(NOT AITT_LIB) + MESSAGE("Cannot find AITT library.") + SET(AITT_SUPPORT OFF) + ELSE() + MESSAGE("Found AITT library.") + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DENABLE_AITT=1") + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DENABLE_AITT=1") + SET(AITT_INCLUDE_DIR ${PREFIX}/include/aitt) + ENDIF() ENDIF() ADD_SUBDIRECTORY(src) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 76b6bdf..ec44ce3 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,11 +7,11 @@ SET(NNS_EDGE_SRCS ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-queue.c ) -IF(ENABLE_PAHO_MQTT) +IF(MQTT_SUPPORT) SET(NNS_EDGE_SRCS ${NNS_EDGE_SRCS} ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-mqtt.c) ENDIF() -IF(ENABLE_AITT) +IF(AITT_SUPPORT) SET(NNS_EDGE_SRCS ${NNS_EDGE_SRCS} ${NNS_EDGE_SRC_DIR}/nnstreamer-edge-aitt.c) ENDIF() @@ -19,10 +19,12 @@ ADD_LIBRARY(${NNS_EDGE_LIB_NAME} SHARED ${NNS_EDGE_SRCS}) SET_TARGET_PROPERTIES(${NNS_EDGE_LIB_NAME} PROPERTIES VERSION ${SO_VERSION}) TARGET_INCLUDE_DIRECTORIES(${NNS_EDGE_LIB_NAME} PRIVATE ${INCLUDE_DIR} ${EDGE_REQUIRE_PKGS_INCLUDE_DIRS}) TARGET_LINK_LIBRARIES(${NNS_EDGE_LIB_NAME} ${EDGE_REQUIRE_PKGS_LDFLAGS}) -IF(ENABLE_PAHO_MQTT) + +IF(MQTT_SUPPORT) TARGET_LINK_LIBRARIES(${NNS_EDGE_LIB_NAME} ${PAHO_MQTT_LIB}) ENDIF() -IF(ENABLE_AITT) + +IF(AITT_SUPPORT) TARGET_LINK_LIBRARIES(${NNS_EDGE_LIB_NAME} ${AITT_LIB}) TARGET_INCLUDE_DIRECTORIES(${NNS_EDGE_LIB_NAME} PUBLIC ${AITT_INCLUDE_DIR}) ENDIF() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 2fa71f2..3efd8c0 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -5,7 +5,7 @@ TARGET_LINK_LIBRARIES(unittest_nnstreamer-edge ${TEST_REQUIRE_PKGS_LDFLAGS} nnst INSTALL (TARGETS unittest_nnstreamer-edge DESTINATION ${BIN_INSTALL_DIR}) # AITT test -IF(ENABLE_AITT) +IF(AITT_SUPPORT) ADD_EXECUTABLE(unittest_nnstreamer-edge-aitt unittest_nnstreamer-edge-aitt.cc) TARGET_INCLUDE_DIRECTORIES(unittest_nnstreamer-edge-aitt PRIVATE ${EDGE_REQUIRE_PKGS_INCLUDE_DIRS} ${INCLUDE_DIR} ${NNS_EDGE_SRC_DIR}) TARGET_LINK_LIBRARIES(unittest_nnstreamer-edge-aitt ${TEST_REQUIRE_PKGS_LDFLAGS} nnstreamer-edge) -- 2.34.1