SHA256
1
0
forked from pool/gmic

Accepting request 618329 from home:gladiac:branches:graphics

- Update to gmic-2.3.0
  * https://discuss.pixls.us/t/release-of-gmic-2-3-0/
- Remove gmic-qt-2.2.2-Use-HiDPI-icons.patch
- Added gmic-2.3.0-add-cmake-for-qt.patch

OBS-URL: https://build.opensuse.org/request/show/618329
OBS-URL: https://build.opensuse.org/package/show/graphics/gmic?expand=0&rev=10
This commit is contained in:
Marcus Rückert 2018-06-21 14:43:10 +00:00 committed by Git OBS Bridge
parent adfe824f6c
commit 890355fe00
11 changed files with 768 additions and 24091 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:533246dfb6f602755029542aa30616ef039d21e1d6fd79b0a0ac6c016cb10159
size 11037787

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:67db8ebcde5bc538d516432ebde48921987f359129bab8dc58067ebdcfca26de
size 39077835

View File

@ -0,0 +1,716 @@
Index: gmic-2.3.0/gmic-qt/CMakeLists.txt
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gmic-2.3.0/gmic-qt/CMakeLists.txt 2018-06-20 15:30:24.000000000 +0200
@@ -0,0 +1,503 @@
+project(gmic-qt)
+
+message(STATUS "Using CMake version: ${CMAKE_VERSION}")
+
+cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+LIST (APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
+include(FeatureSummary)
+
+set(CMAKE_CXX_STANDARD 11)
+add_definitions(-Dcimg_use_cpp11=1)
+set(MIN_QT_VERSION 5.2.0)
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTOUIC OFF)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set (GMIC_QT_HOST "gimp" CACHE STRING "Define for which host qmic-qt will be built: gimp, krita or none.")
+if (${GMIC_QT_HOST} STREQUAL "none")
+ message("Building standalone version.")
+else()
+ message("Building for target host application: " ${GMIC_QT_HOST})
+endif()
+
+if(EXISTS "../src/gmic.cpp")
+ set (GMIC_PATH "../src" CACHE STRING "Define the path to the gmic headers")
+else()
+ set (GMIC_PATH "../gmic/src" CACHE STRING "Define the path to the gmic headers")
+endif()
+
+message("G'MIC path: " ${GMIC_PATH})
+
+option(ENABLE_DYNAMIC_LINKING "Dynamically link the binaries to the GMIC shared library" OFF)
+set (GMIC_LIB_PATH "${GMIC_PATH}" CACHE STRING "Define the path to the GMIC shared library")
+
+#
+# Look for G'MIC repository
+#
+get_filename_component(GMIC_ABSOLUTE_PATH ${GMIC_PATH} ABSOLUTE BASEDIR ${CMAKE_SOURCE_DIR})
+if (EXISTS ${GMIC_ABSOLUTE_PATH}/gmic.cpp)
+ message("Found G'MIC repository")
+else()
+ get_filename_component(TARGET_CLONE_DIR ${GMIC_ABSOLUTE_PATH}/.. ABSOLUTE)
+ message("")
+ message("Cannot find G'MIC repository in " ${GMIC_ABSOLUTE_PATH} )
+ message("")
+ message("You should try:")
+ message("")
+ message(" git clone https://github.com/dtschump/gmic.git " ${TARGET_CLONE_DIR}/gmic )
+ message("")
+ message(FATAL_ERROR "\nG'MIC repository not found")
+endif()
+
+#
+# Look for CImg.h and gmic_stdlib.h
+#
+set(GMIC_FILES CImg.h gmic_stdlib.h)
+foreach(F ${GMIC_FILES})
+ if(EXISTS ${GMIC_ABSOLUTE_PATH}/${F})
+ message("Found " ${GMIC_PATH}/${F})
+ else()
+ message(${F} " not found")
+ execute_process(COMMAND make -C ${GMIC_ABSOLUTE_PATH} ${F})
+ if(EXISTS ${GMIC_ABSOLUTE_PATH}/${F})
+ message("Found " ${GMIC_PATH}/${F})
+ else()
+ message(FATAL_ERROR "\nCannot obtain " ${GMIC_PATH}/${F})
+ endif()
+ endif()
+endforeach()
+
+#
+# Ensure that gmic and CImg are the same version
+#
+file(STRINGS ${GMIC_ABSOLUTE_PATH}/CImg.h CIMG_VERSION REGEX "cimg_version ")
+string(REGEX REPLACE ".*cimg_version " "" CIMG_VERSION ${CIMG_VERSION})
+message("CImg version is [" ${CIMG_VERSION} "]")
+
+file(STRINGS ${GMIC_ABSOLUTE_PATH}/gmic.h GMIC_VERSION REGEX "gmic_version ")
+string(REGEX REPLACE ".*gmic_version " "" GMIC_VERSION ${GMIC_VERSION})
+message("G'MIC version is [" ${GMIC_VERSION} "]")
+
+if (NOT(${GMIC_VERSION} EQUAL ${CIMG_VERSION}))
+ message(FATAL_ERROR "\nVersion numbers of files 'gmic.h' (" ${GMIC_VERSION} ") and 'CImg.h' ("${CIMG_VERSION} ") mismatch")
+endif()
+
+
+
+
+
+option(PRERELEASE "Set to ON makes this a prelease build")
+if (${PRERELEASE})
+ string(TIMESTAMP PRERELEASE_DATE %y%m%d)
+ message("Prelease date is " ${PRERELEASE_DATE})
+ add_definitions(-Dgmic_prelease=${PRERELEASE_DATE})
+endif()
+
+option(DRMINGW "Set to ON enables the drmingw debugger.")
+if (${DRMINGW})
+ add_definitions(-DDRMINGW)
+endif()
+
+
+
+# Required packages
+
+#
+# Qt5
+#
+find_package(Qt5 ${MIN_QT_VERSION}
+ REQUIRED COMPONENTS
+ Core
+ Gui
+ Widgets
+ Network
+)
+
+#
+# For the translations
+#
+find_package(Qt5LinguistTools REQUIRED)
+
+#
+# PNG
+#
+find_package(PNG REQUIRED)
+add_definitions(${PNG_DEFINITIONS})
+add_definitions(-Dcimg_use_png)
+include_directories(SYSTEM ${PNG_INCLUDE_DIR})
+if (APPLE)
+ # this is not added correctly on OSX -- see http://forum.kde.org/viewtopic.php?f=139&t=101867&p=221242#p221242
+ include_directories(SYSTEM ${PNG_INCLUDE_DIR})
+endif()
+
+#
+# ZLIB
+#
+find_package(ZLIB REQUIRED)
+add_definitions(-Dcimg_use_zlib)
+include_directories(SYSTEM ${ZLIB_INCLUDE_DIRS} )
+
+#
+# FFTW3
+#
+find_package(FFTW3 REQUIRED)
+add_definitions(-Dcimg_use_fftw3 )
+add_definitions(-Dcimg_use_fftw3_singlethread )
+include_directories(${FFTW3_INCLUDE_DIR})
+
+#
+# CURL
+#
+find_package(CURL)
+if (CURL_FOUND)
+ add_definitions(-Dcimg_use_curl)
+ include_directories(SYSTEM ${CURL_INCLUDE_DIRS} )
+endif()
+
+#
+# Test for OpenMP
+#
+find_package(OpenMP)
+set_package_properties(OpenMP PROPERTIES
+ DESCRIPTION "A low-level parallel execution library"
+ URL "http://openmp.org/wp/"
+ TYPE OPTIONAL
+ PURPOSE "Optionally used by gmic-qt")
+
+if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8.3 AND OPENMP_FOUND)
+ message("G'Mic: using OpenMP")
+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ add_definitions(-Dcimg_use_openmp)
+ add_definitions(-fopenmp)
+endif()
+
+
+#
+# add all defines
+#
+
+set(gmic_qt_LIBRARIES
+ Qt5::Core
+ Qt5::Widgets
+ Qt5::Gui
+ Qt5::Network
+ ${PNG_LIBRARIES}
+ ${FFTW3_LIBRARIES}
+ ${ZLIB_LIBRARIES}
+)
+
+if (CURL_FOUND)
+ set(gmic_qt_LIBRARIES
+ ${gmic_qt_LIBRARIES}
+ ${CURL_LIBRARIES}
+ )
+endif()
+
+add_definitions(-Dgmic_build)
+add_definitions(-Dcimg_use_abort)
+add_definitions(-Dgmic_is_parallel)
+add_definitions(-Dcimg_use_rng)
+add_definitions(-Dgmic_gui)
+add_definitions(-Dcimg_use_abort)
+add_definitions(-Dcimg_appname=\"gmic\")
+
+if (UNIX AND NOT APPLE)
+ add_definitions(-Dcimg_display=1)
+ add_definitions(-D_IS_LINUX_)
+ add_definitions(-Dcimg_use_vt100)
+ add_definitions(-D_IS_UNIX_)
+ find_package(X11)
+ set(gmic_qt_LIBRARIES
+ ${gmic_qt_LIBRARIES}
+ ${X11_LIBRARIES} # XXX: Search for X11: Wayland is coming!
+ )
+
+endif()
+
+if (APPLE)
+ add_definitions(-Dcimg_display=0)
+ add_definitions(-D_IS_MACOS_)
+ set(CMAKE_MACOSX_RPATH 1)
+ set(BUILD_WITH_INSTALL_RPATH 1)
+ add_definitions(-mmacosx-version-min=10.9 -Wno-macro-redefined -Wno-deprecated-register)
+endif()
+
+if (WIN32)
+ add_definitions(-Dcimg_display=2)
+ add_definitions(-DPSAPI_VERSION=1)
+ set(gmic_qt_LIBRARIES
+ ${gmic_qt_LIBRARIES}
+ pthread psapi gdi32
+ )
+endif()
+
+if (NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE "Release")
+endif()
+
+if (CMAKE_BUILD_TYPE STREQUAL "Debug")
+ message("Debug build")
+ add_definitions(-D_GMIC_QT_DEBUG_)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
+elseif (CMAKE_BUILD_TYPE STREQUAL "Release")
+ message("Release build")
+ add_definitions(-DQT_NO_DEBUG_OUTPUT)
+ string(REPLACE "-O2" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+ string(REPLACE "-O3" "" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast")
+elseif (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
+ message("Release build with debug info")
+ add_definitions(-DQT_NO_DEBUG_OUTPUT)
+ string(REPLACE "-O2" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
+ string(REPLACE "-O3" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
+ set_source_files_properties(${GMIC_PATH}/gmic.cpp PROPERTIES COMPILE_FLAGS "-Ofast")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -O2")
+else()
+ message(FATAL_ERROR "Build type not recognized (${CMAKE_BUILD_TYPE})")
+endif()
+
+include_directories(${CMAKE_SOURCE_DIR}/src ${GMIC_PATH})
+
+set (gmic_qt_SRCS
+
+ src/ClickableLabel.h
+ src/Common.h
+ src/OverrideCursor.h
+ src/DialogSettings.h
+ src/FilterParameters/AbstractParameter.h
+ src/FilterParameters/BoolParameter.h
+ src/FilterParameters/ButtonParameter.h
+ src/FilterParameters/ChoiceParameter.h
+ src/FilterParameters/ColorParameter.h
+ src/FilterParameters/ConstParameter.h
+ src/FilterParameters/FileParameter.h
+ src/FilterParameters/FilterParametersWidget.h
+ src/FilterParameters/FloatParameter.h
+ src/FilterParameters/FolderParameter.h
+ src/FilterParameters/IntParameter.h
+ src/FilterParameters/LinkParameter.h
+ src/FilterParameters/MultilineTextParameterWidget.h
+ src/FilterParameters/NoteParameter.h
+ src/FilterParameters/PointParameter.h
+ src/FilterParameters/SeparatorParameter.h
+ src/FilterParameters/TextParameter.h
+ src/FilterSelector/FiltersModel.h
+ src/FilterSelector/FiltersModelReader.h
+ src/FilterSelector/FiltersPresenter.h
+ src/FilterSelector/FiltersView/FiltersView.h
+ src/FilterSelector/FiltersView/TreeView.h
+ src/FilterSelector/FiltersVisibilityMap.h
+ src/FilterSyncRunner.h
+ src/FilterThread.h
+ src/Globals.h
+ src/gmic_qt.h
+ src/GmicStdlib.h
+ src/GmicProcessor.h
+ src/HeadlessProcessor.h
+ src/Host/host.h
+ src/HtmlTranslator.h
+ src/ImageConverter.h
+ src/ImageTools.h
+ src/InputOutputState.h
+ src/KeypointList.h
+ src/LayersExtentProxy.h
+ src/Logger.h
+ src/MainWindow.h
+ src/ParametersCache.h
+ src/PreviewMode.h
+ src/TimeLogger.h
+ src/Updater.h
+ src/Utils.h
+ src/FilterSelector/FiltersView/FilterTreeFolder.h
+ src/FilterSelector/FiltersView/FilterTreeItem.h
+ src/FilterSelector/FavesModel.h
+ src/FilterSelector/FavesModelReader.h
+ src/FilterSelector/FiltersView/FilterTreeAbstractItem.h
+ src/FilterSelector/FiltersView/FilterTreeItemDelegate.h
+ src/FilterSelector/FavesModelWriter.h
+ src/Widgets/ProgressInfoWidget.h
+ src/Widgets/PreviewWidget.h
+ src/Widgets/InOutPanel.h
+ src/Widgets/ZoomLevelSelector.h
+ src/Widgets/SearchFieldWidget.h
+ src/Widgets/LanguageSelectionWidget.h
+ src/Widgets/ProgressInfoWindow.h
+
+ ${GMIC_PATH}/gmic.h
+ ${GMIC_PATH}/CImg.h
+ ${GMIC_PATH}/gmic_stdlib.h
+
+ src/ClickableLabel.cpp
+ src/Common.cpp
+ src/OverrideCursor.cpp
+ src/DialogSettings.cpp
+ src/FilterParameters/AbstractParameter.cpp
+ src/FilterParameters/BoolParameter.cpp
+ src/FilterParameters/ButtonParameter.cpp
+ src/FilterParameters/ChoiceParameter.cpp
+ src/FilterParameters/ColorParameter.cpp
+ src/FilterParameters/ConstParameter.cpp
+ src/FilterParameters/FileParameter.cpp
+ src/FilterParameters/FilterParametersWidget.cpp
+ src/FilterParameters/FloatParameter.cpp
+ src/FilterParameters/FolderParameter.cpp
+ src/FilterParameters/IntParameter.cpp
+ src/FilterParameters/LinkParameter.cpp
+ src/FilterParameters/MultilineTextParameterWidget.cpp
+ src/FilterParameters/NoteParameter.cpp
+ src/FilterParameters/PointParameter.cpp
+ src/FilterParameters/SeparatorParameter.cpp
+ src/FilterParameters/TextParameter.cpp
+ src/FilterSelector/FiltersModel.cpp
+ src/FilterSelector/FiltersModelReader.cpp
+ src/FilterSelector/FiltersPresenter.cpp
+ src/FilterSelector/FiltersView/FiltersView.cpp
+ src/FilterSelector/FiltersView/TreeView.cpp
+ src/FilterSelector/FiltersVisibilityMap.cpp
+ src/FilterSyncRunner.cpp
+ src/FilterThread.cpp
+ src/gmic_qt.cpp
+ src/Globals.cpp
+ src/GmicStdlib.cpp
+ src/GmicProcessor.cpp
+ src/HeadlessProcessor.cpp
+ src/HtmlTranslator.cpp
+ src/ImageConverter.cpp
+ src/ImageTools.cpp
+ src/InputOutputState.cpp
+ src/KeypointList.cpp
+ src/LayersExtentProxy.cpp
+ src/Logger.cpp
+ src/MainWindow.cpp
+ src/ParametersCache.cpp
+ src/PreviewMode.cpp
+ src/TimeLogger.cpp
+ src/Updater.cpp
+ src/Utils.cpp
+ src/FilterSelector/FiltersView/FilterTreeItem.cpp
+ src/FilterSelector/FiltersView/FilterTreeFolder.cpp
+ src/FilterSelector/FavesModel.cpp
+ src/FilterSelector/FavesModelReader.cpp
+ src/FilterSelector/FiltersView/FilterTreeAbstractItem.cpp
+ src/FilterSelector/FiltersView/FilterTreeItemDelegate.cpp
+ src/FilterSelector/FavesModelWriter.cpp
+ src/Widgets/PreviewWidget.cpp
+ src/Widgets/ProgressInfoWidget.cpp
+ src/Widgets/InOutPanel.cpp
+ src/Widgets/ZoomLevelSelector.cpp
+ src/Widgets/SearchFieldWidget.cpp
+ src/Widgets/LanguageSelectionWidget.cpp
+ src/Widgets/ProgressInfoWindow.cpp
+)
+
+if(ENABLE_DYNAMIC_LINKING)
+ set(CMAKE_SKIP_RPATH TRUE)
+ set(gmic_qt_LIBRARIES
+ ${gmic_qt_LIBRARIES}
+ "gmic"
+ )
+ link_directories(${GMIC_LIB_PATH})
+else(ENABLE_DYNAMIC_LINKING)
+ set(gmic_qt_SRCS
+ ${gmic_qt_SRCS}
+ ${GMIC_PATH}/gmic.cpp
+ )
+endif(ENABLE_DYNAMIC_LINKING)
+
+qt5_wrap_ui(gmic_qt_SRCS
+ ui/dialogsettings.ui
+ ui/filtersview.ui
+ ui/headlessprogressdialog.ui
+ ui/inoutpanel.ui
+ ui/languageselectionwidget.ui
+ ui/mainwindow.ui
+ ui/multilinetextparameterwidget.ui
+ ui/progressinfowidget.ui
+ ui/progressinfowindow.ui
+ ui/SearchFieldWidget.ui
+ ui/zoomlevelselector.ui
+)
+
+# qt5_create_translation(
+# qmic_qt_QM
+# ${CMAKE_SOURCE_DIR}/translations
+# ${gmic_qt_SRCS}
+# translations/cs.ts
+# translations/de.ts
+# translations/es.ts
+# translations/fr.ts
+# translations/id.ts
+# translations/it.ts
+# translations/nl.ts
+# translations/pl.ts
+# translations/pt.ts
+# translations/ru.ts
+# translations/ua.ts
+# translations/ja.ts
+# translations/zh.ts
+# )
+
+qt5_add_translation(gmic_qt_QM
+ translations/cs.ts
+ translations/de.ts
+ translations/es.ts
+ translations/fr.ts
+ translations/id.ts
+ translations/it.ts
+ translations/nl.ts
+ translations/pl.ts
+ translations/pt.ts
+ translations/ru.ts
+ translations/ua.ts
+ translations/ja.ts
+ translations/zh.ts
+ )
+
+install(FILES ${gmic_qt_QM} DESTINATION ${CMAKE_SOURCE_DIR}/translations)
+
+set(gmic_qt_QRC
+ gmic_qt.qrc
+ translations.qrc
+)
+
+if (${GMIC_QT_HOST} STREQUAL "gimp")
+
+ execute_process(COMMAND gimptool-2.0 --libs-noui OUTPUT_VARIABLE GIMP2_LIBRARIES OUTPUT_STRIP_TRAILING_WHITESPACE)
+ execute_process(COMMAND gimptool-2.0 --cflags-noui OUTPUT_VARIABLE GIMP2_INCLUDE_DIRS OUTPUT_STRIP_TRAILING_WHITESPACE)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GIMP2_INCLUDE_DIRS}")
+
+ set (gmic_qt_SRCS ${gmic_qt_SRCS} src/Host/Gimp/host_gimp.cpp)
+ add_definitions(-DGMIC_HOST=gimp_qt -DGIMP_DISABLE_DEPRECATED)
+ add_executable(gmic_gimp_qt ${gmic_qt_SRCS} ${gmic_qt_QRC} ${qmic_qt_QM})
+ target_link_libraries(
+ gmic_gimp_qt
+ PRIVATE
+ ${GIMP2_LIBRARIES}
+ ${gmic_qt_LIBRARIES}
+ )
+
+elseif (${GMIC_QT_HOST} STREQUAL "krita")
+
+ set (gmic_qt_SRCS ${gmic_qt_SRCS} src/Host/Krita/host_krita.cpp)
+ add_definitions(-DGMIC_HOST=krita)
+ add_executable(gmic_krita_qt ${gmic_qt_SRCS} ${gmic_qt_QRC} ${qmic_qt_QM})
+ target_link_libraries(
+ gmic_krita_qt
+ PRIVATE
+ ${gmic_qt_LIBRARIES}
+ )
+
+elseif (${GMIC_QT_HOST} STREQUAL "none")
+
+ set (gmic_qt_SRCS ${gmic_qt_SRCS} src/Host/None/host_none.cpp src/Host/None/ImageDialog.h src/Host/None/ImageDialog.cpp)
+ add_definitions(-DGMIC_HOST=standalone)
+ add_executable(gmic_qt ${gmic_qt_SRCS} ${gmic_qt_QRC} ${qmic_qt_QM})
+ target_link_libraries(gmic_qt PRIVATE ${gmic_qt_LIBRARIES})
+
+else()
+ message(FATAL_ERROR "GMIC_QT_HOST is not defined as gimp, krita or none")
+endif()
+
+feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
Index: gmic-2.3.0/gmic-qt/cmake/modules/COPYING-CMAKE-SCRIPTS
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gmic-2.3.0/gmic-qt/cmake/modules/COPYING-CMAKE-SCRIPTS 2018-06-20 15:30:24.000000000 +0200
@@ -0,0 +1,22 @@
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: gmic-2.3.0/gmic-qt/cmake/modules/FindFFTW3.cmake
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gmic-2.3.0/gmic-qt/cmake/modules/FindFFTW3.cmake 2018-06-20 15:30:24.000000000 +0200
@@ -0,0 +1,59 @@
+ # - Try to find the Fftw3 Library
+# Once done this will define
+#
+# FFTW3_FOUND - system has fftw3
+# FFTW3_INCLUDE_DIRS - the fftw3 include directories
+# FFTW3_LIBRARIES - the libraries needed to use fftw3
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+#
+if (NOT WIN32)
+include(LibFindMacros)
+libfind_pkg_check_modules(FFTW3_PKGCONF fftw3>=3.2)
+
+find_path(FFTW3_INCLUDE_DIR
+ NAMES fftw3.h
+ HINTS ${FFTW3_PKGCONF_INCLUDE_DIRS} ${FFTW3_PKGCONF_INCLUDEDIR}
+ PATH_SUFFIXES fftw3
+)
+
+find_library(FFTW3_LIBRARY
+ NAMES fftw3
+ HINTS ${FFTW3_PKGCONF_LIBRARY_DIRS} ${FFTW3_PKGCONF_LIBDIR}
+)
+
+set(FFTW3_PROCESS_LIBS FFTW3_LIBRARY)
+set(FFTW3_PROCESS_INCLUDES FFTW3_INCLUDE_DIR)
+libfind_process(FFTW3)
+
+if(FFTW3_FOUND)
+ message(STATUS "FFTW Found Version: " ${FFTW_VERSION})
+endif()
+
+else()
+
+# TODO: Maybe use fftw3/FFTW3Config.cmake?
+
+find_path(FFTW3_INCLUDE_DIR
+ NAMES fftw3.h
+)
+
+
+find_library(
+ FFTW3_LIBRARY
+ NAMES libfftw3 libfftw3-3 libfftw3f-3 libfftw3l-3
+ DOC "Libraries to link against for FFT Support")
+
+if (FFTW3_LIBRARY)
+ set(FFTW3_LIBRARY_DIR ${FFTW3_LIBRARY})
+endif()
+
+set (FFTW3_LIBRARIES ${FFTW3_LIBRARY})
+
+if(FFTW3_INCLUDE_DIR AND FFTW3_LIBRARY_DIR)
+ set (FFTW3_FOUND true)
+ message(STATUS "Correctly found FFTW3")
+else()
+ message(STATUS "Could not find FFTW3")
+endif()
+endif()
Index: gmic-2.3.0/gmic-qt/cmake/modules/LibFindMacros.cmake
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gmic-2.3.0/gmic-qt/cmake/modules/LibFindMacros.cmake 2018-06-20 15:30:24.000000000 +0200
@@ -0,0 +1,112 @@
+# Version 1.0 (2013-04-12)
+# Public Domain, originally written by Lasse Kärkkäinen <tronic@zi.fi>
+# Published at http://www.cmake.org/Wiki/CMake:How_To_Find_Libraries
+
+# If you improve the script, please modify the forementioned wiki page because
+# I no longer maintain my scripts (hosted as static files at zi.fi). Feel free
+# to remove this entire header if you use real version control instead.
+
+# Changelog:
+# 2013-04-12 Added version number (1.0) and this header, no other changes
+# 2009-10-08 Originally published
+
+
+# Works the same as find_package, but forwards the "REQUIRED" and "QUIET" arguments
+# used for the current package. For this to work, the first parameter must be the
+# prefix of the current package, then the prefix of the new package etc, which are
+# passed to find_package.
+macro (libfind_package PREFIX)
+ set (LIBFIND_PACKAGE_ARGS ${ARGN})
+ if (${PREFIX}_FIND_QUIETLY)
+ set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} QUIET)
+ endif ()
+ if (${PREFIX}_FIND_REQUIRED)
+ set (LIBFIND_PACKAGE_ARGS ${LIBFIND_PACKAGE_ARGS} REQUIRED)
+ endif ()
+ find_package(${LIBFIND_PACKAGE_ARGS})
+endmacro (libfind_package)
+
+# CMake developers made the UsePkgConfig system deprecated in the same release (2.6)
+# where they added pkg_check_modules. Consequently I need to support both in my scripts
+# to avoid those deprecated warnings. Here's a helper that does just that.
+# Works identically to pkg_check_modules, except that no checks are needed prior to use.
+macro (libfind_pkg_check_modules PREFIX PKGNAME)
+ if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
+ include(UsePkgConfig)
+ pkgconfig(${PKGNAME} ${PREFIX}_INCLUDE_DIRS ${PREFIX}_LIBRARY_DIRS ${PREFIX}_LDFLAGS ${PREFIX}_CFLAGS)
+ else ()
+ find_package(PkgConfig)
+ if (PKG_CONFIG_FOUND)
+ pkg_check_modules(${PREFIX} QUIET ${PKGNAME})
+ endif ()
+ endif ()
+endmacro (libfind_pkg_check_modules)
+
+# Do the final processing once the paths have been detected.
+# If include dirs are needed, ${PREFIX}_PROCESS_INCLUDES should be set to contain
+# all the variables, each of which contain one include directory.
+# Ditto for ${PREFIX}_PROCESS_LIBS and library files.
+# Will set ${PREFIX}_FOUND, ${PREFIX}_INCLUDE_DIRS and ${PREFIX}_LIBRARIES.
+# Also handles errors in case library detection was required, etc.
+macro (libfind_process PREFIX)
+ # Skip processing if already processed during this run
+ if (NOT ${PREFIX}_FOUND)
+ # Start with the assumption that the library was found
+ set (${PREFIX}_FOUND TRUE)
+
+ # Process all includes and set _FOUND to false if any are missing
+ foreach (i ${${PREFIX}_PROCESS_INCLUDES})
+ if (${i})
+ set (${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIRS} ${${i}})
+ mark_as_advanced(${i})
+ else ()
+ set (${PREFIX}_FOUND FALSE)
+ endif ()
+ endforeach (i)
+
+ # Process all libraries and set _FOUND to false if any are missing
+ foreach (i ${${PREFIX}_PROCESS_LIBS})
+ if (${i})
+ set (${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARIES} ${${i}})
+ mark_as_advanced(${i})
+ else ()
+ set (${PREFIX}_FOUND FALSE)
+ endif ()
+ endforeach (i)
+
+ # Print message and/or exit on fatal error
+ if (${PREFIX}_FOUND)
+ if (NOT ${PREFIX}_FIND_QUIETLY)
+ message (STATUS "Found ${PREFIX} ${${PREFIX}_VERSION}")
+ endif ()
+ else ()
+ if (${PREFIX}_FIND_REQUIRED)
+ foreach (i ${${PREFIX}_PROCESS_INCLUDES} ${${PREFIX}_PROCESS_LIBS})
+ message("${i}=${${i}}")
+ endforeach (i)
+ message (FATAL_ERROR "Required library ${PREFIX} NOT FOUND.\nInstall the library (dev version) and try again. If the library is already installed, use ccmake to set the missing variables manually.")
+ endif ()
+ endif ()
+ endif ()
+endmacro (libfind_process)
+
+macro(libfind_library PREFIX basename)
+ set(TMP "")
+ if(MSVC80)
+ set(TMP -vc80)
+ endif()
+ if(MSVC90)
+ set(TMP -vc90)
+ endif()
+ set(${PREFIX}_LIBNAMES ${basename}${TMP})
+ if(${ARGC} GREATER 2)
+ set(${PREFIX}_LIBNAMES ${basename}${TMP}-${ARGV2})
+ string(REGEX REPLACE "\\." "_" TMP ${${PREFIX}_LIBNAMES})
+ set(${PREFIX}_LIBNAMES ${${PREFIX}_LIBNAMES} ${TMP})
+ endif()
+ find_library(${PREFIX}_LIBRARY
+ NAMES ${${PREFIX}_LIBNAMES}
+ PATHS ${${PREFIX}_PKGCONF_LIBRARY_DIRS}
+ )
+endmacro(libfind_library)
+

View File

@ -0,0 +1,12 @@
Index: gmic-2.3.0/zart/src/MainWindow.cpp
===================================================================
--- gmic-2.3.0.orig/zart/src/MainWindow.cpp 2018-06-21 10:21:03.000000000 +0200
+++ gmic-2.3.0/zart/src/MainWindow.cpp 2018-06-21 15:57:19.706747707 +0200
@@ -72,6 +72,7 @@
#include <QGridLayout>
#include <QMessageBox>
#include <QTreeWidgetItemIterator>
+#include <QButtonGroup>
#include "Common.h"
#include "DialogAbout.h"

View File

@ -1,42 +0,0 @@
From eb84a3c567fe42f3e8d409d765450f4a436020b5 Mon Sep 17 00:00:00 2001
From: Andreas Schneider <asn@cryptomilk.org>
Date: Thu, 3 May 2018 22:19:38 +0200
Subject: [PATCH] Use HiDPI icons
---
src/gmic_qt.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/gmic_qt.cpp b/src/gmic_qt.cpp
index 53b86fa..653615f 100644
--- a/src/gmic_qt.cpp
+++ b/src/gmic_qt.cpp
@@ -64,6 +64,7 @@ int launchPlugin()
#ifdef _IS_WINDOWS_
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);
#endif
+ QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
QApplication app(dummy_argc, dummy_argv);
app.setWindowIcon(QIcon(":resources/gmic_hat.png"));
@@ -99,6 +100,8 @@ int launchPluginHeadlessUsingLastParameters()
#ifdef _IS_WINDOWS_
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);
#endif
+ QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
+
QApplication app(dummy_argc, dummy_argv);
app.setWindowIcon(QIcon(":resources/gmic_hat.png"));
QCoreApplication::setOrganizationName(GMIC_QT_ORGANISATION_NAME);
@@ -123,6 +126,8 @@ int launchPluginHeadless(const char * command, GmicQt::InputMode input, GmicQt::
#ifdef _IS_WINDOWS_
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX | SEM_NOOPENFILEERRORBOX);
#endif
+ QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
+
QCoreApplication app(dummy_argc, dummy_argv);
QCoreApplication::setOrganizationName(GMIC_QT_ORGANISATION_NAME);
QCoreApplication::setOrganizationDomain(GMIC_QT_ORGANISATION_DOMAIN);
--
2.16.3

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:13bb8e3207af1e6aac0b3c2694e8bb212bb14e574c5fa9d6d2899966d1ee835f
size 519569

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Thu Jun 21 12:47:34 UTC 2018 - asn@cryptomilk.org
- Update to gmic-2.3.0
* https://discuss.pixls.us/t/release-of-gmic-2-3-0/
- Remove gmic-qt-2.2.2-Use-HiDPI-icons.patch
- Added gmic-2.3.0-add-cmake-for-qt.patch
-------------------------------------------------------------------
Thu May 3 17:33:29 UTC 2018 - asn@cryptomilk.org

View File

@ -23,23 +23,18 @@
#define __builder ninja
Name: gmic
Version: 2.2.2
Version: 2.3.0
Release: 0
URL: https://gmic.eu
Source0: https://github.com/dtschump/gmic/archive/v.%{version}/gmic-%{version}.tar.gz
Source1: https://github.com/c-koi/gmic-qt/archive/v.%{version}/gmic-qt-%{version}.tar.gz
Source2: https://github.com/dtschump/CImg/archive/v.%{version}/cimg-%{version}.tar.gz
# GIT archive snapshot of https://github.com/c-koi/zart
Source3: zart-%{zart_version}.tar.gz
# Copy of http://gmic.eu/gmic_stdlib.h
Source4: https://gmic.eu/gmic_stdlib.h
Source0: https://gmic.eu/files/source/gmic_%{version}.tar.gz
Source10: http://gmic.eu/gmic_reference.pdf
Patch0: gmic-qt-2.2.2-Use-HiDPI-icons.patch
Patch0: gmic-2.3.0-add-cmake-for-qt.patch
Patch1: gmic-2.3.0-zart-qbuttongroup.patch
Summary: GREYC's Magick for Image Computing (denoise and others)
License: CECILL v.2.0 (GPL compatible)
License: CECILL-2.1
Group: Productivity/Graphics/Bitmap Editors
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -58,6 +53,7 @@ BuildRequires: libstdc++-devel
BuildRequires: libtiff-devel
BuildRequires: ninja
BuildRequires: opencv-devel
BuildRequires: pkgconfig(Qt5Widgets)
%description
G'MIC is an open and full-featured framework for image processing, providing
@ -121,6 +117,7 @@ uses the gmic functionality provided by the gmic library.
%package -n gimp-plugin-gmic
Summary: GMIC plugin for gimp
Group: Productivity/Graphics/Bitmap Editors
License: GPL-3.0-or-later
Requires: gimp
Obsoletes: gmic-gimp
Provides: gmic-gimp
@ -132,6 +129,7 @@ for interactive use in gimp.
%package -n krita-plugin-gmic
Summary: GMIC plugin for krita
Group: Productivity/Graphics/Bitmap Editors
License: GPL-3.0-or-later
Requires: krita
%description -n krita-plugin-gmic
@ -140,7 +138,7 @@ This is a plugin for krita to provide gmic features.
%package doc
Summary: GMIC reference documentation
Group: Productivity/Graphics/Bitmap editors
License: GFDL-v1.3
License: GFDL-1.3-or-later
%description doc
This is the reference documentation for G'MIC in .pdf format.
@ -156,19 +154,12 @@ manipulations on a video stream acquired from a webcam. In other words, ZArt is
a GUI for G'MIC real-time manipulations on the output of a webcam.
%prep
%setup -a 1 -a 2 -a 3 -n %{name}-v.%{version}
ln -s gmic-qt-v.%{version} gmic-qt
ln -s CImg-v.%{version} cimg
cp cimg/CImg.h src/CImg.h
cp %{SOURCE4} src/gmic_stdlib.h
%setup
%patch0 -p1
%patch1 -p1
cp %{SOURCE10} .
pushd gmic-qt
%patch0 -p1
popd
%build
# Build gmic
%cmake \
@ -185,8 +176,8 @@ ln -s ../build/libgmic.so src/libgmic.so
pushd gmic-qt
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DGMIC_PATH=%{_builddir}/%{name}-v.%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-v.%{version}/build \
-DGMIC_PATH=%{_builddir}/%{name}-%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-%{version}/build \
-DGMIC_QT_HOST=gimp \
|| cat CMakeFiles/CMakeError.log
%make_jobs
@ -194,8 +185,8 @@ cd ..
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DGMIC_PATH=%{_builddir}/%{name}-v.%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-v.%{version}/build \
-DGMIC_PATH=%{_builddir}/%{name}-%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-%{version}/build \
-DGMIC_QT_HOST=krita \
|| cat CMakeFiles/CMakeError.log
%make_jobs
@ -203,8 +194,8 @@ cd ..
%cmake \
-DENABLE_DYNAMIC_LINKING=ON \
-DGMIC_PATH=%{_builddir}/%{name}-v.%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-v.%{version}/build \
-DGMIC_PATH=%{_builddir}/%{name}-%{version}/src \
-DGMIC_LIB_PATH=%{_builddir}/%{name}-%{version}/build \
-DGMIC_QT_HOST=none \
|| cat CMakeFiles/CMakeError.log
%make_jobs
@ -212,7 +203,7 @@ popd
# Build zart
pushd zart
qmake-qt5 CONFIG+=release GMIC_DYNAMIC_LINKING=on GMIC_PATH=%{_builddir}/%{name}-v.%{version}/src zart.pro
qmake-qt5 CONFIG+=release GMIC_DYNAMIC_LINKING=on GMIC_PATH=%{_builddir}/%{name}-%{version}/src zart.pro
make %{?_smp_mflags}
popd
@ -250,7 +241,9 @@ popd
%files
%defattr(-,root,root)
%doc README COPYING
%license COPYING
#license gmic-qt/COPYING
%doc README gmic-qt/README.md
%{_bindir}/gmic
%{_bindir}/gmic_qt
%{_mandir}/man1/gmic.1*
@ -262,20 +255,26 @@ popd
%files zart
%defattr(-,root,root)
%doc zart/README zart/LICENSE
#license zart/LICENSE
%doc zart/README
%{_bindir}/zart
%files -n gimp-plugin-gmic
%defattr(-,root,root)
#license gmic-qt/COPYING
%doc gmic-qt/README.md
%{_gimpplugindir}/gmic_gimp_qt
%{_gimpplugindir}/gmic_film_cluts.gmz
%files -n krita-plugin-gmic
%defattr(-,root,root)
#license gmic-qt/COPYING
%doc gmic-qt/README.md
%{_bindir}/gmic_krita_qt
%files -n libgmic1
%defattr(-,root,root)
%license COPYING
%{_libdir}/libgmic.so.*
%files -n libgmic-devel

3
gmic_2.3.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8864abe38aaa65520a0992ee9b3f2c1d3bece5fd8ce069e93c7567f452efc375
size 3659117

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1c3617895b4436aadcfdd934829de3b491b047eab6dd94e353cae9b5af7a7288
size 285407