backports/uranium: new aports
This commit is contained in:
parent
5c8d8ccd4e
commit
b7d9bea36e
3 changed files with 160 additions and 0 deletions
55
backports/uranium/APKBUILD
Normal file
55
backports/uranium/APKBUILD
Normal file
|
@ -0,0 +1,55 @@
|
|||
# Contributor: Anjandev Momi <anjan@momi.ca>
|
||||
# Maintainer: Anjandev Momi <anjan@momi.ca>
|
||||
pkgname=uranium
|
||||
pkgver=5.2.2
|
||||
pkgrel=1
|
||||
pkgdesc="A Python framework for building Desktop applications"
|
||||
url="https://github.com/Ultimaker/Uranium"
|
||||
arch="noarch !armhf !riscv64" # armhf: no py3-qt5, rv64: no py3-shapely
|
||||
license="LGPL-3.0-or-later"
|
||||
depends="
|
||||
py3-cryptography
|
||||
py3-numpy
|
||||
py3-qt6
|
||||
py3-scipy
|
||||
python3
|
||||
"
|
||||
# add cura-binary-data to makedepends when packaged
|
||||
makedepends="samurai cmake doxygen gettext-dev graphviz"
|
||||
checkdepends="py3-pytest py3-pytest-benchmark py3-twisted"
|
||||
options="!check" # checks broken from 5.x onward
|
||||
source="$pkgname-$pkgver.tar.gz::https://github.com/Ultimaker/Uranium/archive/refs/tags/$pkgver.tar.gz
|
||||
cmake.patch
|
||||
cmake-helpers.patch"
|
||||
builddir="$srcdir/Uranium-$pkgver"
|
||||
|
||||
build() {
|
||||
if [ "$CBUILD" != "$CHOST" ]; then
|
||||
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
|
||||
fi
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_INSTALL_LIBDIR=lib \
|
||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
||||
-DGETTEXT_MSGINIT_EXECUTABLE=msginit \
|
||||
-DCURA_BINARY_DATA_DIRECTORY=/usr/share/cura \
|
||||
$CMAKE_CROSSOPTS
|
||||
cmake --build build
|
||||
}
|
||||
|
||||
check() {
|
||||
# useless code style test with another dependency
|
||||
ctest -j $JOBS --output-on-failure -T Test
|
||||
}
|
||||
|
||||
package() {
|
||||
DESTDIR="$pkgdir" cmake --install build
|
||||
mkdir "$pkgdir"/usr/share/uranium/cmake
|
||||
mv "$pkgdir"/usr/share/cmake-*/Modules/* "$pkgdir"/usr/share/uranium/cmake/
|
||||
}
|
||||
|
||||
sha512sums="
|
||||
a9c222400022e05b5c42c72843b024204a58f5d233805bdffa610a2d9cbd1873773868b049aabbe52c6e859f235ca5428fcdfdbb86651f428483999060611e10 uranium-5.2.2.tar.gz
|
||||
196a04164de288f5bffeebb73ace9390059dcffebaf40395368f413d1af2e2c668d85dd4c761ad226732540d41598235c2c368152cc157d2e89445ce27738c9b cmake.patch
|
||||
aa185ce3592036f045e3386266015cc08443c2e4f9b9a4c03c77c13525af98d68eaa3360e8858e0561417a826c73bf8a2b209bcad91d2cc16cce32fb0231fcf8 cmake-helpers.patch
|
||||
"
|
89
backports/uranium/cmake-helpers.patch
Normal file
89
backports/uranium/cmake-helpers.patch
Normal file
|
@ -0,0 +1,89 @@
|
|||
--- /dev/null
|
||||
+++ ./cmake/UraniumPluginInstall.cmake
|
||||
@@ -0,0 +1,86 @@
|
||||
+# Copyright (c) 2022 Ultimaker B.V.
|
||||
+# UraniumPluginInstall.cmake is released under the terms of the LGPLv3 or higher.
|
||||
+
|
||||
+#
|
||||
+# This module detects all plugins that need to be installed and adds them using the CMake install() command.
|
||||
+# It detects all plugin folder in the path "plugins/*" where there's a "plugin.json" in it.
|
||||
+#
|
||||
+# Plugins can be configured to NOT BE INSTALLED via the variable "UM_NO_INSTALL_PLUGINS" as a list of string in the
|
||||
+# form of "a;b;c" or "a,b,c". By default all plugins will be installed.
|
||||
+#
|
||||
+
|
||||
+# Options or configuration variables
|
||||
+set(UM_NO_INSTALL_PLUGINS "" CACHE STRING "A list of plugins that should not be installed, separated with ';' or ','.")
|
||||
+
|
||||
+file(GLOB_RECURSE _plugin_json_list ${CMAKE_SOURCE_DIR}/plugins/*/plugin.json)
|
||||
+list(LENGTH _plugin_json_list _plugin_json_list_len)
|
||||
+
|
||||
+# Sort the lists alphabetically so we can handle cases like this:
|
||||
+# - plugins/my_plugin/plugin.json
|
||||
+# - plugins/my_plugin/my_module/plugin.json
|
||||
+# In this case, only "plugins/my_plugin" should be added via install().
|
||||
+set(_no_install_plugin_list ${UM_NO_INSTALL_PLUGINS})
|
||||
+# Sanitize the string so the comparison will be case-insensitive.
|
||||
+string(STRIP "${_no_install_plugin_list}" _no_install_plugin_list)
|
||||
+string(TOLOWER "${_no_install_plugin_list}" _no_install_plugin_list)
|
||||
+
|
||||
+# WORKAROUND counterpart of what's in cura-build.
|
||||
+string(REPLACE "," ";" _no_install_plugin_list "${_no_install_plugin_list}")
|
||||
+
|
||||
+list(LENGTH _no_install_plugin_list _no_install_plugin_list_len)
|
||||
+
|
||||
+if(_no_install_plugin_list_len GREATER 0)
|
||||
+ list(SORT _no_install_plugin_list)
|
||||
+endif()
|
||||
+if(_plugin_json_list_len GREATER 0)
|
||||
+ list(SORT _plugin_json_list)
|
||||
+endif()
|
||||
+
|
||||
+# Check all plugin directories and add them via install() if needed.
|
||||
+set(_install_plugin_list "")
|
||||
+foreach(_plugin_json_path ${_plugin_json_list})
|
||||
+ get_filename_component(_plugin_dir ${_plugin_json_path} DIRECTORY)
|
||||
+ file(RELATIVE_PATH _rel_plugin_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dir})
|
||||
+ get_filename_component(_plugin_dir_name ${_plugin_dir} NAME)
|
||||
+
|
||||
+ # Make plugin name comparison case-insensitive
|
||||
+ string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase)
|
||||
+
|
||||
+ # Check if this plugin needs to be skipped for installation
|
||||
+ set(_add_plugin ON) # Indicates if this plugin should be added to the build or not.
|
||||
+ set(_is_no_install_plugin OFF) # If this plugin will not be added, this indicates if it's because the plugin is
|
||||
+ # specified in the NO_INSTALL_PLUGINS list.
|
||||
+ if(_no_install_plugin_list)
|
||||
+ if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list)
|
||||
+ set(_add_plugin OFF)
|
||||
+ set(_is_no_install_plugin ON)
|
||||
+ endif()
|
||||
+ endif()
|
||||
+
|
||||
+ # Make sure this is not a subdirectory in a plugin that's already in the install list
|
||||
+ if(_add_plugin)
|
||||
+ foreach(_known_install_plugin_dir ${_install_plugin_list})
|
||||
+ if(_plugin_dir MATCHES "${_known_install_plugin_dir}.+")
|
||||
+ set(_add_plugin OFF)
|
||||
+ break()
|
||||
+ endif()
|
||||
+ endforeach()
|
||||
+ endif()
|
||||
+
|
||||
+ if(_add_plugin)
|
||||
+ message(STATUS "[+] PLUGIN TO INSTALL: ${_rel_plugin_dir}")
|
||||
+ get_filename_component(_rel_plugin_parent_dir ${_rel_plugin_dir} DIRECTORY)
|
||||
+ install(DIRECTORY ${_rel_plugin_dir}
|
||||
+ DESTINATION lib${LIB_SUFFIX}/uranium/${_rel_plugin_parent_dir}
|
||||
+ PATTERN "__pycache__" EXCLUDE
|
||||
+ PATTERN "*.qmlc" EXCLUDE
|
||||
+ )
|
||||
+ list(APPEND _install_plugin_list ${_plugin_dir})
|
||||
+ elseif(_is_no_install_plugin)
|
||||
+ message(STATUS "[-] PLUGIN TO REMOVE : ${_rel_plugin_dir}")
|
||||
+ execute_process(COMMAND ${Python_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod_bundled_packages_json.py
|
||||
+ -d ${CMAKE_CURRENT_SOURCE_DIR}/resources/bundled_packages
|
||||
+ ${_plugin_dir_name}
|
||||
+ RESULT_VARIABLE _mod_json_result)
|
||||
+ endif()
|
||||
+endforeach()
|
16
backports/uranium/cmake.patch
Normal file
16
backports/uranium/cmake.patch
Normal file
|
@ -0,0 +1,16 @@
|
|||
--- ./CMakeLists.txt.orig
|
||||
+++ ./CMakeLists.txt
|
||||
@@ -19,9 +19,12 @@
|
||||
# Build Translations
|
||||
CREATE_TRANSLATION_TARGETS()
|
||||
|
||||
+find_package(Python REQUIRED COMPONENTS Interpreter)
|
||||
|
||||
-install(DIRECTORY UM DESTINATION "${Python_SITELIB_LOCAL}")
|
||||
+install(DIRECTORY UM DESTINATION "${Python_SITELIB}")
|
||||
|
||||
install(FILES ${CMAKE_SOURCE_DIR}/cmake/UraniumTranslationTools.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake-${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}/Modules/ )
|
||||
install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/uranium)
|
||||
+
|
||||
+include(UraniumPluginInstall)
|
Loading…
Add table
Reference in a new issue