From 8cf95fce0cb233125334482149c2c9f4219da52b Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Thu, 7 Jan 2021 02:41:49 -0500 Subject: improve build process, add github actions --- CMakeLists.txt | 126 +++++++++++++++++++++++++-------------------------------- 1 file changed, 56 insertions(+), 70 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index ca85542..8a348ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,70 +3,34 @@ cmake_minimum_required(VERSION 3.16) project(abaddon) set(CMAKE_CXX_STANDARD 17) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") -option(DISABLE_MBEDTLS "Disable mbedtls" OFF) +set(USE_TLS TRUE) +set(USE_OPEN_SSL TRUE) -add_compile_definitions(NOMINMAX) +find_package(nlohmann_json REQUIRED) +find_package(CURL) +find_package(cpr REQUIRED) +find_package(ZLIB REQUIRED) +find_package(SQLite3 REQUIRED) +find_package(gtkmm REQUIRED) -find_path(GTKMM_INCLUDE_DIRS gtkmm.h REQUIRED) -find_library(GTKMM_LIBRARY gtkmm) -include_directories(${GTKMM_INCLUDE_DIRS}) - -find_library(GLIB_LIBRARY glib-2.0) -find_library(GTK_LIBRARY gtk-3.0) - -find_path(GLIBMM_INCLUDE_DIRS glibmm.h) -find_library(GLIBMM_LIBRARY glibmm) -include_directories(${GLIBMM_INCLUDE_DIRS}) - -find_path(SIGC_INCLUDE_DIRS sigc++/sigc++.h) -find_library(SIGC_LIBRARY sigc-2.0) -include_directories(${SIGC_INCLUDE_DIRS}) - -find_path(GIOMM_INCLUDE_DIRS giomm.h) -find_library(GIOMM_LIBRARY giomm) -include_directories(${GIOMM_INCLUDE_DIRS}) - -find_path(GDKMM_INCLUDE_DIRS gdkmm.h) -find_library(GDKMM_LIBRARY gdkmm) -include_directories(${GDKMM_INCLUDE_DIRS}) - -find_path(ATKMM_INCLUDE_DIRS atkmm.h) -find_library(ATKMM_LIBRARY atkmm) -include_directories(${ATKMM_INCLUDE_DIRS}) - -find_package(curl) -find_library(CURL_LIBRARY libcurl) - -find_path(CPR_INCLUDE_DIRS cpr/cpr.h) -find_library(CPR_LIBRARY cpr) -include_directories(${CPR_INCLUDE_DIRS}) - -find_package(zlib) -find_library(ZLIB_LIBRARY zlib) -include_directories(${ZLIB_INCLUDE_DIRS}) - -if(NOT DISABLE_MBEDTLS) - find_library(MBEDTLS_X509_LIBRARY mbedx509) - find_library(MBEDTLS_TLS_LIBRARY mbedtls) - find_library(MBEDTLS_CRYPTO_LIBRARY mbedcrypto) - include_directories(${MBEDTLS_INCLUDE_DIRS}) +find_path(IXWEBSOCKET_INCLUDE_DIRS ixwebsocket/IXWebSocket.h) +find_library(IXWEBSOCKET_LIBRARY ixwebsocket) +if (NOT IXWEBSOCKET_LIBRARY) + add_subdirectory(thirdparty/IXWebSocket) + include_directories(IXWEBSOCKET_INCLUDE_DIRS) endif() -find_package(nlohmann_json 3.2.0 REQUIRED) +include_directories(thirdparty/simpleini) -find_package(unofficial-sqlite3 CONFIG REQUIRED) - -find_path(IXWEBSOCKET_INCLUDE_DIRS ixwebsocket/ixwebsocket.h) -find_library(IXWEBSOCKET_LIBRARY ixwebsocket) -include_directories(${IXWEBSOCKET_INCLUDE_DIRS}}) - -if(mingw) - link_libraries(ws2_32 wsock2) +if(MINGW OR WIN32) + link_libraries(ws2_32) endif() if(WIN32) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) + add_compile_definitions(NOMINMAX) endif() file(GLOB ABADDON_SOURCES @@ -84,21 +48,43 @@ file(GLOB ABADDON_SOURCES ) add_executable(abaddon ${ABADDON_SOURCES}) -target_link_libraries(abaddon ${IXWEBSOCKET_LIBRARY}) -target_link_libraries(abaddon unofficial::sqlite3::sqlite3) -target_link_libraries(abaddon ${GTKMM_LIBRARY}) -target_link_libraries(abaddon ${GLIB_LIBRARY}) -target_link_libraries(abaddon ${GLIBMM_LIBRARY}) -target_link_libraries(abaddon ${SIGC_LIBRARY}) -target_link_libraries(abaddon ${GIOMM_LIBRARY}) -target_link_libraries(abaddon ${GDKMM_LIBRARY}) -target_link_libraries(abaddon ${ATKMM_LIBRARY}) -target_link_libraries(abaddon ${CURL_LIBRARY}) +target_include_directories(abaddon PUBLIC ${GTKMM_INCLUDE_DIRS}) +target_include_directories(abaddon PUBLIC ${CPR_INCLUDE_DIRS}) +target_include_directories(abaddon PUBLIC ${ZLIB_INCLUDE_DIRS}) +target_include_directories(abaddon PUBLIC ${SQLite3_INCLUDE_DIRS}) + +if ((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR + (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND + ((CMAKE_SYSTEM_NAME STREQUAL "Linux") OR (CMAKE_CXX_COMPILER_VERSION LESS 9)))) + target_link_libraries(abaddon stdc++fs) +endif() + +if (IXWEBSOCKET_LIBRARY) + target_link_libraries(abaddon ${IXWEBSOCKET_LIBRARY}) + find_library(MBEDTLS_X509_LIBRARY mbedx509) + find_library(MBEDTLS_TLS_LIBRARY mbedtls) + find_library(MBEDTLS_CRYPTO_LIBRARY mbedcrypto) + if (MBEDTLS_TLS_LIBRARY) + target_link_libraries(abaddon ${MBEDTLS_TLS_LIBRARY}) + endif() + if (MBEDTLS_X509_LIBRARY) + target_link_libraries(abaddon ${MBEDTLS_X509_LIBRARY}) + endif() + if (MBEDTLS_CRYPTO_LIBRARY) + target_link_libraries(abaddon ${MBEDTLS_CRYPTO_LIBRARY}) + endif() +else() + target_link_libraries(abaddon $) +endif() + +find_package(Threads) +if (Threads_FOUND) + target_link_libraries(abaddon Threads::Threads) +endif() + +target_link_libraries(abaddon ${SQLite3_LIBRARIES}) +target_link_libraries(abaddon ${GTKMM_LIBRARIES}) +target_link_libraries(abaddon ${CURL_LIBRARIES}) target_link_libraries(abaddon ${CPR_LIBRARY}) target_link_libraries(abaddon ${ZLIB_LIBRARY}) -target_link_libraries(abaddon ${GTK_LIBRARY}) -if(NOT DISABLE_MBEDTLS) - target_link_libraries(abaddon ${MBEDTLS_TLS_LIBRARY}) - target_link_libraries(abaddon ${MBEDTLS_X509_LIBRARY}) - target_link_libraries(abaddon ${MBEDTLS_CRYPTO_LIBRARY}) -endif() +target_link_libraries(abaddon ${NLOHMANN_JSON_LIBRARIES}) -- cgit v1.2.3