mirror of
https://dev.iopsys.eu/bbf/icwmp.git
synced 2025-12-09 23:34:41 +01:00
Refactor datamodel plugin code from daemon
This commit is contained in:
parent
08fe43769c
commit
c732e063d9
6 changed files with 93 additions and 46 deletions
|
|
@ -2,47 +2,6 @@ cmake_minimum_required(VERSION 3.0)
|
|||
|
||||
PROJECT(icwmp C)
|
||||
|
||||
ADD_DEFINITIONS(-Wall -Werror -Wformat -g)
|
||||
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
||||
add_subdirectory(bbf_plugin)
|
||||
add_subdirectory(src)
|
||||
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${PROJECT_SOURCE_DIR}")
|
||||
|
||||
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()
|
||||
|
||||
FILE(GLOB ICWMP_SOURCES ${PROJECT_SOURCE_DIR}/src/*.c)
|
||||
|
||||
IF(WITH_WOLFSSL)
|
||||
SET(SSL_LIBS wolfssl)
|
||||
SET(SSL_LIBS crypto)
|
||||
add_compile_definitions(LWOLFSSL)
|
||||
ENDIF(WITH_WOLFSSL)
|
||||
|
||||
IF(WITH_OPENSSL)
|
||||
SET(SSL_LIBS ssl)
|
||||
SET(SSL_LIBS crypto)
|
||||
add_compile_definitions(LOPENSSL)
|
||||
ENDIF(WITH_OPENSSL)
|
||||
|
||||
IF(WITH_MBEDTLS)
|
||||
SET(SSL_LIBS mbedtls)
|
||||
SET(SSL_LIBS mbedcrypto)
|
||||
add_compile_definitions(LMBEDTLS)
|
||||
ENDIF(WITH_MBEDTLS)
|
||||
|
||||
#[[Compile and install icwmpd]]
|
||||
ADD_EXECUTABLE(icwmpd ${ICWMP_SOURCES})
|
||||
TARGET_LINK_LIBRARIES(icwmpd pthread z m json-c uci ubox ubus blobmsg_json curl mxml uuid ${SSL_LIBS} ${CRYPTO_LIBS})
|
||||
INSTALL(FILES icwmpd PERMISSIONS OWNER_EXECUTE DESTINATION usr/sbin)
|
||||
INSTALL(DIRECTORY DESTINATION etc/icwmpd)
|
||||
INSTALL(DIRECTORY DESTINATION var/run/icwmpd)
|
||||
|
||||
#[[Compile and install libcwmpdm.so]]
|
||||
ADD_LIBRARY(cwmpdm SHARED ${PROJECT_SOURCE_DIR}/src/cwmp_dm/datamodel.c)
|
||||
INSTALL(DIRECTORY DESTINATION etc/bbfdm/plugins)
|
||||
INSTALL(TARGETS cwmpdm LIBRARY DESTINATION etc/bbfdm/plugins)
|
||||
|
|
|
|||
29
bbf_plugin/CMakeLists.txt
Normal file
29
bbf_plugin/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
PROJECT(libcwmpdm.so)
|
||||
|
||||
ADD_DEFINITIONS(-Wall -Werror -Wformat -g)
|
||||
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
||||
|
||||
# Compile and install libcwmpdm.so
|
||||
ADD_LIBRARY(cwmpdm SHARED datamodel.c)
|
||||
INSTALL(DIRECTORY DESTINATION etc/bbfdm/plugins)
|
||||
INSTALL(TARGETS cwmpdm LIBRARY DESTINATION etc/bbfdm/plugins)
|
||||
|
||||
# Copy libcwmpdm.so to the main repo
|
||||
add_custom_command(
|
||||
TARGET cwmpdm
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
libcwmpdm.so
|
||||
${CMAKE_SOURCE_DIR}
|
||||
COMMENT "Copying libcwmpdm.so to main repo"
|
||||
)
|
||||
|
||||
# Add a custom target to trigger the custom command
|
||||
add_custom_target(copy_lib_target
|
||||
DEPENDS cwmpdm
|
||||
)
|
||||
|
||||
# Make sure the copy_lib_target is built after the library is built
|
||||
add_dependencies(copy_lib_target cwmpdm)
|
||||
|
|
@ -115,11 +115,11 @@ function build_icwmp()
|
|||
exec_cmd make
|
||||
|
||||
echo "installing icwmpd binary and libcwmpdm.so library"
|
||||
exec_cmd cp icwmpd ../
|
||||
exec_cmd cp libcwmpdm.so ../
|
||||
exec_cmd cp src/icwmpd ../src/
|
||||
exec_cmd cp bbf_plugin/libcwmpdm.so ../bbf_plugin/
|
||||
exec_cmd make install
|
||||
[ -f "/usr/sbin/icwmpd" ] && rm /usr/sbin/icwmpd
|
||||
exec_cmd ln -s ${BINP}/icwmpd /usr/sbin/icwmpd
|
||||
exec_cmd ln -s ${BINP}/src/icwmpd /usr/sbin/icwmpd
|
||||
cd ..
|
||||
}
|
||||
|
||||
|
|
|
|||
59
src/CMakeLists.txt
Normal file
59
src/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
|
||||
PROJECT(icwmpd)
|
||||
|
||||
ADD_DEFINITIONS(-Wall -Werror -Wformat -g)
|
||||
ADD_DEFINITIONS(-D_GNU_SOURCE)
|
||||
|
||||
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I${PROJECT_SOURCE_DIR}")
|
||||
|
||||
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()
|
||||
|
||||
FILE(GLOB ICWMP_SOURCES *.c)
|
||||
|
||||
IF(WITH_WOLFSSL)
|
||||
SET(SSL_LIBS wolfssl)
|
||||
SET(SSL_LIBS crypto)
|
||||
add_compile_definitions(LWOLFSSL)
|
||||
ENDIF(WITH_WOLFSSL)
|
||||
|
||||
IF(WITH_OPENSSL)
|
||||
SET(SSL_LIBS ssl)
|
||||
SET(SSL_LIBS crypto)
|
||||
add_compile_definitions(LOPENSSL)
|
||||
ENDIF(WITH_OPENSSL)
|
||||
|
||||
IF(WITH_MBEDTLS)
|
||||
SET(SSL_LIBS mbedtls)
|
||||
SET(SSL_LIBS mbedcrypto)
|
||||
add_compile_definitions(LMBEDTLS)
|
||||
ENDIF(WITH_MBEDTLS)
|
||||
|
||||
# Compile and install icwmpd
|
||||
ADD_EXECUTABLE(icwmpd ${ICWMP_SOURCES})
|
||||
TARGET_LINK_LIBRARIES(icwmpd pthread z m json-c uci ubox ubus blobmsg_json curl mxml uuid ${SSL_LIBS} ${CRYPTO_LIBS})
|
||||
INSTALL(FILES icwmpd PERMISSIONS OWNER_EXECUTE DESTINATION usr/sbin)
|
||||
INSTALL(DIRECTORY DESTINATION etc/icwmpd)
|
||||
INSTALL(DIRECTORY DESTINATION var/run/icwmpd)
|
||||
|
||||
# Copy icwmpd to the main repo
|
||||
add_custom_command(
|
||||
TARGET icwmpd POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy
|
||||
icwmpd
|
||||
${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
|
||||
# Add a custom target to trigger the custom command
|
||||
add_custom_target(copy_daemon_target
|
||||
DEPENDS icwmpd
|
||||
)
|
||||
|
||||
# Make sure the copy_daemon_target is built after the library is built
|
||||
add_dependencies(copy_daemon_target icwmpd)
|
||||
Loading…
Add table
Reference in a new issue