summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-01-07 02:41:49 -0500
committerouwou <26526779+ouwou@users.noreply.github.com>2021-01-07 02:41:49 -0500
commit8cf95fce0cb233125334482149c2c9f4219da52b (patch)
treec0c2e267385363e0f87ad4c80d299c08d33a33a9 /CMakeLists.txt
parent2d6c4cd50d0075c064641150dcf65e6b58d5bf36 (diff)
downloadabaddon-portaudio-8cf95fce0cb233125334482149c2c9f4219da52b.tar.gz
abaddon-portaudio-8cf95fce0cb233125334482149c2c9f4219da52b.zip
improve build process, add github actions
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt126
1 files changed, 56 insertions, 70 deletions
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 $<BUILD_INTERFACE:ixwebsocket>)
+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})