From 23b21bf9fa4cbed899ba2b57752acb05ca5af564 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath Date: Mon, 1 Aug 2022 01:23:29 +0530 Subject: [PATCH] shotcut: Add package --- .../0001-add-windeploy-option.patch | 65 ++++++++++++++++++ mingw-w64-shotcut/PKGBUILD | 68 +++++++++++++++++++ 2 files changed, 133 insertions(+) create mode 100644 mingw-w64-shotcut/0001-add-windeploy-option.patch create mode 100644 mingw-w64-shotcut/PKGBUILD diff --git a/mingw-w64-shotcut/0001-add-windeploy-option.patch b/mingw-w64-shotcut/0001-add-windeploy-option.patch new file mode 100644 index 0000000000..84471b7652 --- /dev/null +++ b/mingw-w64-shotcut/0001-add-windeploy-option.patch @@ -0,0 +1,65 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index aff5a80..fcf7cbd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -15,6 +15,10 @@ project(shotcut + LANGUAGES CXX + ) + ++if(WIN32) ++ option(WINDOWS_DEPLOY "Install exes/libs directly to prefix (no subdir /bin)" ON) ++endif() ++ + include(FeatureSummary) + + set(CMAKE_CXX_STANDARD 11) +diff --git a/CuteLogger/CMakeLists.txt b/CuteLogger/CMakeLists.txt +index 03073f6..a92a68f 100644 +--- a/CuteLogger/CMakeLists.txt ++++ b/CuteLogger/CMakeLists.txt +@@ -39,4 +39,12 @@ + + ADD_LIBRARY(${library_target} SHARED ${sources} ${includes}) + TARGET_LINK_LIBRARIES(${library_target} Qt5::Core) +-INSTALL(TARGETS ${library_target} DESTINATION lib) ++IF(WINDOWS_DEPLOY) ++ INSTALL(TARGETS ${library_target} DESTINATION ${CMAKE_INSTALL_LIBDIR}) ++ELSE() ++ INSTALL(TARGETS ${library_target} ++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++) ++ENDIF(WINDOWS_DEPLOY) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index e210472..68c81b7 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -257,7 +257,13 @@ if(WIN32) + target_link_directories(shotcut PRIVATE ${CMAKE_SOURCE_DIR}/drmingw/x64/lib) + target_link_libraries(shotcut PRIVATE debug exchndl) + +- install(TARGETS shotcut RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}) ++ if(WINDOWS_DEPLOY) ++ install(TARGETS shotcut RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}) ++ else() ++ target_compile_definitions(shotcut PRIVATE NODEPLOY) ++ install(TARGETS shotcut RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) ++ endif() ++ + install(DIRECTORY qml DESTINATION ${CMAKE_INSTALL_PREFIX}/share/shotcut/) + endif() + +diff --git a/src/qmltypes/qmlapplication.cpp b/src/qmltypes/qmlapplication.cpp +index 067bd1d..cfed004 100644 +--- a/src/qmltypes/qmlapplication.cpp ++++ b/src/qmltypes/qmlapplication.cpp +@@ -230,7 +230,7 @@ QDir QmlApplication::dataDir() + dir.cdUp(); + dir.cd("Resources"); + #else +-#if defined(Q_OS_UNIX) ++#if defined(Q_OS_UNIX) || (defined(Q_OS_WIN) && defined(NODEPLOY)) + dir.cdUp(); + #endif + dir.cd("share"); diff --git a/mingw-w64-shotcut/PKGBUILD b/mingw-w64-shotcut/PKGBUILD new file mode 100644 index 0000000000..ab7b3cbfa0 --- /dev/null +++ b/mingw-w64-shotcut/PKGBUILD @@ -0,0 +1,68 @@ +# Maintainer: Biswapriyo Nath + +_realname=shotcut +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=22.06.23 +pkgrel=1 +pkgdesc='Cross-platform Qt based Video Editor (mingw-w64)' +arch=('any') +mingw_arch=('mingw32' 'mingw64' 'ucrt64') +url='https://www.shotcut.org/' +license=('spdx:GPL-3.0-or-later') +depends=("${MINGW_PACKAGE_PREFIX}-ffmpeg" + "${MINGW_PACKAGE_PREFIX}-fftw" + "${MINGW_PACKAGE_PREFIX}-mlt" + "${MINGW_PACKAGE_PREFIX}-qt5-base" + "${MINGW_PACKAGE_PREFIX}-qt5-declarative" + "${MINGW_PACKAGE_PREFIX}-qt5-multimedia" + "${MINGW_PACKAGE_PREFIX}-qt5-quickcontrols2" + "${MINGW_PACKAGE_PREFIX}-qt5-websockets" + "${MINGW_PACKAGE_PREFIX}-qt5-winextras") +makedepends=("${MINGW_PACKAGE_PREFIX}-cc" + "${MINGW_PACKAGE_PREFIX}-cmake" + "${MINGW_PACKAGE_PREFIX}-ninja" + "${MINGW_PACKAGE_PREFIX}-qt5-tools") +source=("${_realname}-${pkgver}.tar.gz::https://github.com/mltframework/shotcut/archive/v${pkgver}.tar.gz" + 0001-add-windeploy-option.patch) +sha256sums=('78486651ec86ecfdf813d43d8e27c4ecf6869d0940c87e9a569160d604595d27' + 'b2bf11bd9be12268c8fb9f9fe4cee304c2190700597f56325611d8a7fe80dabc') + +prepare() { + cd "${srcdir}/${_realname}-${pkgver}" + + # https://github.com/mltframework/shotcut/pull/1309 + patch -p1 -i "${srcdir}/0001-add-windeploy-option.patch" +} + +build() { + cd "${srcdir}/${_realname}-${pkgver}" + mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" + + declare -a extra_config + if check_option "debug" "n"; then + extra_config+=("-DCMAKE_BUILD_TYPE=Release") + else + extra_config+=("-DCMAKE_BUILD_TYPE=Debug") + fi + + # https://github.com/mltframework/shotcut/issues/1275 + export CXXFLAGS+=" -DSHOTCUT_NOUPGRADE" + + MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \ + "${MINGW_PREFIX}"/bin/cmake.exe \ + -GNinja \ + -DCMAKE_INSTALL_PREFIX="${MINGW_PREFIX}" \ + "${extra_config[@]}" \ + -DSHOTCUT_VERSION=${pkgver} \ + -DWINDOWS_DEPLOY=OFF \ + ../${_realname}-${pkgver} + + "${MINGW_PREFIX}"/bin/cmake.exe --build . +} + +package() { + cd "${srcdir}/build-${MSYSTEM}" + DESTDIR="${pkgdir}" "${MINGW_PREFIX}"/bin/cmake.exe --install . + install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING" +}