Commit a82c5f1e authored by Martin Häcker's avatar Martin Häcker
Browse files

craftos-pc: fix the build against poco-1.14

Upstream seems to have errors, where it doesn't
include all the poco headers it requires for it
to build. I've provided a patch and
opened a pull request upstream to get it
merged: https://github.com/MCJack123/craftos2/issues/391
parent dbe57975
Loading
Loading
Loading
Loading
+37 −0
Original line number Diff line number Diff line
diff --git a/src/configuration.cpp b/src/configuration.cpp
index 2196121..0c5cf27 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -11,6 +11,7 @@
 #include <fstream>
 #include <unordered_map>
 #include <configuration.hpp>
+#include <Poco/JSON/JSONException.h>
 #include "platform.hpp"
 #include "runtime.hpp"
 #include "terminal/SDLTerminal.hpp"
diff --git a/src/main.cpp b/src/main.cpp
index 9ab0814..38976a2 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -34,6 +34,7 @@ static void* releaseNotesThread(void* data);
 #include <Poco/URI.h>
 #include <Poco/Checksum.h>
 #include <Poco/JSON/Parser.h>
+#include <Poco/JSON/JSONException.h>
 #ifndef __EMSCRIPTEN__
 #include <Poco/Net/HTTPSClientSession.h>
 #include <Poco/Net/HTTPRequest.h>
diff --git a/src/util.hpp b/src/util.hpp
index b8ab2d1..c643b96 100644
--- a/src/util.hpp
+++ b/src/util.hpp
@@ -21,6 +21,8 @@ extern "C" {
 #include <string>
 #include <vector>
 #include <Poco/JSON/JSON.h>
+#include <Poco/JSON/Object.h>
+#include <Poco/JSON/Array.h>
 #include <Poco/JSON/Parser.h>
 #include <Poco/Net/HTTPResponse.h>
 #include <Computer.hpp>
+43 −18
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchFromGitHub
, callPackage
, patchelf
, unzip
, poco
, openssl
, SDL2
, SDL2_mixer
, ncurses
, libpng
, pngpp
, libwebp
{
  lib,
  stdenv,
  fetchFromGitHub,
  callPackage,
  patchelf,
  unzip,
  poco,
  openssl,
  SDL2,
  SDL2_mixer,
  ncurses,
  libpng,
  pngpp,
  libwebp,
}:

let
@@ -41,8 +42,20 @@ stdenv.mkDerivation rec {
    hash = "sha256-DbxAsXxpsa42dF6DaLmgIa+Hs/PPqJ4dE97PoKxG2Ig=";
  };

  nativeBuildInputs = [ patchelf unzip ];
  buildInputs = [ poco openssl SDL2 SDL2_mixer ncurses libpng pngpp libwebp ];
  nativeBuildInputs = [
    patchelf
    unzip
  ];
  buildInputs = [
    poco
    openssl
    SDL2
    SDL2_mixer
    ncurses
    libpng
    pngpp
    libwebp
  ];
  strictDeps = true;

  preBuild = ''
@@ -57,6 +70,12 @@ stdenv.mkDerivation rec {
    runHook postBuild
  '';

  patches = [
    # fix includes of poco headers
    # https://github.com/MCJack123/craftos2/issues/391
    ./fix-poco-header-includes.patch
  ];

  dontStrip = true;

  installPhase = ''
@@ -87,9 +106,15 @@ stdenv.mkDerivation rec {
  meta = with lib; {
    description = "Implementation of the CraftOS-PC API written in C++ using SDL";
    homepage = "https://www.craftos-pc.cc";
    license = with licenses; [ mit free ];
    license = with licenses; [
      mit
      free
    ];
    platforms = platforms.linux;
    maintainers = with maintainers; [ siraben tomodachi94 ];
    maintainers = with maintainers; [
      siraben
      tomodachi94
    ];
    mainProgram = "craftos";
  };
}