finish unix makefile updates

This commit is contained in:
dario Linux 2020-10-12 11:19:55 +02:00
parent 09f2ae27de
commit 5642805b7e
7 changed files with 62 additions and 35 deletions

3
.gitmodules vendored
View File

@ -19,3 +19,6 @@
[submodule "dependencies/poco"]
path = dependencies/poco
url = https://github.com/pocoproject/poco.git
[submodule "dependencies/cmake-modules"]
path = dependencies/cmake-modules
url = https://github.com/viaduck/cmake-modules.git

View File

@ -16,9 +16,11 @@ include_directories(
"dependencies/grpc/third_party/protobuf/src"
"src/cpp/proto"
)
#if(WIN32)
#include_directories("dependencies/mariadb-connector-c/include", "dependencies/mariadb-connector-c/build/include")
set(MYSQL_INCLUDE_DIR "dependencies/mariadb-connector-c/include")
#endif(WIN32)
FILE(GLOB CONTROLLER "src/cpp/controller/*.cpp" "src/cpp/controller/*.h")
FILE(GLOB TINF "dependencies/tinf/src/*.c" "dependencies/tinf/src/*.h")
@ -85,10 +87,15 @@ conan_basic_setup()
add_executable(Gradido_LoginServer ${LOCAL_SRCS})
set(CLIENT_PLUGIN_DIALOG OFF)
set(CLIENT_PLUGIN_client_ed25519 OFF)
set(CLIENT_PLUGIN_MYSQL_CLEAR_PASSWORD OFF)
set(CLIENT_PLUGIN_REMOTE_IO OFF)
set(WITH_SSL OFF)
add_subdirectory("dependencies/mariadb-connector-c")
set(DEP_PATH "dependencies")
set(MARIADB_CONNECTOR_PATH "${DEP_PATH}/mariadb-connector-c/build/libmariadb")
#set(MARIADB_CONNECTOR_PATH "${DEP_PATH}/mariadb-connector-c/build/libmariadb")
set(GRPC_PATH "${DEP_PATH}/grpc/build")
set(GRPC_ABSL_PATH "${GRPC_PATH}/third_party/abseil-cpp/absl/types")
@ -126,8 +133,8 @@ if(WIN32)
else (WIN32)
find_library(MYSQL_LIBRARIES libmariadb.so PATHS ${MARIADB_CONNECTOR_PATH} REQUIRED)
#find_package(MariaDBClient PATHS "dependencies/cmake-modules")
#find_library(MYSQL_LIBRARIES libmariadb.so PATHS ${MARIADB_CONNECTOR_PATH} REQUIRED)
set(GRPC_PROTOBUF_DEBUG_PATH "${GRPC_PROTOBUF_PATH}")
list(REMOVE_ITEM CONAN_LIBS "ssl")
@ -138,7 +145,7 @@ else (WIN32)
endif(WIN32)
# load same ssl version like used from poco
find_package(OpenSSL PATHS . NO_DEFAULT_PATH)
#find_package(OpenSSL PATHS "../" NO_DEFAULT_PATH)
find_library(CONAN_OPENSSL_SSL ssl PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH )
find_library(CONAN_OPENSSL_CRYPTO crypto PATHS ${CONAN_LIB_DIRS_OPENSSL} REQUIRED NO_DEFAULT_PATH )
@ -147,11 +154,9 @@ set(CONAN_OPENSSL_CUSTOM_LIBS
${CONAN_OPENSSL_SSL}
${CONAN_OPENSSL_CRYPTO}
)
include_directories(${CONAN_INCLUDE_DIRS_OPENSSL})
# build grpc
set(BUILD_TESTING OFF)
set(gRPC_SSL_PROVIDER "package")
add_subdirectory("dependencies/grpc/")
message(STATUS "Using gRPC via add_subdirectory.")
if(WIN32)
@ -164,14 +169,16 @@ else(WIN32)
set(INSTALL_BINDIR "bin")
set(INSTALL_PLUGINDIR "bin")
include_directories(
${CONAN_INCLUDE_DIRS_OPENSSL}
)
target_link_libraries(Gradido_LoginServer ${CONAN_OPENSSL_CUSTOM_LIBS})
endif(WIN32)
set(BUILD_TESTING OFF)
set(gRPC_SSL_PROVIDER "package")
add_subdirectory("dependencies/grpc/")
set(gRPC_SSL_PROVIDER "package")
message(STATUS "Using gRPC via add_subdirectory.")
set(GRPC_LIBS libprotobuf grpc++_reflection grpc++)
target_link_libraries(Gradido_LoginServer ${CONAN_LIBS})
@ -180,12 +187,13 @@ if(WIN32)
TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi)
TARGET_LINK_LIBRARIES(Gradido_LoginServer debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS})
else(WIN32) # unix
target_link_libraries(Gradido_LoginServer ${MYSQL_LIBRARIES} ${CONAN_OPENSSL_CUSTOM_LIBS} ${GRPC_LIBS} ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS})
target_link_libraries(Gradido_LoginServer libmariadb ${GRPC_LIBS} ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS})
endif(WIN32)
# install
if(UNIX)
install(TARGETS Gradido_LoginServer RUNTIME DESTINATION /usr/local/bin)
#install(LIBRARYS DESTINATION /usr/local/lib)
#install(FILES lib/libmariadb /usr/local/lib)
install(FILES DESTINATION lib COMPONENT libmariadb)
install(DIRECTORY src/LOCALE DESTINATION /etc/grd_login/
@ -206,12 +214,13 @@ target_compile_definitions(Gradido_LoginServer_Test PUBLIC "_TEST_BUILD")
target_link_libraries(Gradido_LoginServer_Test ${CONAN_LIBS} )
if(WIN32)
TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test optimized ${MYSQL_LIBRARIES} Shlwapi)
TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${COMPILED_MARIADB_CLIENT_DEBUG} Shlwapi)
TARGET_LINK_LIBRARIES(Gradido_LoginServer_Test debug ${GRPC_LIBS} ${PROTOBUF_DEBUG_LIBS})
else(WIN32)
target_link_libraries(Gradido_LoginServer_Test ${MYSQL_LIBRARIES} ${CONAN_OPENSSL_CUSTOM_LIBS} ${GRPC_LIBS} ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS})
target_link_libraries(Gradido_LoginServer_Test libmariadb ${GRPC_LIBS} ${CMAKE_DL_LIBS} ${PROTOBUF_LIBS})
endif(WIN32)
add_test(NAME main COMMAND Gradido_LoginServer_Test)

View File

@ -25,6 +25,8 @@ set(OpenSSL_INCLUDE_DIRS "${CONAN_INCLUDE_DIRS_OPENSSL}")
set(OpenSSL_INCLUDE_DIR "${CONAN_INCLUDE_DIRS_OPENSSL}")
set(OpenSSL_INCLUDES "${CONAN_INCLUDE_DIRS_OPENSSL}")
set(OpenSSL_RES_DIRS "${CONAN_RES_DIRS_OPENSSL}")
set(OPENSSL_ROOT_DIR "${CONAN_OPENSSL_ROOT}")
set(OPENSSL_DIR "${CONAN_OPENSSL_ROOT}")
set(OpenSSL_DEFINITIONS )
set(OpenSSL_LINKER_FLAGS_LIST
"$<$<STREQUAL:$<TARGET_PROPERTY:TYPE>,SHARED_LIBRARY>:>"

1
dependencies/cmake-modules vendored Submodule

@ -0,0 +1 @@
Subproject commit 7304f680be32915e772466ebddc5b7d3b453abd9

View File

@ -31,7 +31,7 @@
Gradido_LoginServer::Gradido_LoginServer()
Gradido_LoginServer::Gradido_LoginServer()
: _helpRequested(false)
{
}
@ -147,7 +147,7 @@ int Gradido_LoginServer::main(const std::vector<std::string>& args)
unsigned short port = (unsigned short)config().getInt("HTTPServer.port", 9980);
unsigned short json_port = (unsigned short)config().getInt("JSONServer.port", 1201);
//printf("show mnemonic list: \n");
//printf(ServerConfig::g_Mnemonic_WordLists[ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER].getCompleteWordList().data());
if (!ServerConfig::initServerCrypto(config())) {
@ -156,7 +156,7 @@ int Gradido_LoginServer::main(const std::vector<std::string>& args)
return Application::EXIT_CONFIG;
}
// first check time for crypto
// first check time for crypto
SecretKeyCryptography test_crypto;
Profiler timeUsed;
if (test_crypto.createKey("email@google.de", "haz27Newpassword") != SecretKeyCryptography::AUTH_CREATE_ENCRYPTION_KEY_SUCCEED) {
@ -178,13 +178,18 @@ int Gradido_LoginServer::main(const std::vector<std::string>& args)
ServerConfig::g_CPUScheduler = new UniLib::controller::CPUSheduler(worker_count, "Default Worker");
ServerConfig::g_CryptoCPUScheduler = new UniLib::controller::CPUSheduler(2, "Crypto Worker");
// load up connection configs
// register MySQL connector
Poco::Data::MySQL::Connector::registerConnector();
//Poco::Data::MySQL::Connector::KEY;
try {
Poco::Data::MySQL::Connector::registerConnector();
} catch(Poco::Exception& ex) {
errorLog.error("[Gradido_LoginServer::main] Poco Exception by register MySQL Connector: %s", ex.displayText());
return Application::EXIT_CONFIG;
}
auto conn = ConnectionManager::getInstance();
//conn->setConnection()
//printf("try connect login server mysql db\n");
conn->setConnectionsFromConfig(config(), CONNECTION_MYSQL_LOGIN_SERVER);
//printf("try connect php server mysql \n");
//conn->setConnectionsFromConfig(config(), CONNECTION_MYSQL_PHP_SERVER);
@ -196,10 +201,10 @@ int Gradido_LoginServer::main(const std::vector<std::string>& args)
Poco::Net::initializeSSL();
if(!ServerConfig::initSSLClientContext()) {
//printf("[Gradido_LoginServer::%s] error init server SSL Client\n", __FUNCTION__);
errorLog.error("[Gradido_LoginServer::main] error init server SSL Client\n");
errorLog.error("[Gradido_LoginServer::main] error init server SSL Client");
return Application::EXIT_CONFIG;
}
// schedule email verification resend
controller::User::checkIfVerificationEmailsShouldBeResend(ServerConfig::g_CronJobsTimer);
controller::User::addMissingEmailHashes();
@ -211,7 +216,7 @@ int Gradido_LoginServer::main(const std::vector<std::string>& args)
Poco::ThreadPool& pool = Poco::ThreadPool::defaultPool();
Poco::Net::HTTPServer srv(new PageRequestHandlerFactory, svs, new Poco::Net::HTTPServerParams);
ServerConfig::g_ServerKeySeed->put(7, 918276611);
// start the HTTPServer
srv.start();

View File

@ -48,18 +48,25 @@ const std::string& Connector::name() const
Poco::AutoPtr<Poco::Data::SessionImpl> Connector::createSession(const std::string& connectionString,
std::size_t timeout)
{
return Poco::AutoPtr<Poco::Data::SessionImpl>(new SessionImpl(connectionString, timeout));
return Poco::AutoPtr<Poco::Data::SessionImpl>(new SessionImpl(connectionString, timeout));
}
void Connector::registerConnector()
{
if (mysql_library_init(0, 0, 0) != 0)
{
throw Exception("mysql_library_init error");
}
ServerConfig::g_ServerKeySeed->put(4, DRRandom::r64());
printf("function pointer address: %d\n", mysql_library_init);
try {
if (mysql_library_init(0, nullptr, nullptr) != 0)
{
throw Exception("mysql_library_init error");
}
} catch(std::exception &ex) {
printf("mysql exception: \n");
}
printf("after exception\n");
ServerConfig::g_ServerKeySeed->put(4, DRRandom::r64());
printf("instance add new\n");
Poco::Data::SessionFactory::instance().add(new Connector());
}

View File

@ -5,8 +5,8 @@ fi
if [ ! -d "./src/cpp/proto/gradido" ] ; then
mkdir ./src/cpp/proto/gradido
fi
PROTOC_PATH=./dependencies/grpc/build/third_party/protobuf
CPP_PLUGIN_PATH=./dependencies/grpc/build
PROTOC_PATH=./build/bin
CPP_PLUGIN_PATH=./build/bin
$PROTOC_PATH/protoc --cpp_out=./src/cpp/proto --proto_path=./src/proto ./src/proto/gradido/*.proto
if [ ! -d "./src/cpp/proto/hedera" ] ; then