commit: 2d54fa9acbeda3b6253f41e1ba97c204d28d0a5a Author: Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail <DOT> com> AuthorDate: Thu Jul 10 21:56:39 2025 +0000 Commit: Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail <DOT> com> CommitDate: Thu Jul 10 22:15:59 2025 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=2d54fa9a
media-gfx/glslViewer: fix 3.2.4 Add dev-libs/vera as dependency and remove the bundled vera. Add python use flag to enable python bindings, support multiple python version. Signed-off-by: Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail.com> media-gfx/glslViewer/Manifest | 1 + .../glslViewer/files/0001-Fix-CMakelists.patch | 319 +++++++++++++++++++++ ...afe-post-install-MIME-and-desktop-databas.patch | 182 ------------ ...getExposure-result-to-float-to-setUniform.patch | 281 ++++++++++++++++++ .../files/0002-Install-libvera.so-to-machine.patch | 29 -- media-gfx/glslViewer/glslViewer-3.2.4.ebuild | 76 ++++- 6 files changed, 664 insertions(+), 224 deletions(-) diff --git a/media-gfx/glslViewer/Manifest b/media-gfx/glslViewer/Manifest new file mode 100644 index 0000000000..759a213e98 --- /dev/null +++ b/media-gfx/glslViewer/Manifest @@ -0,0 +1 @@ +DIST glslViewer-3.2.4.tar.gz 108258877 BLAKE2B 552beedeafed97372f36a307c2ce3f742d4437ae3357cf3fa30c091953bac834aedde5270313f267657317c433b3e5eb2378427a66b5687de3956e99ae65f21b SHA512 20766ad1fe288d4e193849809b5633635b2d3a551cd46c9378f80c8817aeb90180847f2e9540e02f6c5729e0fa7fd51c45b4a1fa5f7e4ed6e397c58ef3e32c47 diff --git a/media-gfx/glslViewer/files/0001-Fix-CMakelists.patch b/media-gfx/glslViewer/files/0001-Fix-CMakelists.patch new file mode 100644 index 0000000000..a3375f3426 --- /dev/null +++ b/media-gfx/glslViewer/files/0001-Fix-CMakelists.patch @@ -0,0 +1,319 @@ +From e692a65ee828896d6d08f9b8b6e8cb0cb04ee2eb Mon Sep 17 00:00:00 2001 +From: Nguyen Dinh Dang Duong <[email protected]> +Date: Thu, 10 Jul 2025 23:00:42 +0700 +Subject: [PATCH 1/2] Fix CMakelists + +--- + CMakeLists.txt | 226 +++++++++++++++++++++++-------------------------- + 1 file changed, 104 insertions(+), 122 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0a90b18..672e9b9 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -13,12 +13,8 @@ set(CMAKE_CXX_STANDARD 14) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) + +-# The compiled vera +-add_subdirectory(deps) +- +-if(MSVC) +- add_definitions( -DPLATFORM_WINDOWS ) +-endif() ++find_package(PkgConfig REQUIRED) ++include_directories(${PROJECT_SOURCE_DIR}/deps) + + if (NO_X11 OR FORCE_GBM) + add_compile_options(-std=c++14 -DGLM_FORCE_CXX14 -fpermissive -Wno-psabi -lpthread) +@@ -38,7 +34,7 @@ set(CORE_HEADERS + "${PROJECT_SOURCE_DIR}/src/core/tools/tracker.h" + ) + +-set(CORE_SOURCES ++set(CORE_SOURCES + "${PROJECT_SOURCE_DIR}/src/core/sandbox.cpp" + "${PROJECT_SOURCE_DIR}/src/core/sceneRender.cpp" + "${PROJECT_SOURCE_DIR}/src/core/uniforms.cpp" +@@ -48,22 +44,24 @@ set(CORE_SOURCES + "${PROJECT_SOURCE_DIR}/src/core/tools/tracker.cpp" + ) + +-add_executable(glslViewer ++add_executable(glslViewer + "${PROJECT_SOURCE_DIR}/src/main.cpp" + ${CORE_SOURCES} + ) + +- +-include_directories(deps/liblo) +-target_include_directories(glslViewer PRIVATE deps) ++# Vera ++pkg_check_modules(VERA REQUIRED vera) ++include_directories(${VERA_INCLUDE_DIRS}) ++link_libraries(${VERA_LIBRARIES}) + target_link_libraries(glslViewer PRIVATE vera) ++ + # target_compile_definitions(vera PUBLIC SUPPORT_PLY_BINARY) + target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_MAJOR=${VERSION_MAJOR}) + target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_MINOR=${VERSION_MINOR}) + target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_PATCH=${VERSION_PATCH}) + +-if (EMSCRIPTEN) +- ++if (EMSCRIPTEN) ++ + set(LFLAGS "${LFLAGS} -s USE_GLFW=3") + # set(LFLAGS "${LFLAGS} -s FULL_ES2=1") + # set(LFLAGS "${LFLAGS} -s FULL_ES3=1") +@@ -78,17 +76,18 @@ if (EMSCRIPTEN) + set(LFLAGS "${LFLAGS} -s NO_DYNAMIC_EXECUTION=1") + # set(LFLAGS "${LFLAGS} -s NO_DISABLE_EXCEPTION_CATCHING") + +- # Copy the default index.html ++ # Copy the default index.html + file(COPY assets/index.html DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ) + +- # Add examples folder to the .data file system ++ # Add examples folder to the .data file system + file(COPY examples DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ) + set(LFLAGS "${LFLAGS} --preload-file examples") + + set_target_properties(glslViewer PROPERTIES LINK_FLAGS "${LFLAGS}") + target_link_libraries(glslViewer PRIVATE glfw webxr) +- ++ + else() ++ # Curses + find_package(Curses) + if (CURSES_FOUND) + target_compile_definitions(glslViewer PUBLIC SUPPORT_NCURSES) +@@ -96,8 +95,28 @@ else() + target_link_libraries(glslViewer PRIVATE ${CURSES_LIBRARY}) + endif() + +- target_compile_definitions(glslViewer PUBLIC +- SUPPORT_MULTITHREAD_RECORDING ++ find_library(TINFO_LIB tinfo) ++ if (TINFO_LIB) ++ target_link_libraries(glslViewer PRIVATE ${TINFO_LIB}) ++ endif() ++ ++ # OpenGL ++ set(OpenGL_GL_PREFERENCE GLVND) ++ find_package(OpenGL REQUIRED) ++ target_include_directories(glslViewer PRIVATE ${OPENGL_INCLUDE_DIR}) ++ target_link_libraries(glslViewer PRIVATE OpenGL::GL) ++ ++ # Liblo ++ pkg_check_modules(LIBLO REQUIRED liblo) ++ target_include_directories(glslViewer PRIVATE ${LIBLO_INCLUDE_DIRS}) ++ target_link_libraries(glslViewer PRIVATE ${LIBLO_LIBRARIES}) ++ ++ # Glm ++ find_package(glm REQUIRED) ++ target_include_directories(glslViewer PRIVATE ${GLM_INCLUDE_DIRS}) ++ ++ target_compile_definitions(glslViewer PUBLIC ++ SUPPORT_MULTITHREAD_RECORDING + SUPPORT_OSC + ) + +@@ -127,105 +146,73 @@ else() + # set a default system name - use CMake setting (Linux|Windows|...) + set(SYSTEM_NAME ${CMAKE_SYSTEM_NAME}) + +- # for msvc the SYSTEM_NAME is set win32/64 instead of "Windows" +- if(MSVC) +- if(CMAKE_CL_64) +- set(SYSTEM_NAME "win64") +- else() +- set(SYSTEM_NAME "win32") +- endif() +- endif() + set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${SYSTEM_NAME}-${SYSTEM_ARCH}") + +- if (MSVC) +- target_link_libraries(glslViewer PRIVATE +- lo_static +- Ws2_32.lib +- Iphlpapi.lib ++ target_link_libraries(glslViewer PRIVATE pthread dl) ++ install(TARGETS glslViewer DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ ++ if (NOT APPLE) ++ target_link_libraries(glslViewer PRIVATE atomic) ++ ++ # Install glslViewer Icon ++ install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.png" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps) ++ install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.desktop" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications) ++ ++ # Install supported MIME file types by GlslViewer ++ install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer-types.xml" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/mime/packages) ++ ++ # Add a thumbnailer for 3D Models ++ install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.thumbnailer" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/thumbnailers) ++ install(FILES "${PROJECT_SOURCE_DIR}/assets/glslThumbnailer.sh" ++ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ++ DESTINATION ${CMAKE_INSTALL_BINDIR} ++ RENAME "glslThumbnailer") ++ ++ # Add ScreenSaver script ++ install(FILES "${PROJECT_SOURCE_DIR}/assets/glslScreenSaver.py" ++ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ++ DESTINATION ${CMAKE_INSTALL_BINDIR} ++ RENAME "glslScreenSaver") ++ install(FILES "${PROJECT_SOURCE_DIR}/assets/glslScreenSaver.frag" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/glslViewer") ++ install(FILES "${PROJECT_SOURCE_DIR}/assets/glslScreenSaver.yaml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/glslViewer") ++ ++ find_program(XDG-DESKTOP-MENU_EXECUTABLE xdg-desktop-menu) ++ execute_process(COMMAND ${XDG-DESKTOP-MENU_EXECUTABLE} install --novendor ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop) ++ ++ # set(CPACK_GENERATOR "DEB") ++ set(DEBSRC_BUILD_DEPENDS debhelper git cmake xorg-dev libgbm-dev libglu1-mesa-dev libavcodec-dev libavfilter-dev libavdevice-dev libavformat-dev libavutil-dev libswscale-dev libv4l-dev libjpeg-dev libpng-dev libtiff-dev) ++ set(DEBSRC_PACKAGE_DEPENDS ffmpeg libavcodec-extra libavfilter-extra xorg-x11-server-Xvfb ) ++ ++ set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) ++ ++ set(CPACK_DEBIAN_PACKAGE_DEPENDS) ++ foreach(DEP ${DEBSRC_PACKAGE_DEPENDS}) ++ set(CPACK_DEBIAN_PACKAGE_DEPEND "${CPACK_DEBIAN_PACKAGE_DEPENDS}, ${DEP}") ++ endforeach(DEP ${DEBSRC_PACKAGE_DEPENDS}) ++ ++ set(CPACK_DEBIAN_BUILD_DEPENDS) ++ foreach(DEP ${DEBSRC_BUILD_DEPENDS}) ++ set(CPACK_DEBIAN_BUILD_DEPENDS "${CPACK_DEBIAN_BUILD_DEPENDS}, ${DEP}") ++ endforeach(DEP ${DEBSRC_BUILD_DEPENDS}) ++ ++ # find out and set DEB_ARCHITECTURE ++ execute_process( ++ COMMAND dpkg --print-architecture ++ OUTPUT_VARIABLE DEB_ARCHITECTURE ++ OUTPUT_STRIP_TRAILING_WHITESPACE + ) +- +- install(TARGETS glslViewer) +- set(CPACK_GENERATOR "ZIP") +- +- else() +- target_link_libraries(glslViewer PRIVATE pthread dl lo_static) +- install(TARGETS glslViewer DESTINATION ${CMAKE_INSTALL_BINDIR}) +- +- if (NOT APPLE) +- target_link_libraries(glslViewer PRIVATE atomic) +- +- # Install glslViewer Icon +- install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.png" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps) +- install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.desktop" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications) +- +- # Install supported MIME file types by GlslViewer +- install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer-types.xml" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/mime/packages) +- find_program(XDG-MIME_EXECUTABLE xdg-mime) +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} install --novendor ${CMAKE_INSTALL_FULL_DATAROOTDIR}/mime/packages/glslViewer-types.xml)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/lst)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/ply)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/obj)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/gltf-binary)") +- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/gltf+json)") +- find_program(UPDATE_MIME_DATABASE update-mime-database) +- install(CODE "execute_process(COMMAND ${UPDATE_MIME_DATABASE} ${CMAKE_INSTALL_FULL_DATAROOTDIR}/mime )") +- find_program(UPDATE_DESKTOP_DATABASE update-desktop-database) +- install(CODE "execute_process(COMMAND ${UPDATE_DESKTOP_DATABASE} ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications)") +- +- # Add a thumbnailer for 3D Models +- install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.thumbnailer" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/thumbnailers) +- install(FILES "${PROJECT_SOURCE_DIR}/assets/glslThumbnailer.sh" +- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE +- DESTINATION ${CMAKE_INSTALL_BINDIR} +- RENAME "glslThumbnailer") +- +- # Add ScreenSaver script +- install(FILES "${PROJECT_SOURCE_DIR}/assets/glslScreenSaver.py" +- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE +- DESTINATION ${CMAKE_INSTALL_BINDIR} +- RENAME "glslScreenSaver") +- install(FILES "${PROJECT_SOURCE_DIR}/assets/glslScreenSaver.frag" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/glslViewer") +- install(FILES "${PROJECT_SOURCE_DIR}/assets/glslScreenSaver.yaml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/glslViewer") +- +- find_program(XDG-DESKTOP-MENU_EXECUTABLE xdg-desktop-menu) +- execute_process(COMMAND ${XDG-DESKTOP-MENU_EXECUTABLE} install --novendor ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop) +- +- # set(CPACK_GENERATOR "DEB") +- set(DEBSRC_BUILD_DEPENDS debhelper git cmake xorg-dev libgbm-dev libglu1-mesa-dev libavcodec-dev libavfilter-dev libavdevice-dev libavformat-dev libavutil-dev libswscale-dev libv4l-dev libjpeg-dev libpng-dev libtiff-dev) +- set(DEBSRC_PACKAGE_DEPENDS ffmpeg libavcodec-extra libavfilter-extra xorg-x11-server-Xvfb ) +- +- set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +- +- set(CPACK_DEBIAN_PACKAGE_DEPENDS) +- foreach(DEP ${DEBSRC_PACKAGE_DEPENDS}) +- set(CPACK_DEBIAN_PACKAGE_DEPEND "${CPACK_DEBIAN_PACKAGE_DEPENDS}, ${DEP}") +- endforeach(DEP ${DEBSRC_PACKAGE_DEPENDS}) +- +- set(CPACK_DEBIAN_BUILD_DEPENDS) +- foreach(DEP ${DEBSRC_BUILD_DEPENDS}) +- set(CPACK_DEBIAN_BUILD_DEPENDS "${CPACK_DEBIAN_BUILD_DEPENDS}, ${DEP}") +- endforeach(DEP ${DEBSRC_BUILD_DEPENDS}) +- +- # find out and set DEB_ARCHITECTURE +- execute_process( +- COMMAND dpkg --print-architecture +- OUTPUT_VARIABLE DEB_ARCHITECTURE +- OUTPUT_STRIP_TRAILING_WHITESPACE +- ) +- message(STATUS "package_details.cmake: your architecture is ${DEB_ARCHITECTURE}") +- +- set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DEB_ARCHITECTURE}) +- set(CPACK_DEBIAN_PACKAGE_SECTION graphics) +- set(CPACK_DEBIAN_PACKAGE_PRIORITY extra ) +- set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Patricio Gonzalez Vivo <[email protected]>") +- set(CPACK_DEBIAN_DISTRIBUTION_NAME ubuntu ) +- set(CPACK_DEBIAN_DISTRIBUTION_RELEASES bionic focal ) +- set(CPACK_DEBIAN_CHANGELOG " * Latest development version.") +- # set(CPACK_DEBIAN_RESOURCE_FILE_CHANGELOG ${PROJECT_SOURCE_DIR}/changelog) +- # set(CPACK_DEBIAN_UPDATE_CHANGELOG ON) +- set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${DEB_ARCHITECTURE}") +- endif() +- ++ message(STATUS "package_details.cmake: your architecture is ${DEB_ARCHITECTURE}") ++ ++ set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DEB_ARCHITECTURE}) ++ set(CPACK_DEBIAN_PACKAGE_SECTION graphics) ++ set(CPACK_DEBIAN_PACKAGE_PRIORITY extra ) ++ set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Patricio Gonzalez Vivo <[email protected]>") ++ set(CPACK_DEBIAN_DISTRIBUTION_NAME ubuntu ) ++ set(CPACK_DEBIAN_DISTRIBUTION_RELEASES bionic focal ) ++ set(CPACK_DEBIAN_CHANGELOG " * Latest development version.") ++ # set(CPACK_DEBIAN_RESOURCE_FILE_CHANGELOG ${PROJECT_SOURCE_DIR}/changelog) ++ # set(CPACK_DEBIAN_UPDATE_CHANGELOG ON) ++ set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${DEB_ARCHITECTURE}") + endif() + + include(CPack) +@@ -233,12 +220,8 @@ else() + endif() + + if (PYTHON_BINDINGS) +- find_package(Python3 3.10 REQUIRED COMPONENTS Interpreter Development) +- +- # pybind11 +- set(DEPS_FOLDER "${PROJECT_SOURCE_DIR}/deps") +- add_subdirectory("${DEPS_FOLDER}/pybind11") +- include_directories(${pybind11_INCLUDE_DIRS}) ++ find_package(Python3 REQUIRED COMPONENTS Interpreter Development) ++ find_package(pybind11 REQUIRED) + + set(PYBIND_INCLUDES + "${PROJECT_SOURCE_DIR}/src/python/engine.h" +@@ -255,7 +238,6 @@ if (PYTHON_BINDINGS) + target_compile_definitions(PyGlslViewer PRIVATE GLSLVIEWER_VERSION_MAJOR=${VERSION_MAJOR}) + target_compile_definitions(PyGlslViewer PRIVATE GLSLVIEWER_VERSION_MINOR=${VERSION_MINOR}) + target_compile_definitions(PyGlslViewer PRIVATE GLSLVIEWER_VERSION_PATCH=${VERSION_PATCH}) +- target_include_directories(PyGlslViewer PUBLIC ${DEPS_FOLDER}) + target_link_libraries(PyGlslViewer PRIVATE vera pybind11::module) + +-endif() +\ No newline at end of file ++endif() +-- +2.50.0 + diff --git a/media-gfx/glslViewer/files/0001-Removed-unsafe-post-install-MIME-and-desktop-databas.patch b/media-gfx/glslViewer/files/0001-Removed-unsafe-post-install-MIME-and-desktop-databas.patch deleted file mode 100644 index 3a11ad518b..0000000000 --- a/media-gfx/glslViewer/files/0001-Removed-unsafe-post-install-MIME-and-desktop-databas.patch +++ /dev/null @@ -1,182 +0,0 @@ -From 5fe84056dceee18e99cfcc490330475ac2fd7b6c Mon Sep 17 00:00:00 2001 -From: Nguyen Dinh Dang Duong <[email protected]> -Date: Sat, 28 Jun 2025 04:31:30 +0700 -Subject: [PATCH 1/2] Removed unsafe post-install MIME and desktop database - updates to avoid sandbox violations - -Signed-off-by: Nguyen Dinh Dang Duong <[email protected]> ---- - CMakeLists.txt | 55 ++++++++++++++++++++------------------------------ - 1 file changed, 22 insertions(+), 33 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6df0206..a7b041c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -5,7 +5,7 @@ set(VERSION_MINOR 3) - set(VERSION_PATCH 0) - set(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}") - --project(glslViewer -+project(glslViewer - VERSION ${VERSION} - LANGUAGES C CXX ) - -@@ -13,7 +13,7 @@ set(CMAKE_CXX_STANDARD 14) - set(CMAKE_CXX_STANDARD_REQUIRED ON) - set(CMAKE_CXX_EXTENSIONS OFF) - --# The compiled vera -+# The compiled vera - add_subdirectory(deps) - - if(MSVC) -@@ -38,7 +38,7 @@ set(CORE_HEADERS - "${PROJECT_SOURCE_DIR}/src/core/tools/tracker.h" - ) - --set(CORE_SOURCES -+set(CORE_SOURCES - "${PROJECT_SOURCE_DIR}/src/core/sandbox.cpp" - "${PROJECT_SOURCE_DIR}/src/core/sceneRender.cpp" - "${PROJECT_SOURCE_DIR}/src/core/uniforms.cpp" -@@ -48,7 +48,7 @@ set(CORE_SOURCES - "${PROJECT_SOURCE_DIR}/src/core/tools/tracker.cpp" - ) - --add_executable(glslViewer -+add_executable(glslViewer - "${PROJECT_SOURCE_DIR}/src/main.cpp" - ${CORE_SOURCES} - ) -@@ -63,8 +63,8 @@ target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_MAJOR=${VERSION - target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_MINOR=${VERSION_MINOR}) - target_compile_definitions(glslViewer PRIVATE GLSLVIEWER_VERSION_PATCH=${VERSION_PATCH}) - --if (EMSCRIPTEN) -- -+if (EMSCRIPTEN) -+ - set(LFLAGS "${LFLAGS} -s USE_GLFW=3") - # set(LFLAGS "${LFLAGS} -s FULL_ES2=1") - # set(LFLAGS "${LFLAGS} -s FULL_ES3=1") -@@ -79,16 +79,16 @@ if (EMSCRIPTEN) - set(LFLAGS "${LFLAGS} -s NO_DYNAMIC_EXECUTION=1") - # set(LFLAGS "${LFLAGS} -s NO_DISABLE_EXCEPTION_CATCHING") - -- # Copy the default index.html -+ # Copy the default index.html - file(COPY assets/index.html DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ) - -- # Add examples folder to the .data file system -+ # Add examples folder to the .data file system - file(COPY examples DESTINATION ${CMAKE_CURRENT_BINARY_DIR} ) - set(LFLAGS "${LFLAGS} --preload-file examples") - - set_target_properties(glslViewer PROPERTIES LINK_FLAGS "${LFLAGS}") - target_link_libraries(glslViewer PRIVATE glfw webxr) -- -+ - else() - find_package(Curses) - if (CURSES_FOUND) -@@ -97,8 +97,8 @@ else() - target_link_libraries(glslViewer PRIVATE ${CURSES_LIBRARY}) - endif() - -- target_compile_definitions(glslViewer PUBLIC -- SUPPORT_MULTITHREAD_RECORDING -+ target_compile_definitions(glslViewer PUBLIC -+ SUPPORT_MULTITHREAD_RECORDING - SUPPORT_OSC - ) - -@@ -139,9 +139,9 @@ else() - set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${SYSTEM_NAME}-${SYSTEM_ARCH}") - - if (MSVC) -- target_link_libraries(glslViewer PRIVATE -- lo_static -- Ws2_32.lib -+ target_link_libraries(glslViewer PRIVATE -+ lo_static -+ Ws2_32.lib - Iphlpapi.lib - ) - -@@ -151,28 +151,17 @@ else() - else() - target_link_libraries(glslViewer PRIVATE pthread dl lo_static) - install(TARGETS glslViewer DESTINATION ${CMAKE_INSTALL_BINDIR}) -- -+ - if (NOT APPLE) - target_link_libraries(glslViewer PRIVATE atomic) - - # Install glslViewer Icon - install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.png" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/pixmaps) - install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.desktop" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications) -- -+ - # Install supported MIME file types by GlslViewer - install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer-types.xml" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/mime/packages) -- find_program(XDG-MIME_EXECUTABLE xdg-mime) -- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} install --novendor ${CMAKE_INSTALL_FULL_DATAROOTDIR}/mime/packages/glslViewer-types.xml)") -- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/lst)") -- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/ply)") -- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/obj)") -- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/gltf-binary)") -- install(CODE "execute_process(COMMAND ${XDG-MIME_EXECUTABLE} default ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications/glslViewer.desktop model/gltf+json)") -- find_program(UPDATE_MIME_DATABASE update-mime-database) -- install(CODE "execute_process(COMMAND ${UPDATE_MIME_DATABASE} ${CMAKE_INSTALL_FULL_DATAROOTDIR}/mime )") -- find_program(UPDATE_DESKTOP_DATABASE update-desktop-database) -- install(CODE "execute_process(COMMAND ${UPDATE_DESKTOP_DATABASE} ${CMAKE_INSTALL_FULL_DATAROOTDIR}/applications)") -- -+ - # Add a thumbnailer for 3D Models - install(FILES "${PROJECT_SOURCE_DIR}/assets/glslViewer.thumbnailer" DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/thumbnailers) - install(FILES "${PROJECT_SOURCE_DIR}/assets/glslThumbnailer.sh" -@@ -200,7 +189,7 @@ else() - set(CPACK_DEBIAN_PACKAGE_DEPENDS) - foreach(DEP ${DEBSRC_PACKAGE_DEPENDS}) - set(CPACK_DEBIAN_PACKAGE_DEPEND "${CPACK_DEBIAN_PACKAGE_DEPENDS}, ${DEP}") -- endforeach(DEP ${DEBSRC_PACKAGE_DEPENDS}) -+ endforeach(DEP ${DEBSRC_PACKAGE_DEPENDS}) - - set(CPACK_DEBIAN_BUILD_DEPENDS) - foreach(DEP ${DEBSRC_BUILD_DEPENDS}) -@@ -211,7 +200,7 @@ else() - execute_process( - COMMAND dpkg --print-architecture - OUTPUT_VARIABLE DEB_ARCHITECTURE -- OUTPUT_STRIP_TRAILING_WHITESPACE -+ OUTPUT_STRIP_TRAILING_WHITESPACE - ) - message(STATUS "package_details.cmake: your architecture is ${DEB_ARCHITECTURE}") - -@@ -220,13 +209,13 @@ else() - set(CPACK_DEBIAN_PACKAGE_PRIORITY extra ) - set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Patricio Gonzalez Vivo <[email protected]>") - set(CPACK_DEBIAN_DISTRIBUTION_NAME ubuntu ) -- set(CPACK_DEBIAN_DISTRIBUTION_RELEASES bionic focal ) -+ set(CPACK_DEBIAN_DISTRIBUTION_RELEASES bionic focal ) - set(CPACK_DEBIAN_CHANGELOG " * Latest development version.") - # set(CPACK_DEBIAN_RESOURCE_FILE_CHANGELOG ${PROJECT_SOURCE_DIR}/changelog) - # set(CPACK_DEBIAN_UPDATE_CHANGELOG ON) - set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${VERSION}-${DEB_ARCHITECTURE}") - endif() -- -+ - endif() - - include(CPack) -@@ -259,4 +248,4 @@ if (PYTHON_BINDINGS) - target_include_directories(PyGlslViewer PUBLIC ${DEPS_FOLDER}) - target_link_libraries(PyGlslViewer PRIVATE vera pybind11::module) - --endif() -\ No newline at end of file -+endif() --- -2.50.0 - diff --git a/media-gfx/glslViewer/files/0002-Cast-getExposure-result-to-float-to-setUniform.patch b/media-gfx/glslViewer/files/0002-Cast-getExposure-result-to-float-to-setUniform.patch new file mode 100644 index 0000000000..5abbb6f39d --- /dev/null +++ b/media-gfx/glslViewer/files/0002-Cast-getExposure-result-to-float-to-setUniform.patch @@ -0,0 +1,281 @@ +From 9e2959b03e256ec9a3d43e1bcaa4c5ddd595c69c Mon Sep 17 00:00:00 2001 +From: Nguyen Dinh Dang Duong <[email protected]> +Date: Thu, 10 Jul 2025 23:25:00 +0700 +Subject: [PATCH 2/2] Cast getExposure() result to float to setUniform + +--- + src/core/uniforms.cpp | 70 +++++++++++++++++++++---------------------- + 1 file changed, 35 insertions(+), 35 deletions(-) + +diff --git a/src/core/uniforms.cpp b/src/core/uniforms.cpp +index 4182977..3b76f23 100644 +--- a/src/core/uniforms.cpp ++++ b/src/core/uniforms.cpp +@@ -16,7 +16,7 @@ + + std::string UniformData::getType() { + if (size == 1) return (bInt ? "int" : "float"); +- else return (bInt ? "ivec" : "vec") + vera::toString(size); ++ else return (bInt ? "ivec" : "vec") + vera::toString(size); + } + + void UniformData::set(const UniformValue &_value, size_t _size, bool _int, bool _queue) { +@@ -27,13 +27,13 @@ void UniformData::set(const UniformValue &_value, size_t _size, bool _int, bool + queue.push( _value ); + else + value = _value; +- ++ + change = true; + } + + void UniformData::parse(const std::vector<std::string>& _command, size_t _start, bool _queue) {; + UniformValue candidate; +- for (size_t i = _start; i < _command.size() && i < 5; i++) ++ for (size_t i = _start; i < _command.size() && i < 5; i++) + candidate[i-_start] = vera::toFloat(_command[i]); + + set(candidate, _command.size() - _start, false, _queue); +@@ -88,14 +88,14 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + // + functions["u_iblLuminance"] = UniformFunction("float", [this](vera::Shader& _shader) { + if (activeCamera) +- _shader.setUniform("u_iblLuminance", 30000.0f * activeCamera->getExposure()); ++ _shader.setUniform("u_iblLuminance", 30000.0f * static_cast<float>(activeCamera->getExposure())); + }, +- [this]() { ++ [this]() { + if (activeCamera) + return vera::toString(30000.0f * activeCamera->getExposure()); + return std::string(""); + }); +- ++ + // CAMERA UNIFORMS + // + functions["u_camera"] = UniformFunction("vec3", [this](vera::Shader& _shader) { +@@ -112,7 +112,7 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + if (activeCamera) + _shader.setUniform("u_cameraDistance", activeCamera->getDistance()); + }, +- [this]() { ++ [this]() { + if (activeCamera) + return vera::toString(activeCamera->getDistance()); + return std::string(""); +@@ -122,7 +122,7 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + if (activeCamera) + _shader.setUniform("u_cameraNearClip", activeCamera->getNearClip()); + }, +- [this]() { ++ [this]() { + if (activeCamera) + return vera::toString(activeCamera->getNearClip()); + return std::string(""); +@@ -132,9 +132,9 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + if (activeCamera) + _shader.setUniform("u_cameraFarClip", activeCamera->getFarClip()); + }, +- [this]() { ++ [this]() { + if (activeCamera) +- return vera::toString(activeCamera->getFarClip()); ++ return vera::toString(activeCamera->getFarClip()); + return std::string(""); + }); + +@@ -150,9 +150,9 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + + functions["u_cameraExposure"] = UniformFunction("float", [this](vera::Shader& _shader) { + if (activeCamera) +- _shader.setUniform("u_cameraExposure", activeCamera->getExposure()); ++ _shader.setUniform("u_cameraExposure", static_cast<float>(activeCamera->getExposure())); + }, +- [this]() { ++ [this]() { + if (activeCamera) + return vera::toString(activeCamera->getExposure()); + return std::string(""); +@@ -162,7 +162,7 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + if (activeCamera) + _shader.setUniform("u_cameraAperture", activeCamera->getAperture()); + }, +- [this]() { ++ [this]() { + if (activeCamera) + return vera::toString(activeCamera->getAperture()); + return std::string(""); +@@ -172,7 +172,7 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + if (activeCamera) + _shader.setUniform("u_cameraShutterSpeed", activeCamera->getShutterSpeed()); + }, +- [this]() { ++ [this]() { + if (activeCamera) + return vera::toString(activeCamera->getShutterSpeed()); + return std::string(""); +@@ -182,7 +182,7 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + if (activeCamera) + _shader.setUniform("u_cameraSensitivity", activeCamera->getSensitivity()); + }, +- [this]() { ++ [this]() { + if (activeCamera) + return vera::toString(activeCamera->getSensitivity()); + return std::string(""); +@@ -192,12 +192,12 @@ Uniforms::Uniforms() : m_frame(0), m_play(true), m_change(false) { + if (activeCamera) + _shader.setUniform("u_cameraChange", activeCamera->bChange); + }, +- [this]() { ++ [this]() { + if (activeCamera) + return vera::toString(activeCamera->bChange); + return std::string(""); + }); +- ++ + functions["u_normalMatrix"] = UniformFunction("mat3", [this](vera::Shader& _shader) { + if (activeCamera) + _shader.setUniform("u_normalMatrix", activeCamera->getNormalMatrix()); +@@ -248,7 +248,7 @@ bool Uniforms::feedTo(vera::Shader *_shader, bool _lights, bool _buffers ) { + } + + // Pass user defined uniforms (only if the shader code or scene had changed) +- // if (m_change) ++ // if (m_change) + { + for (UniformDataMap::iterator it = data.begin(); it != data.end(); ++it) { + _shader->setUniform(it->first, it->second.value.data(), it->second.size); +@@ -291,7 +291,7 @@ bool Uniforms::feedTo(vera::Shader *_shader, bool _lights, bool _buffers ) { + + for (size_t i = 0; i < doubleBuffers.size(); i++) + _shader->setUniformTexture("u_doubleBuffer" + vera::toString(i), doubleBuffers[i]->src, _shader->textureIndex++ ); +- ++ + for (size_t i = 0; i < floods.size(); i++) + _shader->setUniformTexture("u_flood" + vera::toString(i), floods[i].dst, _shader->textureIndex++ ); + } +@@ -300,7 +300,7 @@ bool Uniforms::feedTo(vera::Shader *_shader, bool _lights, bool _buffers ) { + for (size_t i = 0; i < pyramids.size(); i++) + _shader->setUniformTexture("u_pyramid" + vera::toString(i), pyramids[i].getResult(), _shader->textureIndex++ ); + +- ++ + if (_lights) { + // Pass Light Uniforms + if (lights.size() == 1) { +@@ -318,7 +318,7 @@ bool Uniforms::feedTo(vera::Shader *_shader, bool _lights, bool _buffers ) { + } + else { + // TODO: +- // - Lights should be pass as structs?? ++ // - Lights should be pass as structs?? + + for (vera::LightsMap::iterator it = lights.begin(); it != lights.end(); ++it) { + std::string name = "u_" + it->first; +@@ -336,7 +336,7 @@ bool Uniforms::feedTo(vera::Shader *_shader, bool _lights, bool _buffers ) { + _shader->setUniformDepthTexture(name + "ShadowMap", it->second->getShadowMap(), _shader->textureIndex++ ); + } + } +- ++ + if (activeCubemap) { + _shader->setUniformTextureCube("u_cubeMap", (vera::TextureCube*)activeCubemap); + _shader->setUniform("u_SH", activeCubemap->SH, 9); +@@ -372,12 +372,12 @@ void Uniforms::unflagChange() { + activeCamera->bChange = false; + } + +-bool Uniforms::haveChange() { ++bool Uniforms::haveChange() { + if (activeCamera) + if (activeCamera->bChange) + return true; +- +- if (functions["u_time"].present || ++ ++ if (functions["u_time"].present || + functions["u_date"].present || + functions["u_delta"].present || + functions["u_mouse"].present) +@@ -402,7 +402,7 @@ void Uniforms::checkUniforms( const std::string &_vert_src, const std::string &_ + if ( it->second.present != present ) { + it->second.present = present; + m_change = true; +- } ++ } + } + } + +@@ -515,16 +515,16 @@ void Uniforms::setStreamsRestart() { + void Uniforms::printAvailableUniforms(bool _non_active) { + if (_non_active) { + // Print all Native Uniforms (they carry functions) +- for (UniformFunctionsMap::iterator it= functions.begin(); it != functions.end(); ++it) { ++ for (UniformFunctionsMap::iterator it= functions.begin(); it != functions.end(); ++it) { + std::cout << "uniform " << it->second.type << ' ' << it->first << ";"; +- if (it->second.print) ++ if (it->second.print) + std::cout << " // " << it->second.print(); + std::cout << std::endl; + } + } + else { + // Print Native Uniforms (they carry functions) that are present on the shader +- for (UniformFunctionsMap::iterator it= functions.begin(); it != functions.end(); ++it) { ++ for (UniformFunctionsMap::iterator it= functions.begin(); it != functions.end(); ++it) { + if (it->second.present) { + std::cout<< "uniform " << it->second.type << ' ' << it->first << ";"; + if (it->second.print) +@@ -567,7 +567,7 @@ void Uniforms::printDefinedUniforms(bool _csv){ + std::cout << "uniform " << it->second[frame].getType() << " " << it->first << "; // " << it->second[frame].print() << std::endl; + } + } +- } ++ } + } + + void Uniforms::addDefine(const std::string& _define, const std::string& _value) { +@@ -597,7 +597,7 @@ void Uniforms::printBuffers() { + std::cout << "uniform sampler2D u_doubleBuffer" << i << ";" << std::endl; + + for (size_t i = 0; i < pyramids.size(); i++) +- std::cout << "uniform sampler2D u_pyramid" << i << ";" << std::endl; ++ std::cout << "uniform sampler2D u_pyramid" << i << ";" << std::endl; + + if (functions["u_scene"].present) + std::cout << "uniform sampler2D u_scene;" << std::endl; +@@ -642,7 +642,7 @@ bool Uniforms::addCameraPath( const std::string& _filename ) { + // ); + + while (std::getline(is, line)) { +- // If line not commented ++ // If line not commented + if (line[0] == '#') + continue; + +@@ -669,9 +669,9 @@ bool Uniforms::addCameraPath( const std::string& _filename ) { + // glm::mat4 projection = glm::ortho(0.0f, w, h, 0.0f, near, far); + // glm::mat4 ndc = glm::mat4( + // fL, 0.0f, 0.0f, 0.0f, +- // 0.0f, fL, 0.0f, 0.0f, ++ // 0.0f, fL, 0.0f, 0.0f, + // cx, cy, 1.0f, 0.0f, +- // 0.0f, 0.0f, 0.0f, 1.0f ++ // 0.0f, 0.0f, 0.0f, 1.0f + // ); + // frame.projection = projection * ndc; + +@@ -681,7 +681,7 @@ bool Uniforms::addCameraPath( const std::string& _filename ) { + (w - 2.0f*cx)/w, (h-2.0f*cy)/h, (-far-near)/delta, -1.0f, + 0.0f, 0.0f, -2.0f*far*near/delta, 0.0f + ); +- ++ + // frame.projection = glm::mat4( + // fL/cx, 0.0f, 0.0f, 0.0f, + // 0.0f, fL/cy, 0.0f, 0.0f, +-- +2.50.0 + diff --git a/media-gfx/glslViewer/files/0002-Install-libvera.so-to-machine.patch b/media-gfx/glslViewer/files/0002-Install-libvera.so-to-machine.patch deleted file mode 100644 index ae9500eccf..0000000000 --- a/media-gfx/glslViewer/files/0002-Install-libvera.so-to-machine.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d813c82384ebd642376e09d73d6254a244f2b40a Mon Sep 17 00:00:00 2001 -From: Nguyen Dinh Dang Duong <[email protected]> -Date: Sat, 28 Jun 2025 04:49:46 +0700 -Subject: [PATCH 2/2] Install libvera.so to machine - -` ---- - CMakeLists.txt | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a7b041c..03cf64d 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -16,6 +16,11 @@ set(CMAKE_CXX_EXTENSIONS OFF) - # The compiled vera - add_subdirectory(deps) - -+install(TARGETS vera -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -+ - if(MSVC) - add_definitions( -DPLATFORM_WINDOWS ) - endif() --- -2.50.0 - diff --git a/media-gfx/glslViewer/glslViewer-3.2.4.ebuild b/media-gfx/glslViewer/glslViewer-3.2.4.ebuild index 606acf7c01..48a132e656 100644 --- a/media-gfx/glslViewer/glslViewer-3.2.4.ebuild +++ b/media-gfx/glslViewer/glslViewer-3.2.4.ebuild @@ -3,51 +3,101 @@ EAPI=8 -inherit cmake git-r3 +# pybind11 has not bump python to 3.14 yet +PYTHON_COMPAT=( python3_{11..13} ) +inherit cmake flag-o-matic python-r1 DESCRIPTION="Console-based GLSL live-coding viewer" HOMEPAGE="https://github.com/patriciogonzalezvivo/glslViewer" -EGIT_REPO_URI="https://github.com/patriciogonzalezvivo/glslViewer.git" -EGIT_COMMIT="7eb6254cb4cedf03f1c78653f90905fe0c3b48fb" +SRC_URI="https://codeload.github.com/patriciogonzalezvivo/glslViewer/tar.gz/refs/tags/${PV} -> ${P}.tar.gz" -LICENSE="BSD" +LICENSE="BSD MIT" SLOT="0" -IUSE="ffmpeg xvfb" + +IUSE="X ffmpeg xvfb python" +REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" DEPEND=" media-libs/glu sys-libs/ncurses + x11-misc/shared-mime-info + dev-libs/lygia + media-libs/liblo + dev-libs/vera + media-libs/glm ffmpeg? ( media-video/ffmpeg ) xvfb? ( x11-base/xorg-server[xvfb] ) - x11-misc/shared-mime-info + python? ( + ${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/pybind11[${PYTHON_USEDEP}] + ') + ) " RDEPEND="${DEPEND}" -BDEPEND=" - dev-build/cmake - virtual/pkgconfig -" PATCHES=( - "${FILESDIR}/0001-Removed-unsafe-post-install-MIME-and-desktop-databas.patch" - "${FILESDIR}/0002-Install-libvera.so-to-machine.patch" + "${FILESDIR}/0001-Fix-CMakelists.patch" + "${FILESDIR}/0002-Cast-getExposure-result-to-float-to-setUniform.patch" ) src_configure() { local mycmakeargs=( - -DCMAKE_EXE_LINKER_FLAGS="-ltinfo" + -DCMAKE_INSTALL_PREFIX=/usr + -DCMAKE_INSTALL_LIBDIR="$(get_libdir)" + -DNO_X11="$(usex X OFF ON)" + ) + append-cxxflags "-DGL_OPENGL -DDRIVER_GLFW" + cmake_src_configure + if use python; then + python_foreach_impl python_configure + fi +} + +python_configure() { + mkdir -p "${BUILD_DIR}" || die "mkdir failed" + pushd "${BUILD_DIR}" > /dev/null || die "pushd failed" + local mycmakeargs=( + -DCMAKE_INSTALL_PREFIX=/usr + -DCMAKE_INSTALL_LIBDIR="$(get_libdir)" + -DNO_X11="$(usex X OFF ON)" + -DPYTHON_BINDINGS=ON + -DPython3_EXECUTABLE="${PYTHON}" ) + append-cxxflags "-DGL_OPENGL -DDRIVER_GLFW" cmake_src_configure + popd >/dev/null || die "popd failed" +} + +src_compile() { + cmake_src_compile + if use python; then + python_foreach_impl python_compile + fi +} + +python_compile() { + pushd "${BUILD_DIR}" > /dev/null || die "pushd failed" + cmake_src_compile + popd >/dev/null || die "popd failed" } src_install() { cmake_src_install + if use python; then + python_foreach_impl python_install + fi dodoc README.md } +python_install() { + python_domodule "${BUILD_DIR}"/PyGlslViewer*.so || die "failed to install PyGlslViewer module" +} + pkg_postinst() { xdg-icon-resource forceupdate || die update-mime-database /usr/share/mime || die
