mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
134 lines
5.7 KiB
Plaintext
134 lines
5.7 KiB
Plaintext
cmake_minimum_required(VERSION 3.18.2)
|
|
project(Gradido_LoginServer C CXX)
|
|
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin" )
|
|
|
|
SET ( CMAKE_CXX_FLAGS "-std=c++17" )
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
if(WIN32)
|
|
set(CMAKE_CXX_FLAGS "/MP /EHsc")
|
|
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g3")
|
|
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
|
|
else()
|
|
set(INSTALL_BINDIR "bin")
|
|
set(INSTALL_PLUGINDIR "bin")
|
|
endif()
|
|
|
|
include_directories(
|
|
"dependencies"
|
|
"dependencies/tinf/src"
|
|
"dependencies/mariadb-connector-c/include"
|
|
"dependencies/mariadb-connector-c/build/include"
|
|
"dependencies/spirit-po/include"
|
|
"dependencies/grpc/include"
|
|
"dependencies/grpc/third_party/protobuf/src"
|
|
"dependencies/grpc/third_party/googletest/googletest/include"
|
|
"dependencies/poco/Crypto/include"
|
|
"dependencies/poco/Data/include"
|
|
"dependencies/poco/Util/include"
|
|
"dependencies/poco/Foundation/include"
|
|
"dependencies/poco/JSON/include"
|
|
"dependencies/poco/Net/include"
|
|
"dependencies/poco/NetSSL_OpenSSL/include"
|
|
"src/cpp/proto"
|
|
)
|
|
|
|
|
|
|
|
|
|
#set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include")
|
|
|
|
FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h")
|
|
FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h")
|
|
FILE(GLOB HTTPInterface "src/cpp/HTTPInterface/*.h" "src/cpp/HTTPInterface/*.cpp")
|
|
FILE(GLOB JSONInterface "src/cpp/JSONInterface/*.h" "src/cpp/JSONInterface/*.cpp")
|
|
FILE(GLOB TASKS "src/cpp/tasks/*.cpp" "src/cpp/tasks/*.h")
|
|
FILE(GLOB SINGLETON_MANAGER "src/cpp/SingletonManager/*.h" "src/cpp/SingletonManager/*.cpp")
|
|
FILE(GLOB LIB_SRC "src/cpp/lib/*.h" "src/cpp/lib/*.cpp")
|
|
FILE(GLOB MODEL "src/cpp/model/*.h" "src/cpp/model/*.cpp")
|
|
FILE(GLOB MODEL_TABLE "src/cpp/model/table/*.h" "src/cpp/model/table/*.cpp")
|
|
FILE(GLOB MODEL_EMAIL "src/cpp/model/email/*.h" "src/cpp/model/email/*.cpp")
|
|
FILE(GLOB MODEL_HEDERA "src/cpp/model/hedera/*.h" "src/cpp/model/hedera/*.cpp")
|
|
FILE(GLOB MODEL_GRADIDO "src/cpp/model/gradido/*.h" "src/cpp/model/gradido/*.cpp")
|
|
FILE(GLOB CRYPTO "src/cpp/Crypto/*.h" "src/cpp/Crypto/*.cpp")
|
|
FILE(GLOB MAIN "src/cpp/*.cpp" "src/cpp/*.c" "src/cpp/*.h")
|
|
FILE(GLOB MYSQL "src/cpp/MySQL/*.cpp" "src/cpp/MySQL/*.h" "src/cpp/MySQL/Poco/*.h")
|
|
FILE(GLOB PROTO_GRADIDO "src/cpp/proto/gradido/*.cc" "src/cpp/proto/gradido/*.h")
|
|
FILE(GLOB PROTO_HEDERA "src/cpp/proto/hedera/*.cc" "src/cpp/proto/hedera/*.h")
|
|
|
|
# used only for test project
|
|
FILE(GLOB TEST "src/cpp/test/*.cpp" "src/cpp/test/*.h")
|
|
FILE(GLOB TEST_CRYPTO "src/cpp/test/crypto/*.cpp" "src/cpp/test/crypto/*.h")
|
|
FILE(GLOB TEST_MODEL "src/cpp/test/model/*.cpp" "src/cpp/test/model/*.h")
|
|
FILE(GLOB TEST_MODEL_TABLE "src/cpp/test/model/table/*.cpp" "src/cpp/test/model/table/*.h")
|
|
FILE(GLOB TEST_CONTROLLER "src/cpp/test/controller/*.cpp" "src/cpp/test/controller/*.h")
|
|
|
|
SET(LOCAL_SRCS
|
|
${CONTROLLER} ${TINF} ${MAIN} ${HTTPInterface}
|
|
${JSONInterface} ${CRYPTO}
|
|
${MODEL} ${MODEL_TABLE} ${MODEL_EMAIL} ${MODEL_HEDERA} ${MODEL_GRADIDO}
|
|
${SINGLETON_MANAGER} ${LIB_SRC} ${MYSQL} ${TASKS}
|
|
${PROTO_GRADIDO} ${PROTO_HEDERA}
|
|
)
|
|
SET(LOCAL_TEST_SRC
|
|
${TEST} ${TEST_CRYPTO} ${TEST_MODEL} ${TEST_MODEL_TABLE} ${TEST_CONTROLLER}
|
|
)
|
|
aux_source_directory("src/cpp" LOCAL_SRCS)
|
|
|
|
if(MSVC)
|
|
# src
|
|
source_group("controller" FILES ${CONTROLLER})
|
|
source_group("proto\\gradido" FILES ${PROTO_GRADIDO})
|
|
source_group("proto\\hedera" FILES ${PROTO_HEDERA})
|
|
source_group("tinf" FILES ${TINF})
|
|
source_group("Crypto" FILES ${CRYPTO})
|
|
source_group("tasks" FILES ${TASKS})
|
|
source_group("model\\table" FILES ${MODEL_TABLE})
|
|
source_group("model\\email" FILES ${MODEL_EMAIL})
|
|
source_group("model\\hedera" FILES ${MODEL_HEDERA})
|
|
source_group("model\\gradido" FILES ${MODEL_GRADIDO})
|
|
source_group("model" FILES ${MODEL})
|
|
source_group("mysql" FILES ${MYSQL})
|
|
source_group("SingletonManager" FILES ${SINGLETON_MANAGER})
|
|
source_group("lib" FILES ${LIB_SRC})
|
|
source_group("HTTP-Interface" FILES ${HTTPInterface})
|
|
source_group("Json-Interface" FILES ${JSONInterface})
|
|
source_group("Test\\crypto" FILES ${TEST_CRYPTO})
|
|
source_group("Test\\model\\table" FILES ${TEST_MODEL_TABLE})
|
|
source_group("Test\\model" FILES ${TEST_MODEL})
|
|
source_group("Test\\controller" FILES ${TEST_CONTROLLER})
|
|
source_group("Test" FILES ${TEST})
|
|
endif()
|
|
|
|
add_executable(Gradido_LoginServer ${LOCAL_SRCS})
|
|
|
|
############################## config and add mariadb ###################################
|
|
|
|
find_library(MYSQL_LIBRARIES mariadbd PATHS "pre_build/dependencies/mariadb-connector-c/libmariadb/lib" REQUIRED)
|
|
|
|
############################## config and add poco ###################################
|
|
set(BUILD_LIB_PATH "pre_build/lib")
|
|
find_library(POCO_FOUNDATION_LIB PocoFoundationd PATHS ${BUILD_LIB_PATH} REQUIRED)
|
|
find_library(POCO_UTIL_LIB PocoUtild PATHS ${BUILD_LIB_PATH} REQUIRED)
|
|
find_library(POCO_NET_SSL_LIB PocoNetSSLd PATHS ${BUILD_LIB_PATH} REQUIRED)
|
|
find_library(POCO_DATA_LIB PocoDatad PATHS ${BUILD_LIB_PATH} REQUIRED)
|
|
find_library(POCO_JSON_LIB PocoJSONd PATHS ${BUILD_LIB_PATH} REQUIRED)
|
|
find_library(POCO_NET_LIB PocoNetd PATHS ${BUILD_LIB_PATH} REQUIRED)
|
|
|
|
set(POCO_LIBS ${POCO_FOUNDATION_LIB} ${POCO_UTIL_LIB} ${POCO_NET_SSL_LIB} ${POCO_DATA_LIB} ${POCO_JSON_LIB} ${POCO_NET_LIB})
|
|
|
|
############################## config and add grpc ###################################
|
|
|
|
|
|
find_library(PROTOBUF_LIB protobufd PATHS "pre_build/dependencies/grpc/third_party/protobuf/lib" REQUIRED)
|
|
set(DEPENDENCIES_GRPC_LIB_PATH "pre_build/dependencies/grpc/lib")
|
|
find_library(GRPC_PP_REFLECTION grpc++_reflectiond PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED)
|
|
find_library(GRPC_PP grpc++d PATHS ${DEPENDENCIES_GRPC_LIB_PATH} REQUIRED)
|
|
|
|
set(GRPC_LIBS, ${GRPC_PP_REFLECTION} ${GRPC_PP} ${PROTOBUF_LIB})
|
|
############################## build login server ###################################
|
|
|
|
target_link_libraries(Gradido_LoginServer ${GRPC_LIBS} ${POCO_LIBS} ${MYSQL_LIBRARIES} sodium)
|
|
|