ervu-sign-module/CMakeLists.txt
2024-09-11 17:30:53 +03:00

102 lines
2.8 KiB
CMake

CMAKE_MINIMUM_REQUIRED (VERSION 3.0)
PROJECT (ervu-sign-module VERSION 1.0.0 LANGUAGES C)
SET (CMAKE_C_COMPILER "gcc")
IF (CMAKE_VERBOSE)
SET (CMAKE_VERBOSE_MAKEFILE 1)
ENDIF ()
SET (CMAKE_C_FLAGS "-Wall -Wextra -Werror -Wno-unused-parameter")
SET (CMAKE_C_FLAGS_DEBUG "-g -O0 -DDEBUG")
SET (CMAKE_C_FLAGS_RELEASE "-g -O2 -DNDEBUG")
SET (CMAKE_EXE_LINKER_FLAGS "-Wl,--no-undefined")
SET (SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src)
SET (UTILS_DIR ${SOURCE_DIR}/utils)
SET (FCGISRV_DIR ${SOURCE_DIR}/fcgisrv)
SET (MODULES_DIR ${SOURCE_DIR}/modules)
INCLUDE_DIRECTORIES (${SOURCE_DIR})
# PKG-CONFIG
FIND_PACKAGE (PkgConfig REQUIRED)
# GLIB2
MESSAGE ("")
MESSAGE ("Try to find the glib-2.0..")
PKG_CHECK_MODULES (GLIB2 REQUIRED glib-2.0)
IF (NOT GLIB2_FOUND)
MESSAGE (SEND_ERROR "Can not find glib-2.0")
ELSE ()
MESSAGE ("glib-2.0 is found: ")
MESSAGE ("GLIB2_LIB_INCLUDE_DIR : " ${GLIB2_LIB_INCLUDE_DIR})
MESSAGE ("GLIB2_INCLUDE_DIR : " ${GLIB2_INCLUDE_DIR})
MESSAGE ("GLIB2_LIBRARY_DIR : " ${GLIB2_LIBRARY_DIR})
MESSAGE ("GLIB2_INCLUDE_DIRS : " ${GLIB2_INCLUDE_DIRS})
MESSAGE ("GLIB2_LIBRARY_DIRS : " ${GLIB2_LIBRARY_DIRS})
MESSAGE ("GLIB2_LIBRARIES : " ${GLIB2_LIBRARIES})
ENDIF (NOT GLIB2_FOUND)
MESSAGE ("")
# set glib2 path vars
INCLUDE_DIRECTORIES (${GLIB2_INCLUDE_DIRS})
SET (DEP_LIBS
-lpthread
-lfcgi
-lglib-2.0
-ldl
)
# version.h
CONFIGURE_FILE (${SOURCE_DIR}/version.h.in ${SOURCE_DIR}/version.h)
# config.h
IF (NOT DEFINED CONFIG_NAME)
SET (CONFIG_NAME "/etc/${PROJECT_NAME}.conf")
ENDIF ()
MESSAGE ("CONFIG_NAME: " ${CONFIG_NAME})
MESSAGE ("")
CONFIGURE_FILE (${SOURCE_DIR}/config.h.in ${SOURCE_DIR}/config.h)
SET (CRYPTOPRO_INCLUDE_DIRS
/opt/cprocsp/include
/opt/cprocsp/include/cpcsp
/opt/cprocsp/include/pki
)
MESSAGE("CRYPTOPRO_INCLUDE_DIRS : " ${CRYPTOPRO_INCLUDE_DIRS})
ADD_DEFINITIONS(-DUNIX)
INCLUDE_DIRECTORIES ("${CRYPTOPRO_INCLUDE_DIRS}")
FILE (GLOB_RECURSE HEADERS "${SOURCE_DIR}/*.h")
ADD_EXECUTABLE (${PROJECT_NAME}
${HEADERS}
${SOURCE_DIR}/main.c
${SOURCE_DIR}/main_conf.c
${SOURCE_DIR}/master.c
${SOURCE_DIR}/service_manager.c
${SOURCE_DIR}/worker.c
${UTILS_DIR}/base64.c
${UTILS_DIR}/capi.c
${UTILS_DIR}/conf_file_context.c
${UTILS_DIR}/cryptopro.c
${UTILS_DIR}/gconf_file.c
${UTILS_DIR}/library.c
${UTILS_DIR}/logger.c
${UTILS_DIR}/str_t.c
${FCGISRV_DIR}/fcgi_map.c
${FCGISRV_DIR}/fcgi_server.c
${FCGISRV_DIR}/fcgi_thread.c
${FCGISRV_DIR}/fcgi_utils.c
${FCGISRV_DIR}/fcgi_worker.c
${MODULES_DIR}/service_sign.c
)
TARGET_LINK_LIBRARIES (${PROJECT_NAME} ${DEP_LIBS})