• source navigation  • diff markup  • identifier search  • freetext search  • 

Sources/ucert/CMakeLists.txt

  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