shotcut: Add package

This commit is contained in:
Biswapriyo Nath
2022-08-01 01:23:29 +05:30
parent ea75e5e942
commit 23b21bf9fa
2 changed files with 133 additions and 0 deletions

View File

@@ -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");

View File

@@ -0,0 +1,68 @@
# Maintainer: Biswapriyo Nath <nathbappai@gmail.com>
_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"
}