aboutsummaryrefslogtreecommitdiff
path: root/graphics/appleseed
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2021-03-14 09:02:35 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2021-03-14 09:02:35 +0000
commitc192f781677c174580925a58a119995db2387186 (patch)
treea227dca50d861fb41508154466a5795f71f621db /graphics/appleseed
parent1ac61e52d9f6095130bcff427608149ff67ba89e (diff)
downloadports-c192f781677c174580925a58a119995db2387186.tar.gz
ports-c192f781677c174580925a58a119995db2387186.zip
- Switch appleseed.studio build to Python 3.x and enable by default
- Register missing dependency on the `graphics/opencolorio' port
Notes
Notes: svn path=/head/; revision=568372
Diffstat (limited to 'graphics/appleseed')
-rw-r--r--graphics/appleseed/Makefile19
-rw-r--r--graphics/appleseed/files/patch-CMakeLists.txt11
-rw-r--r--graphics/appleseed/files/patch-src_appleseed.studio_CMakeLists.txt62
-rw-r--r--graphics/appleseed/files/patch-src_appleseed.studio_main_main.cpp44
-rw-r--r--graphics/appleseed/files/patch-src_appleseed.studio_mainwindow_mainwindow.cpp29
-rw-r--r--graphics/appleseed/files/patch-src_appleseed.studio_python_module.cpp16
-rw-r--r--graphics/appleseed/files/patch-src_appleseed.studio_python_pythoninterpreter.cpp22
-rw-r--r--graphics/appleseed/pkg-plist25
8 files changed, 223 insertions, 5 deletions
diff --git a/graphics/appleseed/Makefile b/graphics/appleseed/Makefile
index 6e91b2160367..ff24aacd5c85 100644
--- a/graphics/appleseed/Makefile
+++ b/graphics/appleseed/Makefile
@@ -3,7 +3,7 @@
PORTNAME= appleseed
DISTVERSION= 2.1.0-beta
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= graphics
MAINTAINER= danfe@FreeBSD.org
@@ -17,6 +17,7 @@ LIB_DEPENDS= libboost_thread.so:devel/boost-libs \
libpng.so:graphics/png \
libIlmImf.so:graphics/openexr \
libIlmThread.so:graphics/ilmbase \
+ libOpenColorIO.so:graphics/opencolorio \
libOpenImageIO.so:graphics/openimageio \
libxerces-c.so:textproc/xerces-c3 \
liboslexec.so:graphics/openshadinglanguage
@@ -30,8 +31,7 @@ ONLY_FOR_ARCHS_REASON= not ported to it yet
USES= cmake compiler:c++11-lang shebangfix
SHEBANG_FILES= scripts/*.py
-CMAKE_ARGS= -DWITH_STUDIO:BOOL=OFF \
- -DWITH_PYTHON2_BINDINGS:BOOL=OFF \
+CMAKE_ARGS= -DWITH_PYTHON2_BINDINGS:BOOL=OFF \
-DWITH_DOXYGEN:BOOL=OFF \
-DINSTALL_HEADERS:BOOL=OFF \
-DINSTALL_TESTS:BOOL=OFF \
@@ -49,16 +49,25 @@ PLIST_SUB= APPHOME=${CMAKE_INSTALL_PREFIX}
SUB_FILES= pkg-message
SUB_LIST:= ${PLIST_SUB}
-OPTIONS_DEFINE= PYTHON
-OPTIONS_DEFAULT= PYTHON
+OPTIONS_DEFINE= PYTHON STUDIO
+OPTIONS_DEFAULT= PYTHON STUDIO
OPTIONS_SUB= yes
PYTHON_USES= gl python:3.5+,build,run
PYTHON_USE= GL=gl
PYTHON_CMAKE_ON= -DWITH_PYTHON3_BINDINGS:BOOL=ON
+STUDIO_DESC= Build appleseed.studio (Qt-based)
+STUDIO_LIB_DEPENDS= ${PY_BOOST}
+STUDIO_USES= qt:5
+STUDIO_USE= QT=buildtools_build,qmake_build,concurrent,core,gui,opengl,widgets
+STUDIO_CMAKE_OFF= -DWITH_STUDIO:BOOL=OFF
+STUDIO_IMPLIES= PYTHON
+
post-patch:
@${RMDIR} ${WRKSRC}/sandbox/docs/api
@${RM} ${WRKSRC}/sandbox/share/cmake/Modules/FindOpenImageIO.cmake
.include <bsd.port.mk>
+
+PATCH_ARGS+= -l
diff --git a/graphics/appleseed/files/patch-CMakeLists.txt b/graphics/appleseed/files/patch-CMakeLists.txt
index 8146925d30c8..b83bc2c3d408 100644
--- a/graphics/appleseed/files/patch-CMakeLists.txt
+++ b/graphics/appleseed/files/patch-CMakeLists.txt
@@ -1,5 +1,16 @@
--- CMakeLists.txt.orig 2019-08-31 15:49:01 UTC
+++ CMakeLists.txt
+@@ -681,8 +681,8 @@ if (WITH_PYTHON2_BINDINGS OR WITH_PYTHON3_BINDINGS)
+ endif ()
+
+ if (WITH_STUDIO)
+- if (NOT WITH_PYTHON2_BINDINGS)
+- message (FATAL_ERROR "Option WITH_PYTHON2_BINDINGS should be \"ON\" to build appleseed.studio.")
++ if (NOT WITH_PYTHON3_BINDINGS)
++ message (FATAL_ERROR "Option WITH_PYTHON3_BINDINGS should be \"ON\" to build appleseed.studio.")
+ endif ()
+ add_subdirectory (src/appleseed.studio)
+ endif ()
@@ -732,15 +732,27 @@ install (
sandbox/share
sandbox/stylesheets
diff --git a/graphics/appleseed/files/patch-src_appleseed.studio_CMakeLists.txt b/graphics/appleseed/files/patch-src_appleseed.studio_CMakeLists.txt
new file mode 100644
index 000000000000..4bc4b5243f3b
--- /dev/null
+++ b/graphics/appleseed/files/patch-src_appleseed.studio_CMakeLists.txt
@@ -0,0 +1,62 @@
+--- src/appleseed.studio/CMakeLists.txt.orig 2019-08-31 15:49:01 UTC
++++ src/appleseed.studio/CMakeLists.txt
+@@ -33,18 +33,13 @@
+ #--------------------------------------------------------------------------------------------------
+
+ # Boost.
+-if (NOT PYTHON_MAJOR_VERSION STREQUAL "2")
+- message (FATAL_ERROR "Python 2.x needed.")
+-else ()
+- if (Boost_VERSION GREATER_EQUAL 106700)
+- find_package (Boost 1.61 REQUIRED COMPONENTS python27)
+- else ()
+- find_package (Boost 1.61 REQUIRED COMPONENTS python)
+- endif ()
+-endif ()
++find_package (Boost 1.61 REQUIRED COMPONENTS python)
+
+ # OpenGL.
+ find_package (OpenGL REQUIRED)
++
++# Python 3.
++find_package (Python3 REQUIRED)
+
+ # Qt 5.
+ find_package (Qt5 REQUIRED COMPONENTS Concurrent Core OpenGL Widgets)
+@@ -475,7 +470,7 @@ QT5_ADD_RESOURCES (appleseed.studio_resource_files
+
+ add_executable (appleseed.studio
+ ${appleseed.studio_sources}
+- $<TARGET_OBJECTS:appleseed.py2.obj>
++ $<TARGET_OBJECTS:appleseed.py3.obj>
+ ${appleseed.studio_generated_ui_files}
+ ${appleseed.studio_generated_moc_h_files}
+ ${appleseed.studio_resource_files}
+@@ -505,7 +500,7 @@ include_directories (
+ .
+ ../appleseed.shared
+ ${OPENCOLORIO_INCLUDE_DIRS}
+- ${PYTHON_INCLUDE_DIRS}
++ ${PYTHON_INCLUDE_DIR}
+ )
+
+
+@@ -533,8 +528,8 @@ target_link_libraries (appleseed.studio
+ Qt5::Concurrent
+ Qt5::OpenGL
+ Qt5::Widgets
+- ${OPENGL_LIBRARY}
+- ${PYTHON_LIBRARIES}
++ ${OPENGL_gl_LIBRARY}
++ glad ${PYTHON_LIBRARY}
+ )
+
+ if (WITH_DISNEY_MATERIAL)
+@@ -589,5 +584,5 @@ install (DIRECTORY ../../sandbox/studio
+ DESTINATION .
+ )
+
+-install (DIRECTORY ../../sandbox/lib/python/site-packages DESTINATION "lib/python${PYTHON_MAJOR_VERSION}.${PYTHON_MINOR_VERSION}")
+-install (DIRECTORY python/studio DESTINATION "lib/python${PYTHON_MAJOR_VERSION}.${PYTHON_MINOR_VERSION}/appleseed")
++install (DIRECTORY ../../sandbox/lib/python/site-packages DESTINATION "../lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
++install (DIRECTORY python/studio DESTINATION "../lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages/appleseed")
diff --git a/graphics/appleseed/files/patch-src_appleseed.studio_main_main.cpp b/graphics/appleseed/files/patch-src_appleseed.studio_main_main.cpp
new file mode 100644
index 000000000000..b08d498f05c5
--- /dev/null
+++ b/graphics/appleseed/files/patch-src_appleseed.studio_main_main.cpp
@@ -0,0 +1,44 @@
+--- src/appleseed.studio/main/main.cpp.orig 2019-08-31 15:49:01 UTC
++++ src/appleseed.studio/main/main.cpp
+@@ -29,8 +29,9 @@
+
+ // appleseed.studio headers.
+ #include "commandlinehandler.h"
+-#include "mainwindow/mainwindow.h"
++// XXX: must be included before Qt headers because of `slot' redefine
+ #include "python/pythoninterpreter.h"
++#include "mainwindow/mainwindow.h"
+ #include "utility/miscellaneous.h"
+
+ // appleseed.shared headers.
+@@ -141,7 +142,7 @@ namespace
+ bf::path python_path = bf::path(Application::get_root_path()) / "python27";
+ #else
+ // On Linux, Python's standard libraries are located in lib/python2.7/.
+- bf::path python_path = bf::path(Application::get_root_path());
++ bf::path python_path = bf::path(Application::get_root_path()) / "..";
+ #endif
+
+ if (bf::is_directory(python_path))
+@@ -159,18 +160,18 @@ namespace
+ "will use Python installation expected to exist in %s.",
+ python_home);
+
+- Py_SetPythonHome(python_home);
++ Py_SetPythonHome(Py_DecodeLocale(python_home, nullptr));
+ }
+ else
+ {
+ const string python_path_str = python_path.make_preferred().string();
+
+ QMessageBox msgbox;
+- msgbox.setWindowTitle("Python 2.7 Installation Not Found");
++ msgbox.setWindowTitle("Python Installation Not Found");
+ msgbox.setIcon(QMessageBox::Critical);
+ msgbox.setText(
+ QString(
+- "No Python 2.7 installation could be found in %1 where appleseed.studio expects one "
++ "No Python installation could be found in %1 where appleseed.studio expects one "
+ "to be, and the PYTHONHOME environment variable is not defined or is empty. "
+ "appleseed.studio may not work satisfactorily.").arg(QString::fromStdString(python_path_str)));
+ msgbox.setStandardButtons(QMessageBox::Ok);
diff --git a/graphics/appleseed/files/patch-src_appleseed.studio_mainwindow_mainwindow.cpp b/graphics/appleseed/files/patch-src_appleseed.studio_mainwindow_mainwindow.cpp
new file mode 100644
index 000000000000..4c6b990c020a
--- /dev/null
+++ b/graphics/appleseed/files/patch-src_appleseed.studio_mainwindow_mainwindow.cpp
@@ -0,0 +1,29 @@
+--- src/appleseed.studio/mainwindow/mainwindow.cpp.orig 2019-08-31 15:49:01 UTC
++++ src/appleseed.studio/mainwindow/mainwindow.cpp
+@@ -27,6 +27,9 @@
+ // THE SOFTWARE.
+ //
+
++// XXX: must be included before Qt headers because of `slot' redefine
++#include "mainwindow/pythonconsole/pythonconsolewidget.h"
++
+ // Interface header.
+ #include "mainwindow.h"
+
+@@ -39,7 +42,6 @@
+ #include "mainwindow/minimizebutton.h"
+ #include "mainwindow/project/attributeeditor.h"
+ #include "mainwindow/project/projectexplorer.h"
+-#include "mainwindow/pythonconsole/pythonconsolewidget.h"
+ #include "mainwindow/rendering/lightpathstab.h"
+ #include "mainwindow/rendering/materialdrophandler.h"
+ #include "mainwindow/rendering/renderwidget.h"
+@@ -684,7 +686,7 @@ void MainWindow::build_log_panel()
+
+ void MainWindow::build_python_console_panel()
+ {
+- char* python_home = Py_GetPythonHome();
++ char* python_home = Py_EncodeLocale(Py_GetPythonHome(), nullptr);
+ if (python_home == nullptr)
+ RENDERER_LOG_INFO("Python home not set.");
+ else RENDERER_LOG_INFO("Python home set to %s.", python_home);
diff --git a/graphics/appleseed/files/patch-src_appleseed.studio_python_module.cpp b/graphics/appleseed/files/patch-src_appleseed.studio_python_module.cpp
new file mode 100644
index 000000000000..1245551782cb
--- /dev/null
+++ b/graphics/appleseed/files/patch-src_appleseed.studio_python_module.cpp
@@ -0,0 +1,16 @@
+--- src/appleseed.studio/python/module.cpp.orig 2019-08-31 15:49:01 UTC
++++ src/appleseed.studio/python/module.cpp
+@@ -26,10 +26,12 @@
+ // THE SOFTWARE.
+ //
+
++// XXX: must be included before Qt headers because of `slot' redefine
++#include "python/pythoninterpreter.h"
++
+ // appleseed.studio headers.
+ #include "mainwindow/mainwindow.h"
+ #include "mainwindow/minimizebutton.h"
+-#include "python/pythoninterpreter.h"
+
+ // appleseed.foundation headers.
+ #include "foundation/core/exceptions/exception.h"
diff --git a/graphics/appleseed/files/patch-src_appleseed.studio_python_pythoninterpreter.cpp b/graphics/appleseed/files/patch-src_appleseed.studio_python_pythoninterpreter.cpp
new file mode 100644
index 000000000000..b378f74fbe6a
--- /dev/null
+++ b/graphics/appleseed/files/patch-src_appleseed.studio_python_pythoninterpreter.cpp
@@ -0,0 +1,22 @@
+--- src/appleseed.studio/python/pythoninterpreter.cpp.orig 2019-08-31 15:49:01 UTC
++++ src/appleseed.studio/python/pythoninterpreter.cpp
+@@ -62,7 +62,7 @@ BOOST_PYTHON_MODULE(_appleseedpythonbuiltin)
+ }
+
+ // Generated by BOOST_PYTHON_MODULE() declarations in module.cpp files.
+-extern "C" void init_appleseedstudio();
++extern "C" PyObject* PyInit__appleseedstudio();
+
+ namespace appleseed {
+ namespace studio {
+@@ -177,8 +177,8 @@ void PythonInterpreter::initialize(OutputRedirector re
+ // from e.g. renderer::Project to appleseedpython.Project.
+ //
+
+- PyImport_AppendInittab("_appleseedpythonbuiltin", init_appleseedpythonbuiltin);
+- PyImport_AppendInittab("_appleseedstudio", init_appleseedstudio);
++ PyImport_AppendInittab("_appleseedpythonbuiltin", PyInit__appleseedpythonbuiltin);
++ PyImport_AppendInittab("_appleseedstudio", PyInit__appleseedstudio);
+ Py_Initialize();
+
+ bpy::object main_module = bpy::import("__main__");
diff --git a/graphics/appleseed/pkg-plist b/graphics/appleseed/pkg-plist
index bbf81652b7de..48e33c4be9f9 100644
--- a/graphics/appleseed/pkg-plist
+++ b/graphics/appleseed/pkg-plist
@@ -9,14 +9,19 @@ share/cmake/Modules/FindXerces.cmake
%%PYTHON%%%%PYTHON_SITELIBDIR%%/appleseed/__init__.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/appleseed/_appleseedpython3.so
%%PYTHON%%%%PYTHON_SITELIBDIR%%/appleseed/logtarget.py
+%%STUDIO%%%%PYTHON_SITELIBDIR%%/appleseed/studio/__init__.py
+%%STUDIO%%%%PYTHON_SITELIBDIR%%/appleseed/studio/plugins.py
+%%STUDIO%%%%PYTHON_SITELIBDIR%%/appleseed/studio/ui.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/appleseed/test/runtests.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/appleseed/test/testbasis.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/appleseed/test/testdict2dict.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/appleseed/test/testentitymap.py
%%PYTHON%%%%PYTHON_SITELIBDIR%%/appleseed/test/testentityvector.py
+%%STUDIO%%%%PYTHON_SITELIBDIR%%/Qt.py
@cwd %%APPHOME%%
bin/animatecamera
bin/appleseed.cli
+%%STUDIO%%bin/appleseed.studio
bin/cleanmany.py
bin/convertmany.py
bin/convertmeshfile
@@ -114,6 +119,25 @@ icons/rendertab_toggle_pixel_inspector.png
icons/rendertab_toggle_pixel_inspector_hover.png
lib/libappleseed.shared.so
lib/libappleseed.so
+%%STUDIO%%ocio/config.ocio
+%%STUDIO%%ocio/luts/alexalogc.spi1d
+%%STUDIO%%ocio/luts/cineon.spi1d
+%%STUDIO%%ocio/luts/panalog.spi1d
+%%STUDIO%%ocio/luts/ploglin.spi1d
+%%STUDIO%%ocio/luts/rec709.spi1d
+%%STUDIO%%ocio/luts/redlog.spi1d
+%%STUDIO%%ocio/luts/slog.spi1d
+%%STUDIO%%ocio/luts/srgb.spi1d
+%%STUDIO%%ocio/luts/srgbf.spi1d
+%%STUDIO%%ocio/luts/viperlog.spi1d
+%%STUDIO%%seexpr/clouds/blue_clouds.se
+%%STUDIO%%seexpr/geometric/checkers.se
+%%STUDIO%%seexpr/geometric/dots.se
+%%STUDIO%%seexpr/gradients/horizontal.se
+%%STUDIO%%seexpr/gradients/vertical.se
+%%STUDIO%%seexpr/noise/fbm.se
+%%STUDIO%%seexpr/noise/noise.se
+%%STUDIO%%seexpr/noise/turbulence.se
schemas/project.xsd
schemas/settings.xsd
settings/appleseed.cli.xml
@@ -283,4 +307,5 @@ share/mitsuba2appleseed.py
share/rfmdisneypresets2appleseed.py
share/substancepainter_presets/appleseed UDIM.spexp
share/substancepainter_presets/appleseed.spexp
+%%STUDIO%%@dir studio/plugins
stylesheets/default.qss