You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.7 KiB

9 years ago
set(CNAME "f2b")
set(VERSION 0.1)
9 years ago
9 years ago
project(${CNAME} C)
cmake_minimum_required(VERSION 2.6)
9 years ago
9 years ago
include(CTest)
option(HARDENING "Enable hardening options" OFF)
option(WITH_PCRE "Build pcre-compatible filter" ON)
9 years ago
9 years ago
set(CMAKE_INSTALL_PREFIX "/usr/local")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -std=c99")
add_definitions("-D_XOPEN_SOURCE=600")
9 years ago
9 years ago
if (HARDENING)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat -Wformat-security -Werror=format-security" )
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstack-protector --param ssp-buffer-size=4" )
add_definitions("-D_FORTIFY_SOURCE=2")
endif ()
message(STATUS "Compiler : ${CMAKE_C_COMPILER} (${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION})")
message(STATUS "- CFLAGS : ${CMAKE_C_FLAGS}")
message(STATUS "Prefix : ${CMAKE_INSTALL_PREFIX}")
message(STATUS "Build type : ${CMAKE_BUILD_TYPE}")
message(STATUS "Options:")
message(STATUS "- HARDENING: ${HARDENING}")
message(STATUS "- WITH_PCRE: ${WITH_PCRE}")
9 years ago
message(STATUS "Components:")
9 years ago
add_subdirectory(src)
add_subdirectory(t)
set_property(DIRECTORY "t" PROPERTY COMPILE_FLAGS "-g;-ggdb;-Wall;-Wextra;-pedantic;-O0")
9 years ago
9 years ago
install(DIRECTORY "filters" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/f2b/")
9 years ago
install(DIRECTORY "configs" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/f2b/")
install(FILES "configs/f2b.conf.sample" DESTINATION "${CMAKE_INSTALL_PREFIX}/etc/f2b/" RENAME "f2b.conf")
add_custom_target("dist" COMMAND
"git" "archive" "--format=tar.gz"
"--output=${CNAME}_v${VERSION}.tar.gz"
"--prefix=${CNAME}_v${VERSION}/" "v${VERSION}")
add_custom_target("dist-latest" COMMAND
"git" "archive" "--format=tar.gz"
"--output=${CNAME}_latest.tar.gz"
"--prefix=${CNAME}_latest/" "master")
add_custom_target("lint" COMMAND "cppcheck" "src/")