mirror of
https://git.openwrt.org/project/odhcpd.git
synced 2025-11-10 15:55:32 +00:00
As noted in the previous commit, Homenet is defunct. The only users of these two options are Homenet/hnetd, so remove the options, which results in a nice cleanup to src/dhcpv6-ia.c. We also need to update the Makefile in the main OpenWrt repo. Signed-off-by: David Härdeman <david@hardeman.nu> Link: https://github.com/openwrt/odhcpd/pull/294 Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
89 lines
3.0 KiB
CMake
89 lines
3.0 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
cmake_policy(SET CMP0015 NEW)
|
|
|
|
|
|
# Project Definition
|
|
project(odhcpd LANGUAGES C)
|
|
add_executable(${PROJECT_NAME})
|
|
target_sources(${PROJECT_NAME} PRIVATE
|
|
src/odhcpd.c
|
|
src/config.c
|
|
src/dhcpv6.c
|
|
src/dhcpv6-ia.c
|
|
src/dhcpv6-pxe.c
|
|
src/ndp.c
|
|
src/netlink.c
|
|
src/router.c
|
|
)
|
|
|
|
|
|
# Compiler Options
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES C_STANDARD 11)
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE _GNU_SOURCE)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -g3)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Os)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Wall)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Werror)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Wextra)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Werror=implicit-function-declaration)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Wformat)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Werror=format-security)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Werror=format-nonliteral)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Wno-unused-parameter)
|
|
target_compile_options(${PROJECT_NAME} PRIVATE -Wmissing-declarations)
|
|
|
|
|
|
# Libraries
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE resolv)
|
|
|
|
find_path(uci_include_dir uci.h)
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${uci_include_dir})
|
|
find_library(libuci uci)
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${libuci})
|
|
|
|
find_path(ubox_include_dir uloop.h PATH_SUFFIXES libubox)
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${ubox_include_dir})
|
|
find_library(libubox ubox)
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${libubox})
|
|
|
|
find_path(libnl-tiny_include_dir netlink-generic.h PATH_SUFFIXES libnl-tiny)
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${libnl-tiny_include_dir})
|
|
find_library(libnl nl-tiny)
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${libnl})
|
|
|
|
find_path(json_include_dir json.h PATH_SUFFIXES json-c)
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${json_include_dir})
|
|
find_library(libjson json-c)
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${libjson})
|
|
|
|
|
|
# Optional Features
|
|
if(${UBUS})
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE WITH_UBUS)
|
|
target_sources(${PROJECT_NAME} PRIVATE src/ubus.c)
|
|
find_path(ubus_include_dir libubus.h)
|
|
target_include_directories(${PROJECT_NAME} PRIVATE ${ubus_include_dir})
|
|
find_library(libubus ubus)
|
|
target_link_libraries(${PROJECT_NAME} PRIVATE ${libubus})
|
|
endif(${UBUS})
|
|
|
|
if(${DHCPV4_SUPPORT})
|
|
target_compile_definitions(${PROJECT_NAME} PRIVATE DHCPV4_SUPPORT)
|
|
target_sources(${PROJECT_NAME} PRIVATE src/dhcpv4.c)
|
|
endif(${DHCPV4_SUPPORT})
|
|
|
|
|
|
# Installation
|
|
install(TARGETS ${PROJECT_NAME} DESTINATION sbin/)
|
|
|
|
|
|
# Packaging Information
|
|
set(CPACK_PACKAGE_VERSION "1")
|
|
set(CPACK_PACKAGE_CONTACT "Steven Barth <steven@midlink.org>")
|
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME}")
|
|
set(CPACK_GENERATOR "DEB;RPM;STGZ")
|
|
set(CPACK_STRIP_FILES true)
|
|
set(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
|
|
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}")
|
|
include(CPack)
|