mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-18 00:10:04 +00:00
cad/uranium: upgrade to 5.7.0 for cura
- Work around complicated upstream build system
This commit is contained in:
parent
a83b7f224a
commit
c71e832a6d
@ -1,6 +1,5 @@
|
||||
PORTNAME= Uranium
|
||||
DISTVERSION= 4.13.1
|
||||
PORTREVISION= 3
|
||||
DISTVERSION= 5.7.0
|
||||
PORTEPOCH= 1
|
||||
CATEGORIES= cad
|
||||
DIST_SUBDIR= Ultimaker
|
||||
@ -12,22 +11,30 @@ WWW= https://github.com/Ultimaker/Uranium/blob/master/docs/overview.md
|
||||
LICENSE= LGPL3
|
||||
LICENSE_FILE= ${WRKSRC}/LICENSE
|
||||
|
||||
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR} \
|
||||
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}PyOpenGL>0:graphics/py-PyOpenGL@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}pyclipper>0:math/py-pyclipper@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \
|
||||
${PYTHON_PKGNAMEPREFIX}PyOpenGL>0:graphics/py-PyOpenGL@${PY_FLAVOR}
|
||||
${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR}
|
||||
|
||||
USES= cmake gettext python pyqt:5
|
||||
USE_PYQT= pyqt5
|
||||
USES= cmake gettext python pyqt:6
|
||||
USE_PYQT= pyqt6
|
||||
USE_PYTHON= cryptography
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= Ultimaker
|
||||
STRIP=
|
||||
NO_ARCH= yes
|
||||
|
||||
post-patch:
|
||||
@${FIND} ${WRKSRC} -name "*.orig" -delete
|
||||
post-install:
|
||||
${MKDIR} ${STAGEDIR}${PREFIX}/share/uranium/scripts
|
||||
cd ${WRKSRC}/scripts && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/uranium/scripts
|
||||
post-extract:
|
||||
@${MKDIR} ${WRKSRC}/cmake
|
||||
@for f in UraniumPluginInstall.cmake UraniumTests.cmake UraniumTranslationTools.cmake mod_bundled_packages_json.py; do \
|
||||
${CP} ${FILESDIR}/$$f ${WRKSRC}/cmake; \
|
||||
done
|
||||
@for f in CMakeLists.txt CPackConfig.cmake Doxyfile; do \
|
||||
${CP} ${FILESDIR}/$$f ${WRKSRC}; \
|
||||
done
|
||||
|
||||
#post-install:
|
||||
# ${MKDIR} ${STAGEDIR}${PREFIX}/share/uranium/scripts
|
||||
# cd ${WRKSRC}/scripts && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/uranium/scripts
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
@ -1,3 +1,3 @@
|
||||
TIMESTAMP = 1645698320
|
||||
SHA256 (Ultimaker/Ultimaker-Uranium-4.13.1_GH0.tar.gz) = 185db9e6353a4f44b69287ed5f6314d28f10a0dd43790485275d6db5b5907a41
|
||||
SIZE (Ultimaker/Ultimaker-Uranium-4.13.1_GH0.tar.gz) = 1072277
|
||||
TIMESTAMP = 1713898090
|
||||
SHA256 (Ultimaker/Ultimaker-Uranium-5.7.0_GH0.tar.gz) = 4e319a691cc1a6f0fffdaf5cd80a37bbdffc22246177cbe7b8ec833ac326f00c
|
||||
SIZE (Ultimaker/Ultimaker-Uranium-5.7.0_GH0.tar.gz) = 773434
|
||||
|
63
cad/uranium/files/CMakeLists.txt
Normal file
63
cad/uranium/files/CMakeLists.txt
Normal file
@ -0,0 +1,63 @@
|
||||
project(uranium NONE)
|
||||
|
||||
cmake_minimum_required(VERSION 3.6)
|
||||
|
||||
message(STATUS ${CMAKE_MODULE_PATH})
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/
|
||||
${CMAKE_MODULE_PATH})
|
||||
include(UraniumTranslationTools)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
message("Using python version ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
|
||||
|
||||
# # Checks using pylint
|
||||
# Note that we use exit 0 here to not mark the build as a failure on check failure
|
||||
# In addition, the specified pylint configuration uses the spellchecker plugin. This required python-enchant to be installed.
|
||||
add_custom_target(check)
|
||||
add_custom_command(TARGET check POST_BUILD COMMAND "PYTHONPATH=${CMAKE_SOURCE_DIR}" ${PYTHON_EXECUTABLE} -m pylint --rcfile=${CMAKE_SOURCE_DIR}/pylint.cfg UM --msg-template=\"{path}:{line}: [{msg_id}({symbol}) , {obj}] {msg}\" > ${CMAKE_BINARY_DIR}/pylint.log || exit 0 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||
|
||||
# # Check using Mypy
|
||||
add_custom_target(typecheck)
|
||||
add_custom_command(TARGET typecheck POST_BUILD COMMAND ${PYTHON_EXECUTABLE} run_mypy.py WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||
|
||||
# # Tests
|
||||
include(UraniumTests)
|
||||
|
||||
# # Benchmarks
|
||||
# add_custom_target(benchmark)
|
||||
# file(GLOB bench_files tests/benchmarks/*/profile*.py)
|
||||
# foreach(file ${bench_files})
|
||||
# add_custom_command(TARGET benchmark POST_BUILD COMMAND "PYTHONPATH=${CMAKE_SOURCE_DIR}" kernprof ARGS -l -v ${file})
|
||||
# endforeach()
|
||||
|
||||
|
||||
# Documentation
|
||||
find_package(Doxygen)
|
||||
if(${DOXYGEN_FOUND})
|
||||
add_custom_target(doc ${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/Doxyfile WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
# Extract Strings
|
||||
add_custom_target(extract-messages ${CMAKE_SOURCE_DIR}/scripts/extract-messages ${CMAKE_SOURCE_DIR} uranium)
|
||||
|
||||
# Build Translations
|
||||
CREATE_TRANSLATION_TARGETS()
|
||||
|
||||
|
||||
if(EXISTS /etc/debian_version)
|
||||
install(DIRECTORY UM DESTINATION lib${LIB_SUFFIX}/python${PYTHON_VERSION_MAJOR}/dist-packages)
|
||||
else()
|
||||
install(DIRECTORY UM DESTINATION lib${LIB_SUFFIX}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
|
||||
endif()
|
||||
install(FILES ${CMAKE_SOURCE_DIR}/cmake/UraniumTranslationTools.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/Modules/ )
|
||||
install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/uranium)
|
||||
|
||||
# Detect plugins to install
|
||||
include(UraniumPluginInstall)
|
||||
|
||||
include(CPackConfig.cmake)
|
34
cad/uranium/files/CPackConfig.cmake
Normal file
34
cad/uranium/files/CPackConfig.cmake
Normal file
@ -0,0 +1,34 @@
|
||||
set(CPACK_PACKAGE_VENDOR "Ultimaker")
|
||||
set(CPACK_PACKAGE_CONTACT "Arjen Hiemstra <a.hiemstra@ultimaker.com>")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Uranium 3D Application Framework")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR 15)
|
||||
set(CPACK_PACKAGE_VERSION_MINOR 05)
|
||||
set(CPACK_PACKAGE_VERSION_PATCH 93)
|
||||
set(CPACK_GENERATOR "DEB;RPM")
|
||||
|
||||
set(RPM_REQUIRES
|
||||
"python3 >= 3.5.0"
|
||||
"python3-qt5 >= 5.6.0"
|
||||
"qt5-qtquickcontrols >= 5.6.0"
|
||||
"arcus >= 15.05.90"
|
||||
)
|
||||
string(REPLACE ";" "," RPM_REQUIRES "${RPM_REQUIRES}")
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES ${RPM_REQUIRES})
|
||||
|
||||
set(DEB_DEPENDS
|
||||
"python3 (>= 3.5.0)"
|
||||
"python3-pyqt5 (>= 5.6.0)"
|
||||
"python3-pyqt5.qtopengl (>= 5.6.0)"
|
||||
"python3-pyqt5.qtquick (>= 5.6.0)"
|
||||
"python3-pyqt5.qtsvg (>= 5.6.0)"
|
||||
"qml-module-qtquick2 (>= 5.6.0)"
|
||||
"qml-module-qtquick-window2 (>= 5.6.0)"
|
||||
"qml-module-qtquick-layouts (>= 5.6.0)"
|
||||
"qml-module-qtquick-dialogs (>= 5.6.0)"
|
||||
"qml-module-qtquick-controls (>= 5.6.0)"
|
||||
"arcus (>= 15.05.90)"
|
||||
)
|
||||
string(REPLACE ";" "," DEB_DEPENDS "${DEB_DEPENDS}")
|
||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS ${DEB_DEPENDS})
|
||||
|
||||
include(CPack)
|
2331
cad/uranium/files/Doxyfile
Normal file
2331
cad/uranium/files/Doxyfile
Normal file
File diff suppressed because it is too large
Load Diff
99
cad/uranium/files/UraniumPluginInstall.cmake
Normal file
99
cad/uranium/files/UraniumPluginInstall.cmake
Normal file
@ -0,0 +1,99 @@
|
||||
# Copyright (c) 2019 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.
|
||||
#
|
||||
|
||||
# FIXME: Remove the code for CMake <3.12 once we have switched over completely.
|
||||
# FindPython3 is a new module since CMake 3.12. It deprecates FindPythonInterp and FindPythonLibs. The FindPython3
|
||||
# module is copied from the CMake repository here so in CMake <3.12 we can still use it.
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.12)
|
||||
# Use FindPythonInterp and FindPythonLibs for CMake <3.12
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
|
||||
else()
|
||||
# Use FindPython3 for CMake >=3.12
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
endif()
|
||||
|
||||
# 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 ${Python3_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()
|
57
cad/uranium/files/UraniumTests.cmake
Normal file
57
cad/uranium/files/UraniumTests.cmake
Normal file
@ -0,0 +1,57 @@
|
||||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Uranium is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
enable_testing()
|
||||
include(CMakeParseArguments)
|
||||
|
||||
add_custom_target(test-verbose COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
|
||||
|
||||
function(uranium_add_test)
|
||||
set(_single_args NAME DIRECTORY PYTHONPATH)
|
||||
cmake_parse_arguments("" "" "${_single_args}" "" ${ARGN})
|
||||
|
||||
if(NOT _NAME)
|
||||
message(FATAL_ERROR "UraniumAddTest requires a test name argument")
|
||||
endif()
|
||||
|
||||
if(NOT _DIRECTORY)
|
||||
message(FATAL_ERROR "UraniumAddTest requires a directory to test")
|
||||
endif()
|
||||
|
||||
if(NOT _PYTHONPATH)
|
||||
set(_PYTHONPATH ${_DIRECTORY})
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
string(REPLACE "|" "\\;" _PYTHONPATH ${_PYTHONPATH})
|
||||
set(_PYTHONPATH "${_PYTHONPATH}\\;$ENV{PYTHONPATH}")
|
||||
else()
|
||||
string(REPLACE "|" ":" _PYTHONPATH ${_PYTHONPATH})
|
||||
set(_PYTHONPATH "${_PYTHONPATH}:$ENV{PYTHONPATH}")
|
||||
endif()
|
||||
|
||||
add_test(
|
||||
NAME ${_NAME}
|
||||
COMMAND ${PYTHON_EXECUTABLE} -m pytest --junitxml=${CMAKE_BINARY_DIR}/junit-${_NAME}.xml ${_DIRECTORY}
|
||||
)
|
||||
set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT LANG=C)
|
||||
set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT "PYTHONPATH=${_PYTHONPATH}")
|
||||
endfunction()
|
||||
|
||||
uranium_add_test(NAME pytest-main DIRECTORY ${CMAKE_SOURCE_DIR}/tests PYTHONPATH ${CMAKE_SOURCE_DIR})
|
||||
|
||||
file(GLOB_RECURSE _plugins plugins/*/__init__.py)
|
||||
foreach(_plugin ${_plugins})
|
||||
get_filename_component(_plugin_directory ${_plugin} DIRECTORY)
|
||||
if(EXISTS ${_plugin_directory}/tests)
|
||||
get_filename_component(_plugin_name ${_plugin_directory} NAME)
|
||||
uranium_add_test(NAME pytest-${_plugin_name} DIRECTORY ${_plugin_directory} PYTHONPATH "${CMAKE_SOURCE_DIR}|${_plugin_directory}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
#Add code style test.
|
||||
add_test(
|
||||
NAME "code-style"
|
||||
COMMAND ${PYTHON_EXECUTABLE} run_mypy.py WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
|
114
cad/uranium/files/UraniumTranslationTools.cmake
Normal file
114
cad/uranium/files/UraniumTranslationTools.cmake
Normal file
@ -0,0 +1,114 @@
|
||||
## 3rd party code:
|
||||
|
||||
# Macro needed to list all sub-directory of a directory.
|
||||
# There is no function in cmake as far as I know.
|
||||
# Found at: http://stackoverflow.com/a/7788165
|
||||
MACRO(SUBDIRLIST result curdir)
|
||||
FILE(GLOB children RELATIVE ${curdir} ${curdir}/*)
|
||||
SET(dirlist "")
|
||||
FOREACH(child ${children})
|
||||
IF(IS_DIRECTORY ${curdir}/${child})
|
||||
STRING(REPLACE "/" "" child ${child})
|
||||
LIST(APPEND dirlist ${child})
|
||||
ENDIF()
|
||||
ENDFOREACH()
|
||||
SET(${result} ${dirlist})
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
## Translation tools:
|
||||
|
||||
SET(CURA_BINARY_DATA_DIRECTORY CACHE PATH "Directory to the cura-binary-data repository")
|
||||
|
||||
if(NOT CURA_BINARY_DATA_DIRECTORY AND NOT DEFINED $ENV{CURA_BINARY_DATA_DIRECTORY})
|
||||
message(STATUS "Using CURA_BINARY_DATA_DIRECTORY from set of environment variables...")
|
||||
SET(CURA_BINARY_DATA_DIRECTORY $ENV{CURA_BINARY_DATA_DIRECTORY})
|
||||
endif()
|
||||
|
||||
# Dynamically creates targets for each language to create a *.po-file
|
||||
MACRO(TARGETS_FOR_PO_FILES language)
|
||||
if(DEFINED GETTEXT_MSGINIT_EXECUTABLE)
|
||||
message(STATUS "Creating target i18n-create-po-${language}")
|
||||
add_custom_target(i18n-create-po-${language})
|
||||
add_dependencies(i18n-create-po i18n-create-po-${language})
|
||||
endif()
|
||||
message(STATUS "Creating target i18n-update-po-${language}")
|
||||
add_custom_target(i18n-update-po-${language})
|
||||
add_dependencies(i18n-update-po i18n-update-po-${language})
|
||||
foreach(pot_file ${pot_files})
|
||||
string(REGEX REPLACE ".*/(.*).pot" "${CMAKE_SOURCE_DIR}/resources/i18n/${language}/\\1.po" po_file ${pot_file})
|
||||
if(DEFINED GETTEXT_MSGINIT_EXECUTABLE)
|
||||
add_custom_command(TARGET i18n-create-po-${language} POST_BUILD
|
||||
COMMAND ${GETTEXT_MSGINIT_EXECUTABLE} ARGS --no-wrap --no-translator -l ${language} -i ${pot_file} -o ${po_file})
|
||||
endif()
|
||||
add_custom_command(TARGET i18n-update-po-${language} POST_BUILD
|
||||
COMMAND ${GETTEXT_MSGMERGE_EXECUTABLE} ARGS --no-wrap --no-fuzzy-matching -o ${po_file} ${po_file} ${pot_file})
|
||||
endforeach()
|
||||
ENDMACRO()
|
||||
|
||||
# Dynamically creates targets for each language to create a *.mo-file
|
||||
MACRO(TARGETS_FOR_MO_FILES language)
|
||||
message(STATUS "Creating target i18n-create-mo-${language}")
|
||||
add_custom_target(i18n-create-mo-${language})
|
||||
add_dependencies(i18n-create-mo i18n-create-mo-${language})
|
||||
if(TARGET i18n-copy-mo)
|
||||
message(STATUS "Creating target i18n-copy-mo-${language}")
|
||||
add_custom_target(i18n-copy-mo-${language})
|
||||
add_dependencies(i18n-copy-mo i18n-copy-mo-${language})
|
||||
endif()
|
||||
file(GLOB po_files ${CMAKE_SOURCE_DIR}/resources/i18n/${language}/*.po)
|
||||
foreach(po_file ${po_files})
|
||||
string(REGEX REPLACE ".*/(.*).po" "${CMAKE_BINARY_DIR}/resources/i18n/${language}/LC_MESSAGES/\\1.mo" mo_file ${po_file})
|
||||
add_custom_command(TARGET i18n-create-mo-${language} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/resources/i18n/${language}/LC_MESSAGES/
|
||||
COMMAND ${GETTEXT_MSGFMT_EXECUTABLE} ARGS ${po_file} -o ${mo_file} -f)
|
||||
if(TARGET i18n-copy-mo-${language})
|
||||
string(REGEX REPLACE ".*/(.*).po" "${CURA_BINARY_DATA_DIRECTORY}/${PROJECT_NAME}/resources/i18n/${language}/LC_MESSAGES/\\1.mo" mo_file_binary_copy ${po_file})
|
||||
add_custom_command(TARGET i18n-copy-mo-${language} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${CURA_BINARY_DATA_DIRECTORY}/resources/i18n/${language}/LC_MESSAGES/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${mo_file} ${mo_file_binary_copy})
|
||||
add_dependencies(i18n-copy-mo-${language} i18n-create-mo-${language})
|
||||
endif()
|
||||
endforeach()
|
||||
ENDMACRO()
|
||||
|
||||
# Checks for availability of gettext and when found creates all targets
|
||||
# TODO: Adding option to set the PROJECT_NAME externally!
|
||||
MACRO(CREATE_TRANSLATION_TARGETS)
|
||||
find_package(Gettext)
|
||||
|
||||
if(GETTEXT_FOUND)
|
||||
# translations target will convert .po files into .mo and .qm as needed.
|
||||
# The files are checked for a _qt suffix and if it is found, converted to
|
||||
# qm, otherwise they are converted to .po.
|
||||
if(DEFINED GETTEXT_MSGINIT_EXECUTABLE)
|
||||
message(STATUS "Creating target i18n-create-po")
|
||||
add_custom_target(i18n-create-po)
|
||||
else()
|
||||
message(WARNING "GETTEXT_MSGINIT_EXECUTABLE is undefined!\nSkipping to create i18n-create-po* targets...")
|
||||
endif()
|
||||
if(CURA_BINARY_DATA_DIRECTORY)
|
||||
if(EXISTS ${CURA_BINARY_DATA_DIRECTORY})
|
||||
message(STATUS "CURA_BINARY_DATA_DIRECTORY: ${CURA_BINARY_DATA_DIRECTORY}")
|
||||
message(STATUS "Creating target i18n-copy-mo")
|
||||
add_custom_target(i18n-copy-mo)
|
||||
else()
|
||||
message(WARNING "CURA_BINARY_DATA_DIRECTORY does not exist! (${CURA_BINARY_DATA_DIRECTORY})")
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "CURA_BINARY_DATA_DIRECTORY is not set!")
|
||||
endif()
|
||||
message(STATUS "Creating target i18n-update-po")
|
||||
add_custom_target(i18n-update-po)
|
||||
message(STATUS "Creating target i18n-create-mo")
|
||||
add_custom_target(i18n-create-mo ALL)
|
||||
|
||||
SUBDIRLIST(languages ${CMAKE_SOURCE_DIR}/resources/i18n/)
|
||||
file(GLOB pot_files ${CMAKE_SOURCE_DIR}/resources/i18n/*.pot)
|
||||
foreach(language ${languages})
|
||||
TARGETS_FOR_PO_FILES(${language})
|
||||
TARGETS_FOR_MO_FILES(${language})
|
||||
endforeach()
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/resources DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/)
|
||||
endif()
|
||||
ENDMACRO()
|
69
cad/uranium/files/mod_bundled_packages_json.py
Normal file
69
cad/uranium/files/mod_bundled_packages_json.py
Normal file
@ -0,0 +1,69 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# This script removes the given package entries in the bundled_packages JSON files. This is used by the PluginInstall
|
||||
# CMake module.
|
||||
#
|
||||
|
||||
import argparse
|
||||
import collections
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
## Finds all JSON files in the given directory recursively and returns a list of those files in absolute paths.
|
||||
#
|
||||
# \param work_dir The directory to look for JSON files recursively.
|
||||
# \return A list of JSON files in absolute paths that are found in the given directory.
|
||||
def find_json_files(work_dir: str) -> list:
|
||||
json_file_list = []
|
||||
for root, dir_names, file_names in os.walk(work_dir):
|
||||
for file_name in file_names:
|
||||
abs_path = os.path.abspath(os.path.join(root, file_name))
|
||||
json_file_list.append(abs_path)
|
||||
return json_file_list
|
||||
|
||||
|
||||
## Removes the given entries from the given JSON file. The file will modified in-place.
|
||||
#
|
||||
# \param file_path The JSON file to modify.
|
||||
# \param entries A list of strings as entries to remove.
|
||||
# \return None
|
||||
def remove_entries_from_json_file(file_path: str, entries: list) -> None:
|
||||
try:
|
||||
with open(file_path, "r", encoding = "utf-8") as f:
|
||||
package_dict = json.load(f, object_hook = collections.OrderedDict)
|
||||
except Exception as e:
|
||||
msg = "Failed to load '{file_path}' as a JSON file. This file will be ignored Exception: {e}"\
|
||||
.format(file_path = file_path, e = e)
|
||||
sys.stderr.write(msg + os.linesep)
|
||||
return
|
||||
|
||||
for entry in entries:
|
||||
if entry in package_dict:
|
||||
del package_dict[entry]
|
||||
print("[INFO] Remove entry [{entry}] from [{file_path}]".format(file_path = file_path, entry = entry))
|
||||
|
||||
try:
|
||||
with open(file_path, "w", encoding = "utf-8", newline = "\n") as f:
|
||||
json.dump(package_dict, f, indent = 4)
|
||||
except Exception as e:
|
||||
msg = "Failed to write '{file_path}' as a JSON file. Exception: {e}".format(file_path = file_path, e = e)
|
||||
raise IOError(msg)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parser = argparse.ArgumentParser("mod_bundled_packages_json")
|
||||
parser.add_argument("-d", "--dir", dest = "work_dir",
|
||||
help = "The directory to look for bundled packages JSON files, recursively.")
|
||||
parser.add_argument("entries", metavar = "ENTRIES", type = str, nargs = "+")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
json_file_list = find_json_files(args.work_dir)
|
||||
for json_file_path in json_file_list:
|
||||
remove_entries_from_json_file(json_file_path, args.entries)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -1,30 +0,0 @@
|
||||
--- CMakeLists.txt.orig 2020-02-18 09:32:30 UTC
|
||||
+++ CMakeLists.txt
|
||||
@@ -10,6 +10,9 @@ include(UraniumTranslationTools)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
+if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||
+ set(FREEBSD True)
|
||||
+endif()
|
||||
find_package(PythonInterp 3 REQUIRED)
|
||||
|
||||
# # Checks using pylint
|
||||
@@ -48,10 +51,15 @@ CREATE_TRANSLATION_TARGETS()
|
||||
if(EXISTS /etc/debian_version)
|
||||
install(DIRECTORY UM DESTINATION lib${LIB_SUFFIX}/python${PYTHON_VERSION_MAJOR}/dist-packages)
|
||||
else()
|
||||
- install(DIRECTORY UM DESTINATION lib${LIB_SUFFIX}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
|
||||
+ install(DIRECTORY UM DESTINATION lib${LIB_SUFFIX}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
|
||||
endif()
|
||||
-install(FILES ${CMAKE_SOURCE_DIR}/cmake/UraniumTranslationTools.cmake
|
||||
+if(FREEBSD)
|
||||
+ install(FILES ${CMAKE_SOURCE_DIR}/cmake/UraniumTranslationTools.cmake
|
||||
+ DESTINATION share/cmake/Modules/ )
|
||||
+else()
|
||||
+ install(FILES ${CMAKE_SOURCE_DIR}/cmake/UraniumTranslationTools.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake-${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}/Modules/ )
|
||||
+endif(FREEBSD)
|
||||
install(DIRECTORY resources DESTINATION ${CMAKE_INSTALL_DATADIR}/uranium)
|
||||
|
||||
# Detect plugins to install
|
@ -1,11 +0,0 @@
|
||||
--- UM/Platform.py.orig 2020-03-06 21:26:24 UTC
|
||||
+++ UM/Platform.py
|
||||
@@ -40,7 +40,7 @@ class Platform:
|
||||
__platform_type = PlatformType.Other
|
||||
if sys.platform == "win32":
|
||||
__platform_type = PlatformType.Windows
|
||||
- elif sys.platform == "linux":
|
||||
+ elif (sys.platform == "linux" or "bsd" in sys.platform):
|
||||
__platform_type = PlatformType.Linux
|
||||
elif sys.platform == "darwin":
|
||||
__platform_type = PlatformType.OSX
|
@ -1,20 +0,0 @@
|
||||
--- UM/Qt/QtRenderer.py.orig 2020-03-08 12:13:28 UTC
|
||||
+++ UM/Qt/QtRenderer.py
|
||||
@@ -129,7 +129,7 @@ class QtRenderer(Renderer):
|
||||
if not self._initialized:
|
||||
self._initialize()
|
||||
|
||||
- self._gl.glViewport(0, 0, self._viewport_width, self._viewport_height)
|
||||
+ self._gl.glViewport(0, 0, int(self._viewport_width), int(self._viewport_height))
|
||||
self._gl.glClearColor(self._background_color.redF(), self._background_color.greenF(), self._background_color.blueF(), self._background_color.alphaF())
|
||||
self._gl.glClear(self._gl.GL_COLOR_BUFFER_BIT | self._gl.GL_DEPTH_BUFFER_BIT)
|
||||
self._gl.glClearColor(0.0, 0.0, 0.0, 0.0)
|
||||
@@ -157,7 +157,7 @@ class QtRenderer(Renderer):
|
||||
|
||||
for render_pass in self.getRenderPasses():
|
||||
width, height = render_pass.getSize()
|
||||
- self._gl.glViewport(0, 0, width, height)
|
||||
+ self._gl.glViewport(0, 0, int(width), int(height))
|
||||
render_pass.render()
|
||||
|
||||
def reRenderLast(self):
|
@ -1,38 +0,0 @@
|
||||
--- UM/View/GL/OpenGL.py.orig 2020-03-08 11:52:09 UTC
|
||||
+++ UM/View/GL/OpenGL.py
|
||||
@@ -19,6 +19,8 @@ from UM.View.GL.OpenGLContext import OpenGLContext
|
||||
from UM.i18n import i18nCatalog # To make dialogs translatable.
|
||||
i18n_catalog = i18nCatalog("uranium")
|
||||
|
||||
+import OpenGL.GL as gl
|
||||
+
|
||||
if TYPE_CHECKING:
|
||||
from UM.Mesh.MeshData import MeshData
|
||||
|
||||
@@ -59,7 +61,8 @@ class OpenGL:
|
||||
Logger.log("e", "Startup failed due to OpenGL context creation failing")
|
||||
QMessageBox.critical(None, i18n_catalog.i18nc("@message", "Failed to Initialize OpenGL", "Could not initialize an OpenGL context. This program requires OpenGL 2.0 or higher. Please check your video card drivers."))
|
||||
sys.exit(1)
|
||||
- self._gl = context.versionFunctions(profile) # type: Any #It's actually a protected class in PyQt that depends on the implementation of your graphics card.
|
||||
+ self._gl = gl
|
||||
+# self._gl = context.versionFunctions(profile) # type: Any #It's actually a protected class in PyQt that depends on the implementation of your graphics card.
|
||||
if not self._gl:
|
||||
Logger.log("e", "Startup failed due to OpenGL initialization failing")
|
||||
QMessageBox.critical(None, i18n_catalog.i18nc("@message", "Failed to Initialize OpenGL", "Could not initialize OpenGL. This program requires OpenGL 2.0 or higher. Please check your video card drivers."))
|
||||
@@ -75,14 +78,13 @@ class OpenGL:
|
||||
QMessageBox.critical(None, i18n_catalog.i18nc("Critical OpenGL Extensions Missing", "Critical OpenGL extensions are missing. This program requires support for Framebuffer Objects. Please check your video card drivers."))
|
||||
sys.exit(1)
|
||||
|
||||
- self._gl.initializeOpenGLFunctions()
|
||||
+# self._gl.initializeOpenGLFunctions()
|
||||
|
||||
self._gpu_vendor = OpenGL.Vendor.Other #type: int
|
||||
- vendor_string = self._gl.glGetString(self._gl.GL_VENDOR)
|
||||
+ vendor_string = self._gl.glGetString(self._gl.GL_VENDOR).decode("utf-8")
|
||||
if vendor_string is None:
|
||||
vendor_string = "Unknown"
|
||||
vendor_string = vendor_string.lower()
|
||||
-
|
||||
if "nvidia" in vendor_string:
|
||||
self._gpu_vendor = OpenGL.Vendor.NVidia
|
||||
elif "amd" in vendor_string or "ati" in vendor_string:
|
@ -1,25 +0,0 @@
|
||||
--- cmake/UraniumTranslationTools.cmake.orig 2020-02-18 09:32:30 UTC
|
||||
+++ cmake/UraniumTranslationTools.cmake
|
||||
@@ -27,6 +27,8 @@ endif()
|
||||
|
||||
# Dynamically creates targets for each language to create a *.po-file
|
||||
MACRO(TARGETS_FOR_PO_FILES language)
|
||||
+message(STATUS "MACRO TARGETS FOR PO FILES")
|
||||
+message(STATUS "GETTEXT_MSGINIT_EXECUTABLE ${GETTEXT_MSGINIT_EXECUTABLE}")
|
||||
if(DEFINED GETTEXT_MSGINIT_EXECUTABLE)
|
||||
message(STATUS "Creating target i18n-create-po-${language}")
|
||||
add_custom_target(i18n-create-po-${language})
|
||||
@@ -76,9 +78,11 @@ ENDMACRO()
|
||||
# TODO: Adding option to set the PROJECT_NAME externally!
|
||||
MACRO(CREATE_TRANSLATION_TARGETS)
|
||||
find_package(Gettext)
|
||||
-
|
||||
+message(STATUS "GETTEXT_FOUND ${GETTEXT_FOUND}")
|
||||
if(GETTEXT_FOUND)
|
||||
- # translations target will convert .po files into .mo and .qm as needed.
|
||||
+message(STATUS "GETTEXT_FOUND is SET")
|
||||
+SET(GETTEXT_MSGINIT_EXECUTABLE "/usr/local/bin/msginit")
|
||||
+# translations target will convert .po files into .mo and .qm as needed.
|
||||
# The files are checked for a _qt suffix and if it is found, converted to
|
||||
# qm, otherwise they are converted to .po.
|
||||
if(DEFINED GETTEXT_MSGINIT_EXECUTABLE)
|
@ -4,6 +4,7 @@
|
||||
%%PYTHON_SITELIBDIR%%/UM/Backend/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/CentralFileStorage.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/ColorGenerator.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/ColorImage.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/ConfigurationErrorMessage.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Controller.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Decorators.py
|
||||
@ -33,7 +34,6 @@
|
||||
%%PYTHON_SITELIBDIR%%/UM/Math/Polygon.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Math/Quaternion.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Math/Ray.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Math/ShapelyUtil.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Math/Vector.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Math/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Mesh/MeshBuilder.py
|
||||
@ -89,11 +89,13 @@
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/ResourcesProxy.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/SelectionProxy.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/StageModel.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/TableModel.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/Theme.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/ToolModel.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/Utilities.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/ViewModel.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/VisibleMessagesModel.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/Window.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Bindings/i18nCatalogProxy.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/Duration.py
|
||||
@ -104,7 +106,17 @@
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/QtRenderer.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/ApplicationMenu.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/BurgerButton.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/CheckBox.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/ComponentWithIcon.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Dialog.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Enums.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/HelpIcon.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/ImageButton.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Label.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Menu.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/MenuItem.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/MessageDialog.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/MessageStack.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Preferences/ConfirmRemoveDialog.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Preferences/GeneralPage.qml
|
||||
@ -113,16 +125,24 @@
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Preferences/PreferencesDialog.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Preferences/PreferencesPage.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Preferences/RenameDialog.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Preferences/SettingVisibilityCategory.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Preferences/SettingVisibilityItem.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/ProgressBar.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/RecolorImage.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/ScrollBar.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/ScrollableTextArea.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/SimpleButton.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Slider.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/StatusIcon.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Switch.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/TabRow.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/TabRowButton.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/TextField.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/ToolTip.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/ToolbarButton.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/TooltipArea.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Wizard.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/UnderlineBackground.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Validators/FloatValidator.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Validators/HexColorValidator.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Validators/IntListValidator.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/Validators/IntValidator.qml
|
||||
%%PYTHON_SITELIBDIR%%/UM/Qt/qml/UM/qmldir
|
||||
%%PYTHON_SITELIBDIR%%/UM/Resources.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/SaveFile.py
|
||||
@ -140,6 +160,7 @@
|
||||
%%PYTHON_SITELIBDIR%%/UM/Scene/Selection.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Scene/ToolHandle.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Scene/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Settings/AdditionalSettingDefinitionsAppender.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Settings/ContainerFormatError.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Settings/ContainerProvider.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/Settings/ContainerQuery.py
|
||||
@ -204,85 +225,82 @@
|
||||
%%PYTHON_SITELIBDIR%%/UM/Workspace/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/UM/i18n.py
|
||||
lib/uranium/plugins/ConsoleLogger/__init__.py
|
||||
lib/uranium/plugins/ConsoleLogger/ConsoleLogger.py
|
||||
lib/uranium/plugins/ConsoleLogger/__init__.py
|
||||
lib/uranium/plugins/ConsoleLogger/plugin.json
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/__init__.py
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/OBJReader.py
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/__init__.py
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/plugin.json
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/TestOBJReader.py
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/negative_indexed.obj
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/negative_interweaved.obj
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/sphere.obj
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/TestOBJReader.py
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/vertex_duplicated.obj
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/vertex_indexed.obj
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/vertex_normal_indexed.obj
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/vertex_texture_indexed.obj
|
||||
lib/uranium/plugins/FileHandlers/OBJReader/tests/vertex_texture_normal_indexed.obj
|
||||
lib/uranium/plugins/FileHandlers/OBJWriter/__init__.py
|
||||
lib/uranium/plugins/FileHandlers/OBJWriter/OBJWriter.py
|
||||
lib/uranium/plugins/FileHandlers/OBJWriter/__init__.py
|
||||
lib/uranium/plugins/FileHandlers/OBJWriter/plugin.json
|
||||
lib/uranium/plugins/FileHandlers/STLReader/STLReader.py
|
||||
lib/uranium/plugins/FileHandlers/STLReader/__init__.py
|
||||
lib/uranium/plugins/FileHandlers/STLReader/plugin.json
|
||||
lib/uranium/plugins/FileHandlers/STLReader/STLReader.py
|
||||
lib/uranium/plugins/FileHandlers/STLReader/tests/simpleTestCubeASCII.stl
|
||||
lib/uranium/plugins/FileHandlers/STLReader/tests/simpleTestCubeBinary.stl
|
||||
lib/uranium/plugins/FileHandlers/STLReader/tests/TestStlReader.py
|
||||
lib/uranium/plugins/FileHandlers/STLWriter/STLWriter.py
|
||||
lib/uranium/plugins/FileHandlers/STLWriter/__init__.py
|
||||
lib/uranium/plugins/FileHandlers/STLWriter/plugin.json
|
||||
lib/uranium/plugins/FileHandlers/STLWriter/STLWriter.py
|
||||
lib/uranium/plugins/FileLogger/__init__.py
|
||||
lib/uranium/plugins/FileLogger/FileLogger.py
|
||||
lib/uranium/plugins/FileLogger/__init__.py
|
||||
lib/uranium/plugins/FileLogger/plugin.json
|
||||
lib/uranium/plugins/LocalContainerProvider/__init__.py
|
||||
lib/uranium/plugins/LocalContainerProvider/LocalContainerProvider.py
|
||||
lib/uranium/plugins/LocalContainerProvider/__init__.py
|
||||
lib/uranium/plugins/LocalContainerProvider/plugin.json
|
||||
lib/uranium/plugins/LocalFileOutputDevice/__init__.py
|
||||
lib/uranium/plugins/LocalFileOutputDevice/LocalFileOutputDevice.py
|
||||
lib/uranium/plugins/LocalFileOutputDevice/LocalFileOutputDevicePlugin.py
|
||||
lib/uranium/plugins/LocalFileOutputDevice/__init__.py
|
||||
lib/uranium/plugins/LocalFileOutputDevice/plugin.json
|
||||
lib/uranium/plugins/Tools/CameraTool/__init__.py
|
||||
lib/uranium/plugins/Tools/CameraTool/CameraTool.py
|
||||
lib/uranium/plugins/Tools/CameraTool/__init__.py
|
||||
lib/uranium/plugins/Tools/CameraTool/plugin.json
|
||||
lib/uranium/plugins/Tools/CameraTool/tests/TestCameraTool.py
|
||||
lib/uranium/plugins/Tools/MirrorTool/__init__.py
|
||||
lib/uranium/plugins/Tools/MirrorTool/MirrorTool.py
|
||||
lib/uranium/plugins/Tools/MirrorTool/MirrorToolHandle.py
|
||||
lib/uranium/plugins/Tools/MirrorTool/__init__.py
|
||||
lib/uranium/plugins/Tools/MirrorTool/plugin.json
|
||||
lib/uranium/plugins/Tools/RotateTool/__init__.py
|
||||
lib/uranium/plugins/Tools/RotateTool/plugin.json
|
||||
lib/uranium/plugins/Tools/RotateTool/RotateTool.py
|
||||
lib/uranium/plugins/Tools/RotateTool/RotateTool.qml
|
||||
lib/uranium/plugins/Tools/RotateTool/RotateToolHandle.py
|
||||
lib/uranium/plugins/Tools/RotateTool/__init__.py
|
||||
lib/uranium/plugins/Tools/RotateTool/plugin.json
|
||||
lib/uranium/plugins/Tools/RotateTool/tests/TestRotateTool.py
|
||||
lib/uranium/plugins/Tools/ScaleTool/__init__.py
|
||||
lib/uranium/plugins/Tools/ScaleTool/plugin.json
|
||||
lib/uranium/plugins/Tools/ScaleTool/ScaleTool.py
|
||||
lib/uranium/plugins/Tools/ScaleTool/ScaleTool.qml
|
||||
lib/uranium/plugins/Tools/ScaleTool/ScaleToolHandle.py
|
||||
lib/uranium/plugins/Tools/ScaleTool/__init__.py
|
||||
lib/uranium/plugins/Tools/ScaleTool/plugin.json
|
||||
lib/uranium/plugins/Tools/ScaleTool/tests/TestScaleTool.py
|
||||
lib/uranium/plugins/Tools/SelectionTool/SelectionTool.py
|
||||
lib/uranium/plugins/Tools/SelectionTool/__init__.py
|
||||
lib/uranium/plugins/Tools/SelectionTool/plugin.json
|
||||
lib/uranium/plugins/Tools/SelectionTool/SelectionTool.py
|
||||
lib/uranium/plugins/Tools/TranslateTool/__init__.py
|
||||
lib/uranium/plugins/Tools/TranslateTool/plugin.json
|
||||
lib/uranium/plugins/Tools/TranslateTool/tests/TestTranslateTool.py
|
||||
lib/uranium/plugins/Tools/TranslateTool/TranslateTool.py
|
||||
lib/uranium/plugins/Tools/TranslateTool/TranslateTool.qml
|
||||
lib/uranium/plugins/Tools/TranslateTool/TranslateToolHandle.py
|
||||
lib/uranium/plugins/UpdateChecker/__init__.py
|
||||
lib/uranium/plugins/Tools/TranslateTool/__init__.py
|
||||
lib/uranium/plugins/Tools/TranslateTool/plugin.json
|
||||
lib/uranium/plugins/Tools/TranslateTool/tests/TestTranslateTool.py
|
||||
lib/uranium/plugins/UpdateChecker/AnnotatedUpdateMessage.py
|
||||
lib/uranium/plugins/UpdateChecker/NewBetaVersionMessage.py
|
||||
lib/uranium/plugins/UpdateChecker/NewVersionMessage.py
|
||||
lib/uranium/plugins/UpdateChecker/UpdateChecker.py
|
||||
lib/uranium/plugins/UpdateChecker/__init__.py
|
||||
lib/uranium/plugins/UpdateChecker/plugin.json
|
||||
lib/uranium/plugins/UpdateChecker/tests/__init__.py
|
||||
lib/uranium/plugins/UpdateChecker/tests/CuraAndCuraBeta1-0-0.json
|
||||
lib/uranium/plugins/UpdateChecker/tests/CuraOnly1-0-0.json
|
||||
lib/uranium/plugins/UpdateChecker/tests/TestUpdateChecker.py
|
||||
lib/uranium/plugins/UpdateChecker/UpdateChecker.py
|
||||
lib/uranium/plugins/UpdateChecker/tests/__init__.py
|
||||
lib/uranium/plugins/Views/SimpleView/SimpleView.py
|
||||
lib/uranium/plugins/Views/SimpleView/__init__.py
|
||||
lib/uranium/plugins/Views/SimpleView/plugin.json
|
||||
lib/uranium/plugins/Views/SimpleView/SimpleView.py
|
||||
share/cmake/Modules/UraniumTranslationTools.cmake
|
||||
share/uranium/resources/bundled_packages/uranium.json
|
||||
share/uranium/resources/i18n/cs_CZ/LC_MESSAGES/uranium.mo
|
||||
@ -328,17 +346,3 @@ share/uranium/resources/shaders/platform.shader
|
||||
share/uranium/resources/shaders/select_face.shader
|
||||
share/uranium/resources/shaders/selection.shader
|
||||
share/uranium/resources/shaders/toolhandle.shader
|
||||
share/uranium/scripts/ECMPoQmTools.cmake
|
||||
share/uranium/scripts/createjsoncontext.py
|
||||
share/uranium/scripts/createkeypair.py
|
||||
share/uranium/scripts/createplugincontext.py
|
||||
share/uranium/scripts/extract-all
|
||||
share/uranium/scripts/extract-json
|
||||
share/uranium/scripts/extract-messages
|
||||
share/uranium/scripts/extract-plugins
|
||||
share/uranium/scripts/extract-python
|
||||
share/uranium/scripts/extract-tr-strings
|
||||
share/uranium/scripts/pirate.py
|
||||
share/uranium/scripts/pirateofdoom.py
|
||||
share/uranium/scripts/signfile.py
|
||||
share/uranium/scripts/signfolder.py
|
||||
|
Loading…
Reference in New Issue
Block a user