CMAKE_MINIMUM_REQUIRED (VERSION 3.0) SET (CMAKE_C_COMPILER "gcc") PROJECT (ervu-sign-module VERSION 1.3.0 LANGUAGES C) 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 -ljson-glib-1.0 -lgobject-2.0 -luuid ) # JSON-GLIB MESSAGE ("") MESSAGE ("Try to find the JSON-glib-1.0..") pkg_check_modules (JSONGLIB REQUIRED json-glib-1.0) IF (NOT JSONGLIB_FOUND) MESSAGE(SEND_ERROR "Can not find json-glib-1.0") ELSE () MESSAGE ("json-glib-1.0 is found: ") MESSAGE ("JSONGLIB_LIB_INCLUDE_DIR : " ${JSONGLIB_LIB_INCLUDE_DIR}) MESSAGE ("JSONGLIB_INCLUDE_DIR : " ${JSONGLIB_INCLUDE_DIR}) MESSAGE ("JSONGLIB_LIBRARY_DIR : " ${JSONGLIB_LIBRARY_DIR}) MESSAGE ("JSONGLIB_INCLUDE_DIRS : " ${JSONGLIB_INCLUDE_DIRS}) MESSAGE ("JSONGLIB_LIBRARY_DIRS : " ${JSONGLIB_LIBRARY_DIRS}) MESSAGE ("JSONGLIB_LIBRARIES : " ${JSONGLIB_LIBRARIES}) ENDIF (NOT JSONGLIB_FOUND) MESSAGE ("") INCLUDE_DIRECTORIES ("${JSONGLIB_INCLUDE_DIRS}") # 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") # tests option(WITH_TESTS "Build with tests" OFF) IF (WITH_TESTS) MESSAGE ("Build with tests: ON") enable_testing() add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tests/) ENDIF () 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}/glib_utils.c ${UTILS_DIR}/json_parser.c ${UTILS_DIR}/json_writer.c ${UTILS_DIR}/jwt.c ${UTILS_DIR}/library.c ${UTILS_DIR}/logger.c ${UTILS_DIR}/str_t.c ${UTILS_DIR}/uuid.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 ${MODULES_DIR}/service_verify.c ${MODULES_DIR}/service_version.c ) TARGET_LINK_LIBRARIES (${PROJECT_NAME} ${DEP_LIBS})