diff options
-rw-r--r-- | .travis.yml | 42 | ||||
-rw-r--r-- | CMakeLists.txt | 192 | ||||
-rw-r--r-- | README.md | 11 |
3 files changed, 69 insertions, 176 deletions
diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 165d91a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,42 +0,0 @@ -matrix: - include: - - os: osx - osx_image: xcode12 - language: cpp - addons: - homebrew: - packages: - - gtkmm3 - - zlib - - openssl - - nlohmann-json - - sqlite - -script: - - | - git submodule init - git submodule update - mkdir build - cd build - cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_PKGCONFIG=ON -DDISABLE_MBEDTLS=ON ../ - make - -before_deploy: - - | - mkdir out - cp abaddon out/abaddon - -deploy: - provider: s3 - local_dir: out - upload-dir: travis-$TRAVIS_BRANCH - skip_cleanup: true - bucket: "pogger-space" - access_key_id: $S3_ACCESS_KEY - secret_access_key: $S3_SECRET_KEY - endpoint: "https://nyc3.digitaloceanspaces.com" - region: nyc3 - acl: public_read - overwrite: true - on: - all_branches: true diff --git a/CMakeLists.txt b/CMakeLists.txt index a4c9d47..2452ead 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,130 +4,62 @@ project(abaddon) set(CMAKE_CXX_STANDARD 17) -option(USE_PKGCONFIG "Use pkg-config" OFF) option(DISABLE_MBEDTLS "Disable mbedtls" OFF) add_compile_definitions(NOMINMAX) -if(NOT USE_PKGCONFIG) - find_path(GTKMM_INCLUDE_DIRS gtkmm.h REQUIRED) - find_library(GTKMM_LIBRARY gtkmm) - link_libraries(${GTKMM_LIBRARY}) - include_directories(${GTKMM_INCLUDE_DIRS}) - - find_library(GLIB_LIBRARY glib-2.0) - link_libraries(${GLIB_LIBRARY}) - - find_path(GLIBMM_INCLUDE_DIRS glibmm.h) - find_library(GLIBMM_LIBRARY glibmm) - link_libraries(${GLIBMM_LIBRARY}) - include_directories(${GLIBMM_INCLUDE_DIRS}) - - find_path(SIGC_INCLUDE_DIRS sigc++/sigc++.h) - find_library(SIGC_LIBRARY sigc-2.0) - link_libraries(${SIGC_LIBRARY}) - include_directories(${SIGC_INCLUDE_DIRS}) - - find_path(GIOMM_INCLUDE_DIRS giomm.h) - find_library(GIOMM_LIBRARY giomm) - link_libraries(${GIOMM_LIBRARY}) - include_directories(${GIOMM_INCLUDE_DIRS}) - - find_path(GDKMM_INCLUDE_DIRS gdkmm.h) - find_library(GDKMM_LIBRARY gdkmm) - link_libraries(${GDKMM_LIBRARY}) - include_directories(${GDKMM_INCLUDE_DIRS}) - - find_path(ATKMM_INCLUDE_DIRS atkmm.h) - find_library(ATKMM_LIBRARY atkmm) - link_libraries(${ATKMM_LIBRARY}) - include_directories(${ATKMM_INCLUDE_DIRS}) - - find_package(curl) - find_library(CURL_LIBRARY libcurl) - link_libraries(${CURL_LIBRARY}) - - find_path(CPR_INCLUDE_DIRS cpr/cpr.h) - find_library(CPR_LIBRARY cpr) - include_directories(${CPR_INCLUDE_DIRS}) - link_libraries(${CPR_LIBRARY}) - - find_package(zlib) - find_library(ZLIB_LIBRARY zlib) - include_directories(${ZLIB_INCLUDE_DIRS}) - link_libraries(${ZLIB_LIBRARY}) - - 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}) - link_libraries(${MBEDTLS_TLS_LIBRARY}) - link_libraries(${MBEDTLS_X509_LIBRARY}) - link_libraries(${MBEDTLS_CRYPTO_LIBRARY}) - endif() - - find_package(nlohmann_json 3.2.0 REQUIRED) - - find_package(unofficial-sqlite3 CONFIG REQUIRED) - link_libraries(unofficial::sqlite3::sqlite3) - - find_path(IXWEBSOCKET_INCLUDE_DIRS ixwebsocket/ixwebsocket.h) - find_library(IXWEBSOCKET_LIBRARY ixwebsocket) - link_libraries(${IXWEBSOCKET_LIBRARY}) - include_directories(${IXWEBSOCKET_LIBRARY}}) -else() - find_package(PkgConfig) - - set(BUILD_CPR_TESTS OFF) - set(BUILD_CPR_TESTS_SSL OFF) - - include(FetchContent) - FetchContent_Declare(cpr GIT_REPOSITORY https://github.com/whoshuu/cpr.git) - FetchContent_MakeAvailable(cpr) - include_directories(${CPR_INCLUDE_DIRS}) - link_libraries(cpr::cpr) - - pkg_check_modules(NLOHMANN_JSON REQUIRED nlohmann_json) - include_directories(${NLOHMANN_JSON_INCLUDE_DIRS}) - - pkg_check_modules(GTKMM REQUIRED gtkmm-3.0) - link_directories(${GTKMM_LIBRARY_DIRS}) - include_directories(${GTKMM_INCLUDE_DIRS}) - - pkg_check_modules(ATKMM REQUIRED atkmm-1.6) - link_directories(${ATKMM_LIBRARY_DIRS}) - include_directories(${ATKMM_INCLUDE_DIRS}) - - pkg_check_modules(GDKMM REQUIRED gdkmm-3.0) - link_directories(${GDKMM_LIBRARY_DIRS}) - include_directories(${GDKMM_INCLUDE_DIRS}) - - pkg_check_modules(GIOMM REQUIRED giomm-2.4) - link_directories(${GIOMM_LIBRARY_DIRS}) - include_directories(${GIOMM_INCLUDE_DIRS}) - - pkg_check_modules(SIGC REQUIRED sigc++-2.0) - link_directories(${SIGC_LIBRARY_DIRS}) - include_directories(${SIGC_INCLUDE_DIRS}) - - pkg_check_modules(GLIBMM REQUIRED glibmm-2.4) - link_directories(${GLIBMM_LIBRARY_DIRS}) - include_directories(${GLIBMM_INCLUDE_DIRS}) - - pkg_check_modules(SQLITE3 REQUIRED sqlite3) - link_directories(${SQLITE_LIBRARY_DIRS}) - include_directories(${SQLITE_INCLUDE_DIRS}) - - set(USE_TLS TRUE) - set(USE_OPEN_SSL TRUE) - add_subdirectory(thirdparty/IXWebSocket) - include_directories("thirdparty/IXWebSocket") - link_libraries(ixwebsocket) - - include_directories("thirdparty/simpleini") +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_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}) endif() +find_package(nlohmann_json 3.2.0 REQUIRED) + +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) endif() @@ -147,10 +79,20 @@ file(GLOB ABADDON_SOURCES ) add_executable(abaddon ${ABADDON_SOURCES}) -target_link_libraries(abaddon ${GTKMM_LIBRARIES}) -target_link_libraries(abaddon ${GDKMM_LIBRARIES}) -target_link_libraries(abaddon ${GLIBMM_LIBRARIES}) -target_link_libraries(abaddon ${SIGC_LIBRARIES}) -target_link_libraries(abaddon ${ATKMM_LIBRARIES}) -target_link_libraries(abaddon ${GIOMM_LIBRARIES}) -target_link_libraries(abaddon ${GDK_LIBRARIES}) +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_link_libraries(abaddon ${CPR_LIBRARY}) +target_link_libraries(abaddon ${ZLIB_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() @@ -18,18 +18,11 @@ 4. `cmake -G"Visual Studio 16 2019" -A x64 -DCMAKE_TOOLCHAIN_FILE=c:\path\to\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DVCPKG_TARGET_TRIPLET=x64-windows ..` 5. Build with Visual Studio -#### Mac: -1. Install gtkmm3 zlib openssl and nlohmann-json from homebrew -2. `git clone --recurse-submodules -j8 https://github.com/lorpus/abaddon` -3. `cd abaddon` -4. `mkdir build` -5. `cd build` -6. `cmake -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl -DCMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_PKGCONFIG=ON -DDISABLE_MBEDTLS=ON ../` -7. `make` +#### Mac/Linux: + ### Downloads (from CI): - Windows: [here](https://ci.appveyor.com/project/lorpus/abaddon/build/artifacts) -- OSX: [here](https://i.owo.okinawa/travis-master/abaddon) (downloading css/ and res/ from here is still necessary) #### Dependencies: * [gtkmm](https://www.gtkmm.org/en/) |