mirror of
https://dev.iopsys.eu/bbf/bbfdm.git
synced 2025-12-10 07:44:39 +01:00
116 lines
3.8 KiB
CMake
116 lines
3.8 KiB
CMake
cmake_minimum_required(VERSION 3.0)
|
|
|
|
PROJECT(libbbfdm)
|
|
|
|
ADD_DEFINITIONS(-Wall -Werror)
|
|
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
|
ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}")
|
|
|
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR}/dmtree")
|
|
|
|
OPTION(BBF_TR181 "build with tr181 datamodel" ON)
|
|
OPTION(BBF_TR143 "build with tr143 datamodel" ON)
|
|
OPTION(BBF_TR471 "build with tr471 datamodel" ON)
|
|
OPTION(BBF_VENDOR_EXTENSION "build with vendor extension enabled" ON)
|
|
OPTION(BBF_WIFI_DATAELEMENTS "build with wifi dataelements datamodel" ON)
|
|
OPTION(WITH_WOLFSSL "build with lib wolfssl" OFF)
|
|
OPTION(WITH_OPENSSL "build with lib openssl" OFF)
|
|
OPTION(WITH_MBEDTLS "build with lib mbedtls" OFF)
|
|
|
|
IF(NOT WITH_WOLFSSL AND NOT WITH_OPENSSL AND NOT WITH_MBEDTLS)
|
|
MESSAGE(FATAL_ERROR "You must enable one of the SSL libraries: {'WOLFSSL','OPENSSL','MBEDTLS'}")
|
|
ENDIF()
|
|
|
|
SET(BBF_DM_SOURCES dmdiagnostics.c)
|
|
|
|
IF(BBF_TR181)
|
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/dmtree/tr181")
|
|
FILE(GLOB BBF_TR181_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/dmtree/tr181/*.c)
|
|
add_compile_definitions(BBF_TR181)
|
|
IF(BBF_WIFI_DATAELEMENTS)
|
|
add_compile_definitions(BBF_WIFI_DATAELEMENTS)
|
|
ENDIF(BBF_WIFI_DATAELEMENTS)
|
|
ENDIF(BBF_TR181)
|
|
|
|
IF(BBF_TR143)
|
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/dmtree/tr143")
|
|
FILE(GLOB BBF_TR143_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/dmtree/tr143/*.c)
|
|
add_compile_definitions(BBF_TR143)
|
|
ENDIF(BBF_TR143)
|
|
|
|
IF(BBF_TR471)
|
|
IF(NOT BBF_TR143)
|
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/dmtree/tr143")
|
|
FILE(GLOB BBF_TR143_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/dmtree/tr143/diagnostics.c)
|
|
ENDIF()
|
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/dmtree/tr471")
|
|
FILE(GLOB BBF_TR471_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/dmtree/tr471/*.c)
|
|
add_compile_definitions(BBF_TR471)
|
|
ENDIF(BBF_TR471)
|
|
|
|
IF(WITH_WOLFSSL)
|
|
SET(SSL_LIBS wolfssl)
|
|
SET(CRYPTO_LIBS crypto)
|
|
add_compile_definitions(LWOLFSSL)
|
|
ENDIF(WITH_WOLFSSL)
|
|
|
|
IF(WITH_OPENSSL)
|
|
SET(SSL_LIBS ssl)
|
|
SET(CRYPTO_LIBS crypto)
|
|
add_compile_definitions(LOPENSSL)
|
|
ENDIF(WITH_OPENSSL)
|
|
|
|
IF(WITH_MBEDTLS)
|
|
SET(SSL_LIBS mbedtls)
|
|
SET(CRYPTO_LIBS mbedcrypto)
|
|
add_compile_definitions(LMBEDTLS)
|
|
ENDIF(WITH_MBEDTLS)
|
|
|
|
IF(BBF_VENDOR_EXTENSION)
|
|
SET(BBF_VENDOR_EXTENSION_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/dmtree/vendor/vendor.c)
|
|
ADD_DEFINITIONS(-DBBF_VENDOR_LIST="${BBF_VENDOR_LIST}")
|
|
add_compile_definitions(BBF_VENDOR_EXTENSION)
|
|
|
|
SET(BBF_VENDOR_LIST "iopsys" CACHE STRING "vendor list to be used")
|
|
|
|
STRING(REPLACE "," ";" VENDOR_LIST ${BBF_VENDOR_LIST})
|
|
|
|
foreach(VENDOR IN LISTS VENDOR_LIST)
|
|
FILE(GLOB_RECURSE BBF_VENDOR_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/dmtree/vendor/${VENDOR}/*.c)
|
|
LIST(APPEND BBF_VENDOR_EXTENSION_SOURCES ${BBF_VENDOR_SOURCES})
|
|
|
|
STRING(TOUPPER ${VENDOR} VENDOR)
|
|
add_compile_definitions(BBF_VENDOR_${VENDOR})
|
|
endforeach()
|
|
ENDIF(BBF_VENDOR_EXTENSION)
|
|
|
|
ADD_LIBRARY(bbfdm SHARED ${BBF_DM_SOURCES} ${BBF_TR181_SOURCES} ${BBF_TR143_SOURCES} ${BBF_TR471_SOURCES} ${BBF_VENDOR_EXTENSION_SOURCES})
|
|
|
|
TARGET_LINK_LIBRARIES(bbfdm uci ubus ubox json-c blobmsg_json curl m bbfdm-api ${SSL_LIBS} ${CRYPTO_LIBS})
|
|
|
|
INSTALL(TARGETS bbfdm
|
|
LIBRARY DESTINATION usr/lib)
|
|
|
|
INSTALL(DIRECTORY DESTINATION etc/bbfdm)
|
|
INSTALL(DIRECTORY DESTINATION etc/bbfdm/dmmap)
|
|
INSTALL(DIRECTORY DESTINATION etc/bbfdm/json)
|
|
INSTALL(DIRECTORY DESTINATION usr/lib/bbfdm)
|
|
|
|
FILE(GLOB root_device dmtree/tr181/device.h dmtree/vendor/vendor.h)
|
|
INSTALL(FILES ${root_device}
|
|
DESTINATION usr/include/libbbfdm
|
|
)
|
|
|
|
IF(BBF_TR143)
|
|
INSTALL(DIRECTORY DESTINATION usr/share/bbfdm)
|
|
INSTALL(DIRECTORY DESTINATION usr/libexec/rpcd)
|
|
FILE(GLOB scripts scripts/*)
|
|
INSTALL(FILES ${scripts}
|
|
PERMISSIONS OWNER_EXECUTE
|
|
DESTINATION usr/share/bbfdm
|
|
)
|
|
INSTALL(FILES scripts/bbf.diag
|
|
PERMISSIONS OWNER_EXECUTE
|
|
DESTINATION usr/libexec/rpcd
|
|
)
|
|
ENDIF(BBF_TR143)
|