commit:     81e3ca3b7c131e8345aede89e3bbcd700e1ad567
Author:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 14 20:44:58 2022 +0000
Commit:     Piotr Karbowski <slashbeast <AT> gentoo <DOT> org>
CommitDate: Thu Jul 14 20:45:26 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81e3ca3b

media-gfx/superslicer: new package.

Signed-off-by: Piotr Karbowski <slashbeast <AT> gentoo.org>

 media-gfx/superslicer/Manifest                     |   1 +
 ...perslicer-2.4.58.3-AppConfig-include-I18N.patch |  12 +
 ....3-CreateMMUTiledCanvas-include-wx-rawbmp.patch |  12 +
 .../superslicer-2.4.58.3-boost-1.79-port-v2.patch  | 244 +++++++++++++++++++++
 .../files/superslicer-2.4.58.3-cereal.patch        |  70 ++++++
 .../files/superslicer-2.4.58.3-openexr3.patch      |  77 +++++++
 .../superslicer-2.4.58.3-wxgtk3-wayland.patch      |  21 ++
 media-gfx/superslicer/metadata.xml                 |  12 +
 media-gfx/superslicer/superslicer-2.4.58.3.ebuild  |  88 ++++++++
 9 files changed, 537 insertions(+)

diff --git a/media-gfx/superslicer/Manifest b/media-gfx/superslicer/Manifest
new file mode 100644
index 000000000000..fabb29b27e6a
--- /dev/null
+++ b/media-gfx/superslicer/Manifest
@@ -0,0 +1 @@
+DIST superslicer-2.4.58.3.tar.gz 45203382 BLAKE2B 
822af2a1cb8978b21f8efdc0eb4841ec1d86517fd07782a8dfa6be2a58514dc3e772221dca40ff62808cb798fc4f51484b24e847328a7a6f154708431f0c4d3b
 SHA512 
00302fba9ada1cc5df3c58f42fdb7f98322f94de7b78876c6a54a2229ae289e785082ea7a69f67bee54321fc4d97811675eeb70932e5774ab78ca8859343dd4d

diff --git 
a/media-gfx/superslicer/files/superslicer-2.4.58.3-AppConfig-include-I18N.patch 
b/media-gfx/superslicer/files/superslicer-2.4.58.3-AppConfig-include-I18N.patch
new file mode 100644
index 000000000000..c5e7398e5bdd
--- /dev/null
+++ 
b/media-gfx/superslicer/files/superslicer-2.4.58.3-AppConfig-include-I18N.patch
@@ -0,0 +1,12 @@
+diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
+index 59910e6..c35986c 100644
+--- a/src/libslic3r/AppConfig.cpp
++++ b/src/libslic3r/AppConfig.cpp
+@@ -1,6 +1,7 @@
+ #include <boost/filesystem.hpp>
+ #include "libslic3r/libslic3r.h"
+ #include "libslic3r/Utils.hpp"
++#include "libslic3r/I18N.hpp"
+ #include "AppConfig.hpp"
+ #include "Exception.hpp"
+ #include "LocalesUtils.hpp"

diff --git 
a/media-gfx/superslicer/files/superslicer-2.4.58.3-CreateMMUTiledCanvas-include-wx-rawbmp.patch
 
b/media-gfx/superslicer/files/superslicer-2.4.58.3-CreateMMUTiledCanvas-include-wx-rawbmp.patch
new file mode 100644
index 000000000000..c2e3a3ef8f39
--- /dev/null
+++ 
b/media-gfx/superslicer/files/superslicer-2.4.58.3-CreateMMUTiledCanvas-include-wx-rawbmp.patch
@@ -0,0 +1,12 @@
+diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp 
b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+index be157ea..d63eb11 100644
+--- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
++++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+@@ -40,6 +40,7 @@
+ #include <wx/odcombo.h>
+ #include <wx/textctrl.h>
+ #include <wx/wrapsizer.h>
++#include <wx/rawbmp.h>
+ #include "wxExtensions.hpp"
+ 
+ #include <boost/filesystem/path.hpp>

diff --git 
a/media-gfx/superslicer/files/superslicer-2.4.58.3-boost-1.79-port-v2.patch 
b/media-gfx/superslicer/files/superslicer-2.4.58.3-boost-1.79-port-v2.patch
new file mode 100644
index 000000000000..0c1f31a95b72
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.4.58.3-boost-1.79-port-v2.patch
@@ -0,0 +1,244 @@
+diff --git a/src/hints/HintsToPot.cpp b/src/hints/HintsToPot.cpp
+index 7c8029c..4791f06 100644
+--- a/src/hints/HintsToPot.cpp
++++ b/src/hints/HintsToPot.cpp
+@@ -9,7 +9,7 @@
+ 
+ bool write_to_pot(boost::filesystem::path path, const 
std::vector<std::pair<std::string, std::string>>& data)
+ {
+-      boost::filesystem::ofstream file(std::move(path), std::ios_base::app);
++      boost::nowide::ofstream file(path.string(), std::ios_base::app);
+       for (const auto& element : data)
+       {
+               //Example of .pot element 
+diff --git a/src/libslic3r/AppConfig.cpp b/src/libslic3r/AppConfig.cpp
+index 39b590e..b2a8dce 100644
+--- a/src/libslic3r/AppConfig.cpp
++++ b/src/libslic3r/AppConfig.cpp
+@@ -1,3 +1,4 @@
++#include <boost/filesystem.hpp>
+ #include "libslic3r/libslic3r.h"
+ #include "libslic3r/Utils.hpp"
+ #include "AppConfig.hpp"
+diff --git a/src/libslic3r/AppConfig.hpp b/src/libslic3r/AppConfig.hpp
+index d811ddc..1a70230 100644
+--- a/src/libslic3r/AppConfig.hpp
++++ b/src/libslic3r/AppConfig.hpp
+@@ -5,6 +5,7 @@
+ #include <map>
+ #include <string>
+ 
++#include <boost/filesystem/path.hpp>
+ #include <boost/algorithm/string/trim_all.hpp>
+ 
+ #include "libslic3r/Config.hpp"
+diff --git a/src/libslic3r/LocalesUtils.cpp b/src/libslic3r/LocalesUtils.cpp
+index 5bf5205..7b87052 100644
+--- a/src/libslic3r/LocalesUtils.cpp
++++ b/src/libslic3r/LocalesUtils.cpp
+@@ -1,3 +1,4 @@
++#include <boost/lexical_cast.hpp>
+ #include "LocalesUtils.hpp"
+ 
+ #ifdef _WIN32
+diff --git a/src/libslic3r/Preset.cpp b/src/libslic3r/Preset.cpp
+index aa33fb6..277a4b4 100644
+--- a/src/libslic3r/Preset.cpp
++++ b/src/libslic3r/Preset.cpp
+@@ -84,7 +84,7 @@ ConfigFileType guess_config_file_type(const ptree &tree)
+ VendorProfile VendorProfile::from_ini(const boost::filesystem::path &path, 
bool load_all)
+ {
+     ptree tree;
+-    boost::filesystem::ifstream ifs(path);
++    boost::nowide::ifstream ifs(path.string());
+     boost::property_tree::read_ini(ifs, tree);
+     return VendorProfile::from_ini(tree, path, load_all);
+ }
+diff --git a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp 
b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+index 89212f2..be157ea 100644
+--- a/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
++++ b/src/slic3r/GUI/CreateMMUTiledCanvas.cpp
+@@ -18,6 +18,11 @@
+ #include <wx/notebook.h>
+ #include "Notebook.hpp"
+ 
++#include <boost/filesystem.hpp>
++#include <boost/property_tree/ptree.hpp>
++#include <boost/property_tree/ini_parser.hpp>
++#include <boost/log/trivial.hpp>
++
+ #include "MainFrame.hpp"
+ #include "wxExtensions.hpp"
+ 
+diff --git a/src/slic3r/GUI/DesktopIntegrationDialog.cpp 
b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
+index fcb7472..866ebae 100644
+--- a/src/slic3r/GUI/DesktopIntegrationDialog.cpp
++++ b/src/slic3r/GUI/DesktopIntegrationDialog.cpp
+@@ -14,6 +14,7 @@
+ #include <boost/log/trivial.hpp>
+ #include <boost/dll/runtime_symbol_info.hpp>
+ #include <boost/algorithm/string/replace.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <wx/filename.h>
+ #include <wx/stattext.h>
+@@ -503,4 +504,4 @@ DesktopIntegrationDialog::~DesktopIntegrationDialog()
+ 
+ } // namespace GUI
+ } // namespace Slic3r
+-#endif // __linux__
+\ No newline at end of file
++#endif // __linux__
+diff --git a/src/slic3r/GUI/FreeCADDialog.cpp 
b/src/slic3r/GUI/FreeCADDialog.cpp
+index ea7142c..1d75ba7 100644
+--- a/src/slic3r/GUI/FreeCADDialog.cpp
++++ b/src/slic3r/GUI/FreeCADDialog.cpp
+@@ -38,6 +38,7 @@
+ #include <boost/log/trivial.hpp>
+ #include <boost/property_tree/ptree.hpp>
+ #include <boost/property_tree/json_parser.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ // hack for process.hpp : it uses pid_t to set it as alias of int, but 
vc_x64_lib (wx thingy) as a '#define pid_t int'
+ // and so boost/process has a line 'typedef int int'instead of 'typedef int 
pid_t' that makes it crash
+@@ -321,7 +322,7 @@ bool FreeCADDialog::load_text_from_file(const 
boost::filesystem::path &path) {
+         try {
+             std::locale loc = boost::locale::generator()("en_US.UTF-8");
+             // Open the stream to 'lock' the file.
+-            boost::filesystem::ifstream in;
++            boost::nowide::ifstream in;
+             in.imbue(loc);
+             in.open(path);
+             // Obtain the size of the file.
+@@ -368,7 +369,7 @@ bool FreeCADDialog::write_text_in_file(const wxString 
&towrite, const boost::fil
+         boost::filesystem::create_directories(file.parent_path());
+         std::locale loc = boost::locale::generator()("en_US.UTF-8");
+         // Open the stream to 'lock' the file.
+-        boost::filesystem::ofstream out;
++        boost::nowide::ofstream out;
+         out.imbue(loc);
+         out.open(file);
+         out << towrite;
+diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
+index 7851030..4cdd242 100644
+--- a/src/slic3r/GUI/GUI_App.cpp
++++ b/src/slic3r/GUI/GUI_App.cpp
+@@ -19,6 +19,7 @@
+ #include <boost/lexical_cast.hpp>
+ #include <boost/log/trivial.hpp>
+ #include <boost/nowide/convert.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <wx/stdpaths.h>
+ #include <wx/imagpng.h>
+diff --git a/src/slic3r/GUI/HintNotification.cpp 
b/src/slic3r/GUI/HintNotification.cpp
+index 3291630..3a984bf 100644
+--- a/src/slic3r/GUI/HintNotification.cpp
++++ b/src/slic3r/GUI/HintNotification.cpp
+@@ -14,12 +14,14 @@
+ #include "libslic3r/Config.hpp"
+ #include "libslic3r/PrintConfig.hpp"
+ 
++#include <map>
++
+ #include <boost/algorithm/string/replace.hpp>
+ #include <boost/filesystem.hpp>
+ #include <boost/nowide/fstream.hpp>
+ #include <boost/log/trivial.hpp>
+ #include <boost/property_tree/ini_parser.hpp>
+-#include <map>
++
+ #include <cereal/archives/binary.hpp>
+ #include <cereal/types/string.hpp>
+ #include <cereal/types/vector.hpp>
+@@ -65,7 +67,7 @@ inline void push_style_color(ImGuiCol idx, const ImVec4& 
col, bool fading_out, f
+ 
+ void write_used_binary(const std::vector<std::string>& ids)
+ {
+-      boost::filesystem::ofstream file((boost::filesystem::path(data_dir()) / 
"cache" / "hints.cereal"), std::ios::binary);
++      boost::nowide::ofstream file((boost::filesystem::path(data_dir()) / 
"cache" / "hints.cereal").string(), std::ios::binary);
+       cereal::BinaryOutputArchive archive(file);
+               HintsCerealData cd { ids };
+       try
+@@ -84,7 +86,7 @@ void read_used_binary(std::vector<std::string>& ids)
+               BOOST_LOG_TRIVIAL(warning) << "Failed to load to hints.cereal. 
File does not exists. " << path.string();
+               return;
+       }
+-      boost::filesystem::ifstream file(path);
++      boost::nowide::ifstream file(path.string());
+       cereal::BinaryInputArchive archive(file);
+       HintsCerealData cd;
+       try
+diff --git a/src/slic3r/GUI/Preferences.cpp b/src/slic3r/GUI/Preferences.cpp
+index 523e52c..bd07f02 100644
+--- a/src/slic3r/GUI/Preferences.cpp
++++ b/src/slic3r/GUI/Preferences.cpp
+@@ -12,6 +12,7 @@
+ #include "OG_CustomCtrl.hpp"
+ #include "wxExtensions.hpp"
+ 
++#include <boost/algorithm/string/split.hpp>
+ #include <boost/filesystem.hpp>
+ #include <boost/filesystem/path.hpp>
+ 
+diff --git a/src/slic3r/GUI/ScriptExecutor.cpp 
b/src/slic3r/GUI/ScriptExecutor.cpp
+index 5a4a1e2..672bdfa 100644
+--- a/src/slic3r/GUI/ScriptExecutor.cpp
++++ b/src/slic3r/GUI/ScriptExecutor.cpp
+@@ -4,6 +4,13 @@
+ #include "Tab.hpp"
+ #include "libslic3r/PresetBundle.hpp"
+ #include "libslic3r/Print.hpp"
++#include <boost/log/trivial.hpp>
++#include <boost/lexical_cast.hpp>
++#include <boost/algorithm/string/trim_all.hpp>
++#include <boost/algorithm/string/erase.hpp>
++#include <boost/algorithm/string/split.hpp>
++#include <boost/filesystem.hpp>
++#include <boost/filesystem/string_file.hpp>
+ 
+ #include <string>
+ 
+diff --git a/src/slic3r/GUI/Tab.cpp b/src/slic3r/GUI/Tab.cpp
+index 13a4ac0..eb63f2a 100644
+--- a/src/slic3r/GUI/Tab.cpp
++++ b/src/slic3r/GUI/Tab.cpp
+@@ -36,6 +36,8 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/filesystem/path.hpp>
+ #include <boost/lexical_cast.hpp>
++#include <boost/nowide/fstream.hpp>
++#include <boost/log/trivial.hpp>
+ 
+ #include "wxExtensions.hpp"
+ #include "PresetComboBoxes.hpp"
+@@ -1692,7 +1694,7 @@ std::vector<Slic3r::GUI::PageShp> 
Tab::create_pages(std::string setting_type_nam
+ 
+     //read file
+     //std::ifstream filestream(ui_layout_file.c_str());
+-    boost::filesystem::ifstream filestream(ui_layout_file);
++    boost::nowide::ifstream filestream(ui_layout_file);
+     std::string full_line;
+     while (std::getline(filestream, full_line)) {
+         //remove spaces
+diff --git a/src/slic3r/Utils/Http.cpp b/src/slic3r/Utils/Http.cpp
+index 5fbe94e..b760559 100644
+--- a/src/slic3r/Utils/Http.cpp
++++ b/src/slic3r/Utils/Http.cpp
+@@ -11,6 +11,7 @@
+ #include <boost/filesystem.hpp>
+ #include <boost/format.hpp>
+ #include <boost/log/trivial.hpp>
++#include <boost/nowide/fstream.hpp>
+ 
+ #include <curl/curl.h>
+ 
+@@ -52,7 +53,7 @@ namespace Slic3r {
+                                               % error;
+                       })
+                       .on_complete([&](std::string body, unsigned /* 
http_status */) {
+-                              boost::filesystem::fstream file(tmp_path, 
std::ios::out | std::ios::binary | std::ios::trunc);
++                              boost::nowide::fstream file(tmp_path, 
std::ios::out | std::ios::binary | std::ios::trunc);
+                               file.write(body.c_str(), body.size());
+                               file.close();
+                               boost::filesystem::rename(tmp_path, 
target_path);

diff --git a/media-gfx/superslicer/files/superslicer-2.4.58.3-cereal.patch 
b/media-gfx/superslicer/files/superslicer-2.4.58.3-cereal.patch
new file mode 100644
index 000000000000..7b3e179a05f5
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.4.58.3-cereal.patch
@@ -0,0 +1,70 @@
+diff --git a/cmake/modules/Findcereal.cmake b/cmake/modules/Findcereal.cmake
+deleted file mode 100644
+index b482975..0000000
+--- a/cmake/modules/Findcereal.cmake
++++ /dev/null
+@@ -1,26 +0,0 @@
+-set(_q "")
+-if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
+-    set(_q QUIET)
+-    set(_quietly TRUE)
+-endif()
+-find_package(${CMAKE_FIND_PACKAGE_NAME} 
${${CMAKE_FIND_PACKAGE_NAME}_FIND_VERSION} CONFIG ${_q})
+-
+-if (NOT ${CMAKE_FIND_PACKAGE_NAME}_FOUND)
+-    # Fall-back solution to find the Cereal serialization library header file
+-    include(CheckIncludeFileCXX)
+-    add_library(cereal INTERFACE)
+-    target_include_directories(cereal INTERFACE include)
+-
+-    if (_quietly)
+-        set(CMAKE_REQUIRED_QUIET ON)
+-    endif()
+-    CHECK_INCLUDE_FILE_CXX("cereal/cereal.hpp" HAVE_CEREAL_H)
+-
+-    if (NOT HAVE_CEREAL_H)
+-        if (${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED)
+-            message(FATAL_ERROR "Cereal library not found. Please install the 
dependency.")
+-        elseif(NOT _quietly)
+-            message(WARNING "Cereal library not found.")
+-        endif()
+-    endif ()
+-endif()
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index ec44417..aab1348 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -141,7 +141,7 @@ if (NOT WIN32)
+     set_target_properties(Slic3r PROPERTIES OUTPUT_NAME "${SLIC3R_APP_CMD}")
+ endif ()
+ 
+-target_link_libraries(Slic3r libslic3r cereal)
++target_link_libraries(Slic3r libslic3r)
+ if (APPLE)
+ #    add_compile_options(-stdlib=libc++)
+ #    add_definitions(-DBOOST_THREAD_DONT_USE_CHRONO 
-DBOOST_NO_CXX11_RVALUE_REFERENCES -DBOOST_THREAD_USES_MOVE)
+diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
+index 21aab3b..8c6b705 100644
+--- a/src/libslic3r/CMakeLists.txt
++++ b/src/libslic3r/CMakeLists.txt
+@@ -358,7 +358,6 @@ target_include_directories(libslic3r PUBLIC 
${EXPAT_INCLUDE_DIRS})
+ target_link_libraries(libslic3r
+     libnest2d
+     admesh
+-    cereal
+     libigl
+     miniz
+     boost_libs
+diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
+index 3f231ef..ffd9a3f 100644
+--- a/src/slic3r/CMakeLists.txt
++++ b/src/slic3r/CMakeLists.txt
+@@ -293,7 +293,7 @@ target_compile_definitions(libslic3r_gui PRIVATE 
$<$<BOOL:${SLIC3R_ALPHA}>:SLIC3
+ 
+ encoding_check(libslic3r_gui)
+ 
+-target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui GLEW::GLEW 
OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES})
++target_link_libraries(libslic3r_gui libslic3r avrdude imgui GLEW::GLEW 
OpenGL::GL hidapi exif angelscript libcurl ${wxWidgets_LIBRARIES})
+ 
+ if (MSVC)
+     target_link_libraries(libslic3r_gui Setupapi.lib)

diff --git a/media-gfx/superslicer/files/superslicer-2.4.58.3-openexr3.patch 
b/media-gfx/superslicer/files/superslicer-2.4.58.3-openexr3.patch
new file mode 100644
index 000000000000..7bd04e6fad10
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.4.58.3-openexr3.patch
@@ -0,0 +1,77 @@
+diff --git a/cmake/modules/FindOpenVDB.cmake b/cmake/modules/FindOpenVDB.cmake
+index 4fde5fa..566e73a 100644
+--- a/cmake/modules/FindOpenVDB.cmake
++++ b/cmake/modules/FindOpenVDB.cmake
+@@ -347,28 +347,10 @@ macro(just_fail msg)
+   return()
+ endmacro()
+ 
+-find_package(IlmBase QUIET)
+-if(NOT IlmBase_FOUND)
+-  pkg_check_modules(IlmBase QUIET IlmBase)
+-endif()
+-if (IlmBase_FOUND AND NOT TARGET IlmBase::Half)
+-  message(STATUS "Falling back to IlmBase found by pkg-config...")
+-
+-  find_library(IlmHalf_LIBRARY NAMES Half)
+-  if(IlmHalf_LIBRARY-NOTFOUND OR NOT IlmBase_INCLUDE_DIRS)
+-    just_fail("IlmBase::Half can not be found!")
+-  endif()
+-  
+-  add_library(IlmBase::Half UNKNOWN IMPORTED)
+-  set_target_properties(IlmBase::Half PROPERTIES
+-    IMPORTED_LOCATION "${IlmHalf_LIBRARY}"
+-    INTERFACE_INCLUDE_DIRECTORIES "${IlmBase_INCLUDE_DIRS}")
+-elseif(NOT IlmBase_FOUND)
+-  just_fail("IlmBase::Half can not be found!")
+-endif()
+ find_package(TBB ${_quiet} ${_required} COMPONENTS tbb)
+ find_package(ZLIB ${_quiet} ${_required})
+ find_package(Boost ${_quiet} ${_required} COMPONENTS iostreams system )
++find_package(Imath CONFIG)
+ 
+ # Use GetPrerequisites to see which libraries this OpenVDB lib has linked to
+ # which we can query for optional deps. This basically runs ldd/otoll/objdump
+@@ -419,7 +401,7 @@ foreach(PREREQUISITE ${_OPENVDB_PREREQUISITE_LIST})
+     set(OpenVDB_USES_LOG4CPLUS ON)
+   endif()
+ 
+-  string(FIND ${PREREQUISITE} "IlmImf" _HAS_DEP)
++  string(FIND ${PREREQUISITE} "OpenEXR" _HAS_DEP)
+   if(NOT ${_HAS_DEP} EQUAL -1)
+     set(OpenVDB_USES_ILM ON)
+   endif()
+@@ -450,11 +432,7 @@ if(OpenVDB_USES_LOG4CPLUS)
+   find_package(Log4cplus ${_quiet} ${_required})
+ endif()
+ 
+-if(OpenVDB_USES_ILM)
+-  find_package(IlmBase ${_quiet} ${_required})
+-endif()
+-
+-if(OpenVDB_USES_EXR)
++if(OpenVDB_USES_ILM OR OpenVDB_USES_EXR)
+   find_package(OpenEXR ${_quiet} ${_required})
+ endif()
+ 
+@@ -471,7 +449,7 @@ endif()
+ set(_OPENVDB_VISIBLE_DEPENDENCIES
+   Boost::iostreams
+   Boost::system
+-  IlmBase::Half
++  Imath::Imath
+ )
+ 
+ set(_OPENVDB_DEFINITIONS)
+@@ -481,10 +459,7 @@ endif()
+ 
+ if(OpenVDB_USES_EXR)
+   list(APPEND _OPENVDB_VISIBLE_DEPENDENCIES
+-    IlmBase::IlmThread
+-    IlmBase::Iex
+-    IlmBase::Imath
+-    OpenEXR::IlmImf
++    OpenEXR::OpenEXR
+   )
+   list(APPEND _OPENVDB_DEFINITIONS "-DOPENVDB_TOOLS_RAYTRACER_USE_EXR")
+ endif()

diff --git 
a/media-gfx/superslicer/files/superslicer-2.4.58.3-wxgtk3-wayland.patch 
b/media-gfx/superslicer/files/superslicer-2.4.58.3-wxgtk3-wayland.patch
new file mode 100644
index 000000000000..5f6eb58740ae
--- /dev/null
+++ b/media-gfx/superslicer/files/superslicer-2.4.58.3-wxgtk3-wayland.patch
@@ -0,0 +1,21 @@
+diff --git a/src/slic3r/GUI/GUI.cpp b/src/slic3r/GUI/GUI.cpp
+index 330869f..70c472c 100644
+--- a/src/slic3r/GUI/GUI.cpp
++++ b/src/slic3r/GUI/GUI.cpp
+@@ -33,6 +33,16 @@ class AppConfig;
+ 
+ namespace GUI {
+ 
++// wxgtk3 is broken on wayland: https://trac.wxwidgets.org/ticket/17702
++#ifdef __WXGTK3__
++struct ForceX11 {
++    ForceX11() {
++        setenv("GDK_BACKEND", "x11", 1);
++    }
++};
++static struct ForceX11 forcex11;
++#endif
++
+ #if __APPLE__
+ IOPMAssertionID assertionID;
+ #endif

diff --git a/media-gfx/superslicer/metadata.xml 
b/media-gfx/superslicer/metadata.xml
new file mode 100644
index 000000000000..7093e633ab17
--- /dev/null
+++ b/media-gfx/superslicer/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="project">
+               <email>3dpr...@gentoo.org</email>
+               <name>Gentoo 3D Printer Project</name>
+       </maintainer>
+       <upstream>
+               <bugs-to>https://github.com/supermerill/SuperSlicer</bugs-to>
+               <remote-id type="github">supermerill/SuperSlicer</remote-id>
+       </upstream>
+</pkgmetadata>

diff --git a/media-gfx/superslicer/superslicer-2.4.58.3.ebuild 
b/media-gfx/superslicer/superslicer-2.4.58.3.ebuild
new file mode 100644
index 000000000000..d12285792499
--- /dev/null
+++ b/media-gfx/superslicer/superslicer-2.4.58.3.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.0-gtk3"
+MY_PN="SuperSlicer"
+
+inherit cmake wxwidgets xdg
+
+DESCRIPTION="A mesh slicer to generate G-code for fused-filament-fabrication 
(3D printers)"
+HOMEPAGE="https://github.com/supermerill/SuperSlicer/";
+SRC_URI="https://github.com/supermerill/SuperSlicer/archive/refs/tags/${PV}.tar.gz
 -> ${P}.tar.gz"
+
+LICENSE="AGPL-3 Boost-1.0 GPL-2 LGPL-3 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RESTRICT="test"
+
+# No dep on sci-libs/libigl, in-tree version cannot build 
+# static library currently. Using bundled one.
+RDEPEND="
+       dev-cpp/eigen:3
+       dev-cpp/tbb:=
+       >=dev-libs/boost-1.73.0:=[nls,threads(+)]
+       dev-libs/cereal
+       dev-libs/expat
+       dev-libs/glib:2
+       dev-libs/gmp:=
+       dev-libs/mpfr:=
+       dev-libs/imath:=
+       >=media-gfx/openvdb-8.2:=
+       net-misc/curl[adns]
+       media-libs/glew:0=
+       media-libs/libpng:0=
+       media-libs/qhull:=
+       sci-libs/nlopt
+       >=sci-mathematics/cgal-5.0:=
+       sys-apps/dbus
+       sys-libs/zlib:=
+       virtual/glu
+       virtual/opengl
+       x11-libs/gtk+:3
+       x11-libs/wxGTK:${WX_GTK_VER}[X,opengl]
+"
+DEPEND="${RDEPEND}
+       media-libs/qhull[static-libs]
+"
+
+PATCHES=(
+       "${FILESDIR}/${P}-boost-1.79-port-v2.patch"
+       "${FILESDIR}/${P}-CreateMMUTiledCanvas-include-wx-rawbmp.patch"
+       "${FILESDIR}/${P}-AppConfig-include-I18N.patch"
+       "${FILESDIR}/${P}-cereal.patch"
+       "${FILESDIR}/${P}-openexr3.patch"
+       "${FILESDIR}/${P}-wxgtk3-wayland.patch"
+)
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+src_configure() {
+       CMAKE_BUILD_TYPE="Release"
+
+       setup-wxwidgets
+
+       local mycmakeargs=(
+               -DOPENVDB_FIND_MODULE_PATH="/usr/$(get_libdir)/cmake/OpenVDB"
+
+               -DSLIC3R_BUILD_TESTS=$(usex test)
+               -DSLIC3R_FHS=ON
+               -DSLIC3R_GTK=3
+               -DSLIC3R_GUI=ON
+               -DSLIC3R_PCH=OFF
+               -DSLIC3R_STATIC=OFF
+               -DSLIC3R_WX_STABLE=ON
+               -Wno-dev
+       )
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       rm "${ED}/usr/lib/udev/rules.d/90-3dconnexion.rules" || die
+}

Reply via email to