1 cmake_minimum_required(VERSION 2.6) 2 3 PROJECT(ucert C) 4 5 ADD_DEFINITIONS(-Wall -Werror) 6 IF(CMAKE_C_COMPILER_VERSION VERSION_GREATER 6) 7 ADD_DEFINITIONS(-Wextra -Werror=implicit-function-declaration) 8 ADD_DEFINITIONS(-Wformat -Werror=format-security -Werror=format-nonliteral) 9 ENDIF() 10 ADD_DEFINITIONS(-Os -std=gnu99 -ggdb -Wmissing-declarations -Wno-unused-parameter) 11 12 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") 13 14 FIND_PATH(ubox_include_dir NAMES libubox/usock.h) 15 FIND_PATH(jsonc_include_dir NAMES json-c/json.h) 16 INCLUDE_DIRECTORIES(${ubox_include_dir} ${jsonc_include_dir}) 17 18 FIND_LIBRARY(ubox NAMES ubox) 19 FIND_LIBRARY(blobmsg_json NAMES blobmsg_json) 20 FIND_LIBRARY(json NAMES json-c json) 21 22 MACRO(ADD_UNIT_TEST_SAN name) 23 ADD_EXECUTABLE(${name}-san ${name}.c) 24 TARGET_COMPILE_OPTIONS(${name}-san PRIVATE -g -fno-omit-frame-pointer -fsanitize=undefined,address,leak -fno-sanitize-recover=all) 25 TARGET_LINK_OPTIONS(${name}-san PRIVATE -fsanitize=undefined,address,leak) 26 TARGET_LINK_LIBRARIES(${name}-san ucert_lib ${ubox} ${blobmsg_json} ${json}) 27 TARGET_INCLUDE_DIRECTORIES(${name}-san PRIVATE ${PROJECT_SOURCE_DIR}) 28 ENDMACRO(ADD_UNIT_TEST_SAN) 29 30 IF(UCERT_HOST_BUILD) 31 ADD_DEFINITIONS(-DUCERT_HOST_BUILD) 32 ENDIF() 33 34 IF(USE_RPATH) 35 SET(CMAKE_INSTALL_RPATH "${USE_RPATH}") 36 SET(CMAKE_MACOSX_RPATH 1) 37 ENDIF() 38 39 ADD_LIBRARY(ucert_lib STATIC usign-exec.c) 40 ADD_EXECUTABLE(ucert ucert.c) 41 42 IF(UCERT_FULL) 43 ADD_DEFINITIONS(-DUCERT_FULL) 44 TARGET_LINK_LIBRARIES(ucert ucert_lib ${ubox} ${blobmsg_json} ${json}) 45 ELSE() 46 ADD_DEFINITIONS(-DUCERT_STRIP_MESSAGES) 47 TARGET_LINK_LIBRARIES(ucert ucert_lib ${ubox}) 48 ENDIF() 49 50 IF(UNIT_TESTING) 51 ENABLE_TESTING() 52 ADD_SUBDIRECTORY(tests) 53 ADD_UNIT_TEST_SAN(ucert) 54 ENDIF() 55 56 INSTALL(TARGETS ucert RUNTIME DESTINATION bin)
This page was automatically generated by LXR 0.3.1. • OpenWrt