diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f26486f84123007bb026e9a5ed9fc9ccdfbf49cf..907f21c8b4c695a9283bf1e104babb9868dfb785 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,6 +4,7 @@ variables: FLAWFINDER_OPTIONS: "-m 4 --error-level=5" CPD_OPTIONS: "--minimum-tokens 200 --language c --exclude ./daemon/json_rpc/ --files" CPPCHECK_OPTIONS: " --enable=performance,portability,information --inline-suppr" + COMPILE: "./gitlab-ci/compile.sh" include: - project: 'iopsys/gitlab-ci-pipeline' diff --git a/CMakeLists.txt b/CMakeLists.txt index af09abce944d00023b48457ee2a87908cc277e97..22dd66729ac8bf2ea0eca6b5353b21c03665900d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,30 @@ cmake_minimum_required(VERSION 3.0) PROJECT(tr104d C) +IF(DATAMODEL_DB_PATH) + ADD_DEFINITIONS(-DETC_DB_CONFIG="${DATAMODEL_DB_PATH}") +ENDIF() + +IF(DATAMODEL_DMMAP_PATH) + ADD_DEFINITIONS(-DBBFDM_CONFIG="${DATAMODEL_DMMAP_PATH}") +ENDIF() + +IF(DATAMODEL_UCI_PATH) + ADD_DEFINITIONS(-DUCI_CONFIG_DIR="${DATAMODEL_UCI_PATH}") +ENDIF() + +IF(BBF_VENDOR_PREFIX) + ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}") +ENDIF() + +ADD_DEFINITIONS(-Wall -Werror -D_GNU_SOURCE) + +IF(NOT RUNAS_BBFDM_MICROSERVICE) + SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR}/libdmtree") +ENDIF() + add_subdirectory(libdm) add_subdirectory(libdmtree) + +ADD_DEFINITIONS(-fstrict-aliasing -Wall -Wextra -Werror -Wformat -Wformat-signedness -fPIC -D_GNU_SOURCE) add_subdirectory(daemon) diff --git a/daemon/json_rpc/CMakeLists.txt b/daemon/json_rpc/CMakeLists.txt index 0502a5b766d42bed1ff3ecefcc637fae88155dbe..e8dec5ead034d9bf135e012e94a436ba828bcd04 100644 --- a/daemon/json_rpc/CMakeLists.txt +++ b/daemon/json_rpc/CMakeLists.txt @@ -2,12 +2,6 @@ cmake_minimum_required(VERSION 3.0) PROJECT(tr104d) -ADD_DEFINITIONS(-fstrict-aliasing -Wall -Wextra -Werror -Wformat -Wformat-signedness -fPIC -D_GNU_SOURCE) -ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}") -ADD_DEFINITIONS(-DETC_DB_CONFIG="${ETC_DB_CONFIG}") -ADD_DEFINITIONS(-DBBFDM_CONFIG="${BBFDM_CONFIG}") -ADD_DEFINITIONS(-DUCI_CONFIG_DIR="${UCI_CONFIG_DIR}") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/libdmtree") OPTION(DM_ENABLE_DECT "Enable DECT support" OFF) diff --git a/daemon/ubus/CMakeLists.txt b/daemon/ubus/CMakeLists.txt index dfb866661b5a71f930842907ccd43c3c435b0762..6e986d843df0253d5767b33130ab72bf26efd661 100644 --- a/daemon/ubus/CMakeLists.txt +++ b/daemon/ubus/CMakeLists.txt @@ -2,17 +2,14 @@ cmake_minimum_required(VERSION 3.0) PROJECT(tr104d) -ADD_DEFINITIONS(-fstrict-aliasing -Wall -Wextra -Werror -Wformat -Wformat-signedness -fPIC -D_GNU_SOURCE) -ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}") -ADD_DEFINITIONS(-DDAEMON_JSON_INPUT="${DAEMON_JSON_INPUT}") -ADD_DEFINITIONS(-DETC_DB_CONFIG="${ETC_DB_CONFIG}") -ADD_DEFINITIONS(-DBBFDM_CONFIG="${BBFDM_CONFIG}") -ADD_DEFINITIONS(-DUCI_CONFIG_DIR="${UCI_CONFIG_DIR}") - -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/libdmtree") +IF(DAEMON_JSON_INPUT) + ADD_DEFINITIONS(-DDAEMON_JSON_INPUT="${DAEMON_JSON_INPUT}") +ELSE() + ADD_DEFINITIONS(-DDAEMON_JSON_INPUT="/etc/tr104/input.json") +ENDIF() FILE(GLOB BBF_SOURCES *.c) ADD_EXECUTABLE(tr104d ${BBF_SOURCES}) -TARGET_LINK_LIBRARIES(tr104d ubus ubox blobmsg_json uci json-c dl dmtree) +TARGET_LINK_LIBRARIES(tr104d dmtree ubus ubox blobmsg_json uci json-c dl) INSTALL(TARGETS tr104d DESTINATION usr/sbin) diff --git a/gitlab-ci/compile.sh b/gitlab-ci/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..2d857606b74b41e43f3d57bee1c2e9f734eeb6fe --- /dev/null +++ b/gitlab-ci/compile.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +exec_cmd() +{ + echo "Executing [$*]" + if ! $@; then + echo "Failed to execute [$*]" + exit -1 + fi +} + +install_iowrt() +{ + echo "Compiling IOWRT version" + [ -d "builds" ] && rm -rf builds + + mkdir -p builds + cd builds + + exec_cmd cmake -DBBF_VENDOR_PREFIX:String="X_IOPSYS_EU" -DCMAKE_INSTALL_PREFIX:PATH=/ -DCMAKE_VERBOSE_MAKEFILE=ON -DDM_ENABLE_UBUS=ON -DTR104_EXTENSION_DIR:String="iowrt" ../ + exec_cmd make + exec_cmd make install + cd .. + + [ -d "builds" ] && rm -rf builds +} + +install_rdk() +{ + echo "Compiling RDK version" + # RDK specific compilation + # exec_cmd cmake -DCMAKE_INSTALL_PREFIX:PATH=/ -DCMAKE_VERBOSE_MAKEFILE=ON -DDM_ENABLE_UBUS=ON -DTR104_EXTENSION_DIR:String="iowrt" ../ + # exec_cmd make + # exec_cmd make install +} + +install_iowrt +install_rdk + +date +%s > timestamp.log diff --git a/gitlab-ci/files/etc/tr104/input.json b/gitlab-ci/files/etc/tr104/input.json new file mode 100644 index 0000000000000000000000000000000000000000..872fca3c41b7a2509e318641d7acd4400d11214f --- /dev/null +++ b/gitlab-ci/files/etc/tr104/input.json @@ -0,0 +1,32 @@ +{ + "daemon": { + "config": { + "loglevel": "1", + "refresh_time": "10", + "transaction_timeout": "30" + }, + "input": { + "type": "DotSo", + "name": "/etc/tr104/libtr104.so", + "plugin_dir": "/etc/tr104/plugins/" + }, + "output": { + "type": "UBUS", + "name": "tr104" + } + }, + "cli": { + "config": { + "proto": "both", + "instance_mode": 0 + }, + "input": { + "type": "UBUS", + "name": "tr104" + }, + "output": { + "type": "CLI" + } + } +} + diff --git a/libdm/CMakeLists.txt b/libdm/CMakeLists.txt index 007cb581942a339128d56b527345bb786a93c96e..3443efc98c0f2d19dcdc016ee53d69fe34d5e76e 100644 --- a/libdm/CMakeLists.txt +++ b/libdm/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.0) PROJECT(libdm C) +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_CURRENT_SOURCE_DIR}/common") add_subdirectory(tr104) IF(TR104_EXTENSION_DIR) diff --git a/libdm/extensions/iowrt/CMakeLists.txt b/libdm/extensions/iowrt/CMakeLists.txt index 552683ed4ada709f77f0dcd0d0078ee81cc0a1f4..b1a9932bce8c894606cacdcc25e2377d2a4a6685 100644 --- a/libdm/extensions/iowrt/CMakeLists.txt +++ b/libdm/extensions/iowrt/CMakeLists.txt @@ -2,15 +2,7 @@ cmake_minimum_required(VERSION 3.0) PROJECT(libtr104ext) -ADD_DEFINITIONS(-Wall -Werror) -ADD_DEFINITIONS(-D_GNU_SOURCE) -ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}") -ADD_DEFINITIONS(-DETC_DB_CONFIG="${ETC_DB_CONFIG}") -ADD_DEFINITIONS(-DBBFDM_CONFIG="${BBFDM_CONFIG}") -ADD_DEFINITIONS(-DUCI_CONFIG_DIR="${UCI_CONFIG_DIR}") - -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/libdmtree -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR}/../../common/") - FILE(GLOB BBF_DM_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.c) ADD_LIBRARY(tr104ext SHARED ${BBF_DM_SOURCES}) +INSTALL(TARGETS tr104ext DESTINATION etc/tr104/plugins) diff --git a/libdm/extensions/rdk/CMakeLists.txt b/libdm/extensions/rdk/CMakeLists.txt index e5a19d38a0a3bda7afea66247ead6e9361859499..3415c3547103dcc3d774dc42c1592e3948108b31 100644 --- a/libdm/extensions/rdk/CMakeLists.txt +++ b/libdm/extensions/rdk/CMakeLists.txt @@ -2,13 +2,6 @@ cmake_minimum_required(VERSION 3.0) PROJECT(libtr104ext) -ADD_DEFINITIONS(-Wall -Werror) -ADD_DEFINITIONS(-D_GNU_SOURCE) -ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}") -ADD_DEFINITIONS(-DETC_DB_CONFIG="${ETC_DB_CONFIG}") -ADD_DEFINITIONS(-DBBFDM_CONFIG="${BBFDM_CONFIG}") -ADD_DEFINITIONS(-DUCI_CONFIG_DIR="${UCI_CONFIG_DIR}") - SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/libdmtree -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR}/../../common") FILE(GLOB BBF_DM_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.c) diff --git a/libdm/tr104/CMakeLists.txt b/libdm/tr104/CMakeLists.txt index 7e902ed22a2aeb1cdbef10d47b1141cb3e2600a7..86d7978147f443f2b42157038c56d74f9f8b8724 100644 --- a/libdm/tr104/CMakeLists.txt +++ b/libdm/tr104/CMakeLists.txt @@ -2,15 +2,7 @@ cmake_minimum_required(VERSION 3.0) PROJECT(libtr104) -ADD_DEFINITIONS(-Wall -Werror) -ADD_DEFINITIONS(-D_GNU_SOURCE) -ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}") -ADD_DEFINITIONS(-DETC_DB_CONFIG="${ETC_DB_CONFIG}") -ADD_DEFINITIONS(-DBBFDM_CONFIG="${BBFDM_CONFIG}") -ADD_DEFINITIONS(-DUCI_CONFIG_DIR="${UCI_CONFIG_DIR}") - -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${CMAKE_SOURCE_DIR}/libdmtree -I${CMAKE_SOURCE_DIR}/libdmtree/include -I${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR}/../common") - FILE(GLOB BBF_DM_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/*.c) ADD_LIBRARY(tr104 SHARED ${BBF_DM_SOURCES}) +INSTALL(TARGETS tr104 DESTINATION etc/tr104) diff --git a/libdmtree/CMakeLists.txt b/libdmtree/CMakeLists.txt index 477d6078c7689ab4fcf9baf808dc8ca0ac2c8885..c5617a3b51885e3847b55f5c7dc78d1bbeae68d5 100644 --- a/libdmtree/CMakeLists.txt +++ b/libdmtree/CMakeLists.txt @@ -2,13 +2,6 @@ cmake_minimum_required(VERSION 3.0) PROJECT(libdmtree) -ADD_DEFINITIONS(-Wall -Werror) -ADD_DEFINITIONS(-D_GNU_SOURCE) -ADD_DEFINITIONS(-DBBF_VENDOR_PREFIX="${BBF_VENDOR_PREFIX}") -ADD_DEFINITIONS(-DETC_DB_CONFIG="${ETC_DB_CONFIG}") -ADD_DEFINITIONS(-DBBFDM_CONFIG="${BBFDM_CONFIG}") -ADD_DEFINITIONS(-DUCI_CONFIG_DIR="${UCI_CONFIG_DIR}") - FILE(GLOB BBF_API_SOURCES *.c plugin/*.c) ADD_LIBRARY(dmtree STATIC ${BBF_API_SOURCES})