summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-09-09 17:03:19 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2020-09-09 17:03:19 -0400
commit44fe6cd6a2cfa9ebabad25a26a60e35355265629 (patch)
tree62ba7a396121fb12f0fea814922af444f53b3819
parentc2df849075c0211cacafa399f6194f1d77beb74e (diff)
downloadabaddon-portaudio-44fe6cd6a2cfa9ebabad25a26a60e35355265629.tar.gz
abaddon-portaudio-44fe6cd6a2cfa9ebabad25a26a60e35355265629.zip
convert to cmake, add ci
-rw-r--r--.gitmodules6
-rw-r--r--.travis.yml45
-rw-r--r--Abaddon.sln31
-rw-r--r--Abaddon.vcxproj181
-rw-r--r--Abaddon.vcxproj.filters108
-rw-r--r--CMakeLists.txt159
-rw-r--r--appveyor.yml51
m---------thirdparty/IXWebSocket0
m---------thirdparty/simpleini0
9 files changed, 261 insertions, 320 deletions
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..91e22f2
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,6 @@
+[submodule "thirdparty/simpleini"]
+ path = thirdparty/simpleini
+ url = https://github.com/brofield/simpleini
+[submodule "thirdparty/IXWebSocket"]
+ path = thirdparty/IXWebSocket
+ url = https://github.com/machinezone/IXWebSocket
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..8a77766
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,45 @@
+matrix:
+ include:
+ - os: osx
+ osx_image: xcode12
+ language: cpp
+ addons:
+ homebrew:
+ packages:
+ - gtkmm3
+ - zlib
+ - openssl
+ - nlohmann-json
+
+branches:
+ only:
+ - cmake
+
+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
+ 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/Abaddon.sln b/Abaddon.sln
deleted file mode 100644
index e9641b0..0000000
--- a/Abaddon.sln
+++ /dev/null
@@ -1,31 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.30204.135
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Abaddon", "Abaddon.vcxproj", "{A2A67504-F7F1-4DD3-B86B-68033416FFF5}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {A2A67504-F7F1-4DD3-B86B-68033416FFF5}.Debug|x64.ActiveCfg = Debug|x64
- {A2A67504-F7F1-4DD3-B86B-68033416FFF5}.Debug|x64.Build.0 = Debug|x64
- {A2A67504-F7F1-4DD3-B86B-68033416FFF5}.Debug|x86.ActiveCfg = Debug|Win32
- {A2A67504-F7F1-4DD3-B86B-68033416FFF5}.Debug|x86.Build.0 = Debug|Win32
- {A2A67504-F7F1-4DD3-B86B-68033416FFF5}.Release|x64.ActiveCfg = Release|x64
- {A2A67504-F7F1-4DD3-B86B-68033416FFF5}.Release|x64.Build.0 = Release|x64
- {A2A67504-F7F1-4DD3-B86B-68033416FFF5}.Release|x86.ActiveCfg = Release|Win32
- {A2A67504-F7F1-4DD3-B86B-68033416FFF5}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {CA30A7C6-E05A-4D4C-BC71-1D4C80E5647E}
- EndGlobalSection
-EndGlobal
diff --git a/Abaddon.vcxproj b/Abaddon.vcxproj
deleted file mode 100644
index afe6d28..0000000
--- a/Abaddon.vcxproj
+++ /dev/null
@@ -1,181 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <VCProjectVersion>16.0</VCProjectVersion>
- <Keyword>Win32Proj</Keyword>
- <ProjectGuid>{a2a67504-f7f1-4dd3-b86b-68033416fff5}</ProjectGuid>
- <RootNamespace>Abaddon</RootNamespace>
- <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="Shared">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>_DEBUG;_CONSOLE;USE_LOCAL_PROXY;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <LanguageStandard>stdcpp17</LanguageStandard>
- <MultiProcessorCompilation>true</MultiProcessorCompilation>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>NDEBUG;_CONSOLE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <LanguageStandard>stdcpp17</LanguageStandard>
- <MultiProcessorCompilation>true</MultiProcessorCompilation>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="abaddon.cpp" />
- <ClCompile Include="components\channels.cpp" />
- <ClCompile Include="components\chatmessage.cpp" />
- <ClCompile Include="components\chatwindow.cpp" />
- <ClCompile Include="components\memberlist.cpp" />
- <ClCompile Include="dialogs\editmessage.cpp" />
- <ClCompile Include="dialogs\token.cpp" />
- <ClCompile Include="discord\discord.cpp" />
- <ClCompile Include="discord\http.cpp" />
- <ClCompile Include="discord\objects.cpp" />
- <ClCompile Include="discord\store.cpp" />
- <ClCompile Include="discord\websocket.cpp" />
- <ClCompile Include="settings.cpp" />
- <ClCompile Include="windows\mainwindow.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="components\channels.hpp" />
- <ClInclude Include="abaddon.hpp" />
- <ClInclude Include="components\chatmessage.hpp" />
- <ClInclude Include="components\chatwindow.hpp" />
- <ClInclude Include="components\memberlist.hpp" />
- <ClInclude Include="dialogs\editmessage.hpp" />
- <ClInclude Include="dialogs\token.hpp" />
- <ClInclude Include="discord\discord.hpp" />
- <ClInclude Include="discord\http.hpp" />
- <ClInclude Include="discord\objects.hpp" />
- <ClInclude Include="discord\store.hpp" />
- <ClInclude Include="discord\websocket.hpp" />
- <ClInclude Include="settings.hpp" />
- <ClInclude Include="util.hpp" />
- <ClInclude Include="windows\mainwindow.hpp" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/Abaddon.vcxproj.filters b/Abaddon.vcxproj.filters
deleted file mode 100644
index 917577c..0000000
--- a/Abaddon.vcxproj.filters
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;c++;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="abaddon.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="windows\mainwindow.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="components\channels.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="discord\websocket.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="discord\discord.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="settings.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="dialogs\token.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="discord\http.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="components\chatwindow.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="components\memberlist.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="components\chatmessage.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="discord\objects.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="dialogs\editmessage.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- <ClCompile Include="discord\store.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="windows\mainwindow.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="components\channels.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="discord\discord.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="discord\websocket.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="abaddon.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="settings.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="dialogs\token.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="discord\http.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="components\chatwindow.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="components\memberlist.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="components\chatmessage.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="discord\objects.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="dialogs\editmessage.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="util.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="discord\store.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..7ebdc02
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,159 @@
+cmake_minimum_required(VERSION 3.16)
+
+project(abaddon)
+
+set(CMAKE_CXX_STANDARD 17)
+
+option(USE_PKGCONFIG "Use pkg-config" OFF)
+option(DISABLE_MBEDTLS "Disable mbedtls" OFF)
+
+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_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_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})
+
+ set(USE_TLS TRUE)
+ set(USE_OPEN_SSL TRUE)
+ add_subdirectory(thirdparty/IXWebSocket)
+ include_directories("thirdparty/IXWebSocket")
+ link_libraries(ixwebsocket)
+
+ include_directories("thirdparty/simpleini")
+endif()
+
+if(mingw)
+ link_libraries(ws2_32 wsock2)
+endif()
+
+add_executable(abaddon
+ abaddon.hpp
+ util.hpp
+ settings.hpp
+ settings.cpp
+ abaddon.cpp
+ components/channels.hpp
+ components/channels.cpp
+ components/chatmessage.hpp
+ components/chatmessage.cpp
+ components/chatwindow.hpp
+ components/chatwindow.cpp
+ components/memberlist.hpp
+ components/memberlist.cpp
+ dialogs/editmessage.hpp
+ dialogs/editmessage.cpp
+ dialogs/token.hpp
+ dialogs/token.cpp
+ discord/discord.hpp
+ discord/discord.cpp
+ discord/http.hpp
+ discord/http.cpp
+ discord/objects.hpp
+ discord/objects.cpp
+ discord/store.hpp
+ discord/store.cpp
+ discord/websocket.hpp
+ discord/websocket.cpp
+ windows/mainwindow.hpp
+ windows/mainwindow.cpp
+)
+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})
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..ce74bab
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,51 @@
+version: '{branch}-{build}'
+configuration: RelWithDebInfo
+
+branches:
+ only:
+ - cmake
+
+environment:
+ APPVEYOR_SAVE_CACHE_ON_ERROR: true
+ AWS_ACCESS_KEY:
+ secure: tKX1t+B688FTnQihwAuDRAdHScCQtKpbIqHdvE1Ei/k=
+ AWS_SECRET_KEY:
+ secure: 3MTsVgpfoO5Jcs4Dl7WPKMPxNC0WC3ffOhIxRWdsU+8N7FEzKO53SbdjjkvgIcrI
+ AWS_BUCKET: pogger-space
+ AWS_ENDPOINT: nyc3.digitaloceanspaces.com
+ AWS_REGION: nyc3
+ APPVEYOR_RDP_PASSWORD:
+ secure: bAN2gK+THkzXNApDmTf05lfQDDq8s4itTyl7faCcanw=
+ matrix:
+ - job_name: Windows
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
+
+for:
+ - matrix:
+ only:
+ - job_name: Windows
+
+ cache:
+ - c:\tools\vcpkg\installed
+
+ install:
+ - cmd: |
+ vcpkg install gtkmm:x64-windows nlohmann-json:x64-windows ixwebsocket:x64-windows cpr:x64-windows zlib:x64-windows simpleini:x64-windows
+
+ cd c:\projects\abaddon
+ mkdir build && cd build
+ cmake -G"Visual Studio 16 2019" -A x64 -DCMAKE_TOOLCHAIN_FILE=c:\tools\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DVCPKG_TARGET_TRIPLET=x64-windows ..
+ cd ..
+
+ build:
+ project: c:\projects\abaddon
+ parallel: true
+
+ after_build:
+ - cmd: |
+ xcopy /E /I %APPVEYOR_BUILD_FOLDER%\css "%APPVEYOR_BUILD_FOLDER%\build\%CONFIGURATION%\css\"
+ 7z a %APPVEYOR_BUILD_FOLDER%\out\abaddon.zip "%APPVEYOR_BUILD_FOLDER%\build\%CONFIGURATION%"
+
+ artifacts:
+ - path: out\abaddon.zip
+ name: Abaddon
diff --git a/thirdparty/IXWebSocket b/thirdparty/IXWebSocket
new file mode 160000
+Subproject b74f7319c61fb02cd7710e6cba37155db037e1f
diff --git a/thirdparty/simpleini b/thirdparty/simpleini
new file mode 160000
+Subproject 7bca74f6535a37846162383e52071f380c99a43