From nobody Wed Sep 04 19:46:38 2024 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4WzY0H0v5Mz5VGLq; Wed, 04 Sep 2024 19:46:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4WzY0H0Lpkz451v; Wed, 4 Sep 2024 19:46:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479199; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X2jxx9zQQB76oInjs/D5H3J937TPSnSuvFatjB5xIPo=; b=oI7jRGASbaDQzgo285q81fxpa1CoJt3XTTXe3mqMq6s9VG70EvJAXP3xQmaDVuy2r/Jgbo 473m4q+GQKtdxlUjca4y38xcnuth7GobbTJOrAsJob7uQFdOE36JpDjKXv/74dfca85z/c pHNVDCvXJESNDmqQAYZWqfiZh+0k06aO7Xx0yDrRgtcOm+imEHqGsfQsT4Qi39J9R27gcV mGMmTrEZeu8YXzwH948I8MK/rwTsNDYfix/H2kbjsEoklNCLw+XDDbbs2SbHWpyRxu1LDi 4O3x2X7e2o9Ho4bORzdT6+QkL9LoVf80gqUqqJgkZDW3PaXx/EwVXnVhNqyhZQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1725479199; a=rsa-sha256; cv=none; b=Wxq/ssrJPcUScm4zADBR+rLihrIyYRdNwW7Do0H0o4eIoAD9mmgkAImT0fWzl3fOm/dDyS woGhaLqbgbe45aed6I0kSutVBLlpuijg6F7RFCew92lRCOttA4p3BS3r8dLdEpp31fNik7 CWAda9dH2UVfoApsxGqSXdl98vwQcIW7L9ZmrnhuETVccTxpXA993w5yPDWcTzImrRCgvr rElO69/aqvM1U+iTCRfgwF2K9Bbm4XLoaGsozJdedhQkdxXIgQAVuvblOlkxTHl2dJbJ0u uw6z0TZbRPtzqsvhwbAxtBQZhfIq5tZIvt/1DFV/Zd7iBFz2pB6omq91OLxtiQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1725479199; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X2jxx9zQQB76oInjs/D5H3J937TPSnSuvFatjB5xIPo=; b=Vb+AEuMR1PDMhzk9gaHNBs4TZdBUyl+Z3R6plwtUNii7HrzLD4hn/Qo/rOUvS9M5u1iL9m Pwaq1V4CfxFm+eQVopJrwjGmS2x4cFLfA3rJhUhxgMV5ZuvMG9wsCH9PJVf7Z1izLjZRrM 6DK8QWQBfzDJEQskcMmL7hq6ciA8phhCXpuUCHBKQ80Labs7/zx4S0boE+eg6/vQ0BzUpO FMvENHEczneP3YARwUm1TOaz/ucVysO/U90LEH1IwpdVsupwPUg0vni3bQfHNhXAXoLnpW SmUaepmP3nF3jSCmScQCMlIq0vy10AmY25y/3Exw3IZlSJUvw3VbRC6QxtPqtA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4WzY0G73bPzdhg; Wed, 4 Sep 2024 19:46:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 484JkcpT012426; Wed, 4 Sep 2024 19:46:38 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 484JkcXf012423; Wed, 4 Sep 2024 19:46:38 GMT (envelope-from git) Date: Wed, 4 Sep 2024 19:46:38 GMT Message-Id: <202409041946.484JkcXf012423@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Diane Bruce Subject: git: 1cfd15859d06 - main - devel/libsavitar: Update for cura 5.7 upgrade List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-ports-main@freebsd.org Sender: owner-dev-commits-ports-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: db X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 1cfd15859d0639d1ae1aa367e2107f607280b854 Auto-Submitted: auto-generated The branch main has been updated by db: URL: https://cgit.FreeBSD.org/ports/commit/?id=1cfd15859d0639d1ae1aa367e2107f607280b854 commit 1cfd15859d0639d1ae1aa367e2107f607280b854 Author: Matthieu Volat AuthorDate: 2024-09-04 19:45:10 +0000 Commit: Diane Bruce CommitDate: 2024-09-04 19:45:10 +0000 devel/libsavitar: Update for cura 5.7 upgrade - modified for our build system from upstreams build system --- devel/libsavitar/Makefile | 25 ++- devel/libsavitar/distinfo | 8 +- devel/libsavitar/files/CMakeLists.txt | 176 ++++++++++++++++ devel/libsavitar/files/COPYING-CMAKE-SCRIPTS | 22 ++ devel/libsavitar/files/FindSIP.cmake | 64 ++++++ devel/libsavitar/files/FindSIP.py | 60 ++++++ devel/libsavitar/files/SIPMacros.cmake | 231 +++++++++++++++++++++ devel/libsavitar/files/SavitarConfig.cmake.in | 4 + devel/libsavitar/files/patch-CMakeLists.txt | 11 - .../libsavitar/files/patch-include_Savitar_Face.h | 15 ++ .../files/patch-include_Savitar_MeshData.h | 15 ++ .../files/patch-include_Savitar_Namespace.h | 24 +++ .../libsavitar/files/patch-include_Savitar_Scene.h | 15 ++ .../files/patch-include_Savitar_SceneNode.h | 15 ++ .../files/patch-include_Savitar_ThreeMFParser.h | 17 ++ .../files/patch-include_Savitar_Vertex.h | 15 ++ devel/libsavitar/files/patch-src_MeshData.cpp | 11 - devel/libsavitar/files/patch-src_Namespace.cpp | 11 - devel/libsavitar/files/patch-src_SceneNode.cpp | 11 - devel/libsavitar/pkg-descr | 1 + devel/libsavitar/pkg-plist | 3 +- 21 files changed, 697 insertions(+), 57 deletions(-) diff --git a/devel/libsavitar/Makefile b/devel/libsavitar/Makefile index 699b3c201bf6..4402f825597d 100644 --- a/devel/libsavitar/Makefile +++ b/devel/libsavitar/Makefile @@ -1,6 +1,5 @@ PORTNAME= libSavitar -DISTVERSION= 4.13.1 -PORTREVISION= 1 +DISTVERSION= 5.3.0 CATEGORIES= devel cad DIST_SUBDIR= Ultimaker @@ -11,17 +10,25 @@ WWW= https://github.com/Ultimaker/libSavitar LICENSE= LGPL3 LICENSE_FILE= ${WRKSRC}/LICENSE -DEPRECATED= Fails to build with modern python -EXPIRATION_DATE= 2024-06-29 - -BUILD_DEPENDS= sip:devel/py-sip4 +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sip>=0:devel/py-sip@${PY_FLAVOR} LIB_DEPENDS= libpugixml.so:textproc/pugixml -USES= cmake compiler:c++11-lang python pyqt:5 gettext-runtime +USES= cmake compiler:c++11-lang python pyqt:6 gettext-runtime USE_GITHUB= yes GH_ACCOUNT= Ultimaker +GH_TUPLE= Ultimaker:pySavitar:${PORTVERSION}:pySavitar USE_LDCONFIG= yes -CFLAGS+= "-I${LOCALBASE}/include" -LDFLAGS+= "-L${LOCALBASE}/lib" +CFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib + +post-extract: + @${MKDIR} ${WRKSRC}/cmake + @for f in COPYING-CMAKE-SCRIPTS FindSIP.cmake FindSIP.py SIPMacros.cmake; do \ + ${CP} ${FILESDIR}/$$f ${WRKSRC}/cmake; \ + done + @for f in CMakeLists.txt SavitarConfig.cmake.in; do \ + ${CP} ${FILESDIR}/$$f ${WRKSRC}; \ + done + @${CP} -r ${WRKDIR}/pySavitar-${DISTVERSION}/python ${WRKSRC} .include diff --git a/devel/libsavitar/distinfo b/devel/libsavitar/distinfo index 388b2bc869ae..fe660210b001 100644 --- a/devel/libsavitar/distinfo +++ b/devel/libsavitar/distinfo @@ -1,3 +1,5 @@ -TIMESTAMP = 1645698688 -SHA256 (Ultimaker/Ultimaker-libSavitar-4.13.1_GH0.tar.gz) = 0bd50f54d557bed70f2c8420405c690b819b287156e81e10b6f51651cebce2e9 -SIZE (Ultimaker/Ultimaker-libSavitar-4.13.1_GH0.tar.gz) = 100721 +TIMESTAMP = 1713950760 +SHA256 (Ultimaker/Ultimaker-libSavitar-5.3.0_GH0.tar.gz) = ed44dd42426ba4f592c2d83f652af5c2c60a1f619d16d31afa0babc2a0c997ce +SIZE (Ultimaker/Ultimaker-libSavitar-5.3.0_GH0.tar.gz) = 25406 +SHA256 (Ultimaker/Ultimaker-pySavitar-5.3.0_GH0.tar.gz) = 968a5c8306448ebe8129449b097d76eedd9e7ddfd1e68888a71975897374d281 +SIZE (Ultimaker/Ultimaker-pySavitar-5.3.0_GH0.tar.gz) = 13402 diff --git a/devel/libsavitar/files/CMakeLists.txt b/devel/libsavitar/files/CMakeLists.txt new file mode 100644 index 000000000000..1d0300ee0c80 --- /dev/null +++ b/devel/libsavitar/files/CMakeLists.txt @@ -0,0 +1,176 @@ +project(savitar) +cmake_minimum_required(VERSION 3.8) + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) +include(GenerateExportHeader) + +option(BUILD_PYTHON "Build " ON) +option(BUILD_STATIC "Build as a static library" OFF) +option(BUILD_TESTS "Building the test-suite" OFF) + +if(BUILD_TESTS) + message(STATUS "Building with tests...") + find_package(GTest REQUIRED) + find_package(Threads QUIET) +endif() + +#add_subdirectory(pugixml) + +if(BUILD_PYTHON) + list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) + + # 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. + if(${CMAKE_VERSION} VERSION_LESS 3.12) + # FIXME: Use FindPython3 to find Python, new in CMake 3.12. + # However currently on our CI server it finds the wrong Python version and then doesn't find the headers. + find_package(PythonInterp 3.4 REQUIRED) + find_package(PythonLibs 3.4 REQUIRED) + + else() + # Use FindPython3 for CMake >=3.12 + find_package(Python3 3.4 REQUIRED COMPONENTS Interpreter Development) + endif() + execute_process(COMMAND ${Python_EXECUTABLE} -c "import sysconfig; print(sysconfig.get_path('platlib'), end='')" OUTPUT_VARIABLE Python_SITEARCH) + + find_package(SIP REQUIRED) + if(NOT DEFINED LIB_SUFFIX) + set(LIB_SUFFIX "") + endif() + include(SIPMacros) + + include_directories(include/ python/ src/ ${SIP_INCLUDE_DIRS} ${Python3_INCLUDE_DIRS}) +endif() + +set(CMAKE_CXX_STANDARD 17) + +if(APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") +endif() + +set(savitar_SRCS + src/Namespace.cpp + src/ThreeMFParser.cpp + src/SceneNode.cpp + src/Scene.cpp + src/MeshData.cpp + src/Vertex.cpp + src/Face.cpp +) + +set(savitar_HDRS + include/Savitar/Face.h + include/Savitar/MeshData.h + include/Savitar/MetadataEntry.h + include/Savitar/Namespace.h + include/Savitar/Scene.h + include/Savitar/SceneNode.h + include/Savitar/ThreeMFParser.h + include/Savitar/Types.h + include/Savitar/Vertex.h + ${CMAKE_CURRENT_BINARY_DIR}/src/SavitarExport.h +) + +set(SAVITAR_VERSION 0.1.2) +set(SAVITAR_SOVERSION 0) + +set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}) + +if(BUILD_STATIC) + add_library(Savitar STATIC ${savitar_SRCS}) +else() + add_library(Savitar SHARED ${savitar_SRCS}) +endif() + +set(Savitar_LINK_LIBRARIES pugixml) +if(CMAKE_USE_PTHREADS_INIT) + list(APPEND Savitar_LINK_LIBRARIES pthread) +endif() +target_link_libraries(Savitar PUBLIC ${Savitar_LINK_LIBRARIES}) + +if(NOT WIN32 OR CMAKE_COMPILER_IS_GNUCXX) + set_target_properties(Savitar PROPERTIES COMPILE_FLAGS -fPIC) +endif() + +if(BUILD_PYTHON) + set(SIP_EXTRA_FILES_DEPEND python/Types.sip python/MeshData.sip python/SceneNode.sip python/Scene.sip) + #set(SIP_EXTRA_SOURCE_FILES python/Types.cpp) + set(SIP_EXTRA_OPTIONS -g -n PyQt6.sip) # -g means always release the GIL before calling C++ methods. -n PyQt6.sip is required to not get the PyCapsule error + generate_sip_python_module_code(pySavitar python/pySavitar.sip python/pySavitar.sip "${SIP_EXTRA_FILES_DEPEND}" pySavitar_cpp_files) + build_sip_python_module(pySavitar python/pySavitar.sip "${pySavitar_cpp_files};${SIP_EXTRA_SOURCE_FILES}" "" Savitar) +endif() + +target_include_directories(Savitar PUBLIC + $ + $ +) + +if(${CMAKE_BUILD_TYPE}) + if(${CMAKE_BUILD_TYPE} STREQUAL "Debug" OR ${CMAKE_BUILD_TYPE} STREQUAL "RelWithDebInfo") + add_definitions(-DSAVITAR_DEBUG) + endif() +endif() + +set_target_properties(Savitar PROPERTIES + FRAMEWORK FALSE + VERSION ${SAVITAR_VERSION} + SOVERSION ${SAVITAR_SOVERSION} + PUBLIC_HEADER "${savitar_HDRS}" + DEFINE_SYMBOL MAKE_SAVITAR_LIB + CXX_VISIBILITY_PRESET hidden + VISIBILITY_INLINES_HIDDEN 1 +) + +generate_export_header(Savitar + EXPORT_FILE_NAME src/SavitarExport.h +) +# This is required when building out-of-tree. +# The compiler won't find the generated header otherwise. +include_directories(${CMAKE_BINARY_DIR}/src) + +install(TARGETS Savitar + EXPORT Savitar-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/Savitar +) + +install(EXPORT Savitar-targets + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Savitar +) + +configure_package_config_file(SavitarConfig.cmake.in ${CMAKE_BINARY_DIR}/SavitarConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Savitar) +write_basic_package_version_file(${CMAKE_BINARY_DIR}/SavitarConfigVersion.cmake VERSION ${SAVITAR_VERSION} COMPATIBILITY SameMajorVersion) + +# List of tests. For each test there must be a file tests/${NAME}.cpp. +set(savitar_TEST + ThreeMFParserTest + MeshDataTest + NamespaceTest +) + +# Compiling the test environment. +if (BUILD_TESTS) + include_directories(${GTEST_INCLUDE_DIR}) + + enable_testing() + + #To make sure that the tests are built before running them, add the building of these tests as an additional test. + add_custom_target(build_all_tests) + add_test(BuildTests "${CMAKE_COMMAND}" --build ${CMAKE_CURRENT_BINARY_DIR} --target build_all_tests) + + foreach (test ${savitar_TEST}) + add_executable(${test} tests/main.cpp tests/${test}.cpp) + target_link_libraries(${test} Savitar ${GTEST_BOTH_LIBRARIES}) + add_test(${test} ${test}) + add_dependencies(build_all_tests ${test}) #Make sure that this gets built as part of the build_all_tests target. + endforeach() +endif() + +install(FILES + ${CMAKE_BINARY_DIR}/SavitarConfig.cmake + ${CMAKE_BINARY_DIR}/SavitarConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Savitar +) diff --git a/devel/libsavitar/files/COPYING-CMAKE-SCRIPTS b/devel/libsavitar/files/COPYING-CMAKE-SCRIPTS new file mode 100644 index 000000000000..4b417765f3a8 --- /dev/null +++ b/devel/libsavitar/files/COPYING-CMAKE-SCRIPTS @@ -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. diff --git a/devel/libsavitar/files/FindSIP.cmake b/devel/libsavitar/files/FindSIP.cmake new file mode 100644 index 000000000000..101a991d7de1 --- /dev/null +++ b/devel/libsavitar/files/FindSIP.cmake @@ -0,0 +1,64 @@ +# Find SIP +# ~~~~~~~~ +# +# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php +# +# Find the installed version of SIP. FindSIP should be called after Python +# has been found. +# +# This file defines the following variables: +# +# SIP_VERSION - The version of SIP found expressed as a 6 digit hex number +# suitable for comparison as a string. +# +# SIP_VERSION_STR - The version of SIP found as a human readable string. +# +# SIP_BINARY_PATH - Path and filename of the SIP command line executable. +# +# SIP_INCLUDE_DIR - Directory holding the SIP C++ header file. +# +# SIP_DEFAULT_SIP_DIR - Default directory where .sip files should be installed +# into. + +# Copyright (c) 2007, Simon Edwards +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + + +IF(SIP_VERSION) + # Already in cache, be silent + SET(SIP_FOUND TRUE) +ELSE(SIP_VERSION) + + FIND_FILE(_find_sip_py FindSIP.py PATHS ${CMAKE_MODULE_PATH} NO_CMAKE_FIND_ROOT_PATH) + + EXECUTE_PROCESS(COMMAND ${Python_EXECUTABLE} ${_find_sip_py} OUTPUT_VARIABLE sip_config) + IF(sip_config) + STRING(REGEX REPLACE "^sip_version:([^\n]+).*$" "\\1" SIP_VERSION ${sip_config}) + STRING(REGEX REPLACE ".*\nsip_version_num:([^\n]+).*$" "\\1" SIP_VERSION_NUM ${sip_config}) + STRING(REGEX REPLACE ".*\nsip_version_str:([^\n]+).*$" "\\1" SIP_VERSION_STR ${sip_config}) + STRING(REGEX REPLACE ".*\ndefault_sip_dir:([^\n]+).*$" "\\1" SIP_DEFAULT_SIP_DIR ${sip_config}) + IF(${SIP_VERSION_STR} VERSION_LESS 5) + STRING(REGEX REPLACE ".*\nsip_bin:([^\n]+).*$" "\\1" SIP_BINARY_PATH ${sip_config}) + STRING(REGEX REPLACE ".*\nsip_inc_dir:([^\n]+).*$" "\\1" SIP_INCLUDE_DIR ${sip_config}) + STRING(REGEX REPLACE ".*\nsip_module_dir:([^\n]+).*$" "\\1" SIP_MODULE_DIR ${sip_config}) + ELSE(${SIP_VERSION_STR} VERSION_LESS 5) + FIND_PROGRAM(SIP_BUILD_EXECUTABLE sip-build) + ENDIF(${SIP_VERSION_STR} VERSION_LESS 5) + SET(SIP_FOUND TRUE) + ENDIF(sip_config) + + IF(SIP_FOUND) + IF(NOT SIP_FIND_QUIETLY) + MESSAGE(STATUS "Found SIP version: ${SIP_VERSION_STR}") + ENDIF(NOT SIP_FIND_QUIETLY) + ELSE(SIP_FOUND) + IF(SIP_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find SIP") + ENDIF(SIP_FIND_REQUIRED) + ENDIF(SIP_FOUND) + +ENDIF(SIP_VERSION) + +ADD_DEFINITIONS(-DSIP_VERSION=0x${SIP_VERSION}) diff --git a/devel/libsavitar/files/FindSIP.py b/devel/libsavitar/files/FindSIP.py new file mode 100644 index 000000000000..2e8eea04bb56 --- /dev/null +++ b/devel/libsavitar/files/FindSIP.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# +# Copyright (c) 2007, Simon Edwards +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the Simon Edwards nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY Simon Edwards ''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 Simon Edwards 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. +# +# FindSIP.py +# Copyright (c) 2007, Simon Edwards +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +try: + import sipbuild + + print("sip_version:%06.0x" % sipbuild.version.SIP_VERSION) + print("sip_version_num:%d" % sipbuild.version.SIP_VERSION) + print("sip_version_str:%s" % sipbuild.version.SIP_VERSION_STR) + + import sysconfig + if "deb_system" in sysconfig.get_scheme_names(): + python_modules_dir = sysconfig.get_path("purelib", "deb_system") + else: + python_modules_dir = sysconfig.get_path("purelib") + print("default_sip_dir:%s" % python_modules_dir) +except ImportError: # Code for SIP v4 + import sipconfig + + sipcfg = sipconfig.Configuration() + print("sip_version:%06.0x" % sipcfg.sip_version) + print("sip_version_num:%d" % sipcfg.sip_version) + print("sip_version_str:%s" % sipcfg.sip_version_str) + print("sip_bin:%s" % sipcfg.sip_bin) + print("default_sip_dir:%s" % sipcfg.default_sip_dir) + print("sip_inc_dir:%s" % sipcfg.sip_inc_dir) + # SIP 4.19.10+ has new sipcfg.sip_module_dir + if hasattr(sipcfg, "sip_module_dir"): + print("sip_module_dir:%s" % sipcfg.sip_module_dir) + else: + print("sip_module_dir:%s" % sipcfg.sip_mod_dir) diff --git a/devel/libsavitar/files/SIPMacros.cmake b/devel/libsavitar/files/SIPMacros.cmake new file mode 100644 index 000000000000..9b3affa1ee1f --- /dev/null +++ b/devel/libsavitar/files/SIPMacros.cmake @@ -0,0 +1,231 @@ +# Macros for SIP +# ~~~~~~~~~~~~~~ +# Copyright (c) 2007, Simon Edwards +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# +# SIP website: http://www.riverbankcomputing.co.uk/sip/index.php +# +# This file defines the following macros: +# +# ADD_SIP_PYTHON_MODULE (MODULE_NAME MODULE_SIP [library1, libaray2, ...]) +# Specifies a SIP file to be built into a Python module and installed. +# MODULE_NAME is the name of Python module including any path name. (e.g. +# os.sys, Foo.bar etc). MODULE_SIP the path and filename of the .sip file +# to process and compile. libraryN are libraries that the Python module, +# which is typically a shared library, should be linked to. The built +# module will also be install into Python's site-packages directory. +# +# The behavior of the ADD_SIP_PYTHON_MODULE macro can be controlled by a +# number of variables: +# +# SIP_INCLUDES - List of directories which SIP will scan through when looking +# for included .sip files. (Corresponds to the -I option for SIP.) +# +# SIP_TAGS - List of tags to define when running SIP. (Corresponds to the -t +# option for SIP.) +# +# SIP_CONCAT_PARTS - An integer which defines the number of parts the C++ code +# of each module should be split into. Defaults to 8. (Corresponds to the +# -j option for SIP.) +# +# SIP_DISABLE_FEATURES - List of feature names which should be disabled +# running SIP. (Corresponds to the -x option for SIP.) +# +# SIP_EXTRA_OPTIONS - Extra command line options which should be passed on to +# SIP. + +# SIP_BUILD_EXTRA_OPTIONS - Extra command line options which should be passed on to +# sip-build. + +SET(SIP_INCLUDES) +SET(SIP_TAGS) +SET(SIP_CONCAT_PARTS 16) +SET(SIP_DISABLE_FEATURES) +SET(SIP_EXTRA_OPTIONS) +SET(SIP_EXTRA_OBJECTS) +SET(SIP_BUILD_EXTRA_OPTIONS) + +MACRO(GENERATE_SIP_PYTHON_MODULE_CODE MODULE_NAME MODULE_SIP SIP_FILES CPP_FILES) + + STRING(REPLACE "." "/" _x ${MODULE_NAME}) + GET_FILENAME_COMPONENT(_parent_module_path ${_x} PATH) + GET_FILENAME_COMPONENT(_child_module_name ${_x} NAME) + GET_FILENAME_COMPONENT(_module_path ${MODULE_SIP} PATH) + GET_FILENAME_COMPONENT(_abs_module_sip ${MODULE_SIP} ABSOLUTE) + + # If this is not need anymore (using input configuration file for SIP files) + # SIP could be run in the source rather than in binary directory + #SET(_configured_module_sip ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/${_module_path}.sip) + SET(_configured_module_sip ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/${_child_module_name}.sip) + FOREACH (_sip_file ${SIP_FILES}) + GET_FILENAME_COMPONENT(_sip_file_path ${_sip_file} PATH) + GET_FILENAME_COMPONENT(_sip_file_name_we ${_sip_file} NAME_WE) + #FILE(RELATIVE_PATH _sip_file_relpath ${BINDING_FILES_ROOT_DIR} "${_sip_file_path}/${_sip_file_name_we}") + SET(_sip_file_relpath "${_sip_file_path}/${_sip_file_name_we}") + SET(_out_sip_file "${CMAKE_CURRENT_BINARY_DIR}/${_sip_file_relpath}.sip") + CONFIGURE_FILE(${_sip_file} ${_out_sip_file}) + ENDFOREACH (_sip_file) + + SET(_message "-DMESSAGE=Generating CPP code for module ${MODULE_NAME}") + SET(_sip_output_files) + + # Suppress warnings + IF(PEDANTIC) + IF(MSVC) + ADD_DEFINITIONS( + /wd4189 # local variable is initialized but not referenced + /wd4996 # deprecation warnings (bindings re-export deprecated methods) + /wd4701 # potentially uninitialized variable used (sip generated code) + /wd4702 # unreachable code (sip generated code) + /wd4703 # potentially uninitialized local pointer variable 'sipType' used + ) + ELSE(MSVC) + # disable all warnings + ADD_DEFINITIONS( -w -Wno-deprecated-declarations ) + IF(NOT APPLE) + ADD_DEFINITIONS( -fpermissive ) + ENDIF(NOT APPLE) + ENDIF(MSVC) + ENDIF(PEDANTIC) + + IF(MSVC) + ADD_DEFINITIONS( /bigobj ) + ENDIF(MSVC) + + IF (SIP_BUILD_EXECUTABLE) + + FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}) # Output goes in this dir. + + SET(_sip_output_files + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_array.c + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_bool.cpp + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_core.c + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_descriptors.c + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_enum.c + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_int_convertors.c + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_object_map.c + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_threads.c + ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip_voidptr.c) + FOREACH(CONCAT_NUM RANGE 0 ${SIP_CONCAT_PARTS} ) + IF( ${CONCAT_NUM} LESS ${SIP_CONCAT_PARTS} ) + SET(_sip_output_files ${_sip_output_files} ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build/${_child_module_name}/sip${_child_module_name}part${CONCAT_NUM}.cpp ) + ENDIF( ${CONCAT_NUM} LESS ${SIP_CONCAT_PARTS} ) + ENDFOREACH(CONCAT_NUM RANGE 0 ${SIP_CONCAT_PARTS} ) + + #SET(SIPCMD ${SIP_BUILD_EXECUTABLE} --no-protected-is-public --pep484-pyi --no-make --concatenate=${SIP_CONCAT_PARTS} --qmake=${QMAKE_EXECUTABLE} --include-dir=${CMAKE_CURRENT_BINARY_DIR} --include-dir=${PYQT_SIP_DIR} --api-dir ${CMAKE_BINARY_DIR}/python ${SIP_BUILD_EXTRA_OPTIONS}) + LIST(JOIN SIP_EXTRA_INCLUDE_DIRS "\",\"" _sip_extra_includes) + FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/pyproject.toml "\ +[build-system]\n\ +requires = [\"sip >=6, <7\"]\n\ +build-backend = \"sipbuild.api\" +[tool.sip.metadata]\n\ +name = \"${_child_module_name}\"\n\ +[tool.sip.bindings.${_child_module_name}]\n\ +concatenate = ${SIP_CONCAT_PARTS}\n\ +include-dirs = [\"${_sip_extra_includes}\"]\n\ +protected-is-public = false\n\ +pep484-pyi = true\n\ +[tool.sip.project]\n\ +sip-files-dir = \"${CMAKE_CURRENT_SOURCE_DIR}/${_module_path}\"\n\ +") + SET(SIPCMD ${SIP_BUILD_EXECUTABLE} --no-compile ${SIP_BUILD_EXTRA_OPTIONS}) + + ADD_CUSTOM_COMMAND( + OUTPUT ${_sip_output_files} + COMMAND ${CMAKE_COMMAND} -E echo ${message} + COMMAND ${SIPCMD} + COMMAND ${CMAKE_COMMAND} -E touch ${_sip_output_files} + WORKING_DIRECTORY ${_module_path} + MAIN_DEPENDENCY ${_configured_module_sip} + DEPENDS ${SIP_EXTRA_FILES_DEPEND} + VERBATIM + ) + + ELSE (SIP_BUILD_EXECUTABLE) + + FILE(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}) # Output goes in this dir. + + SET(_sip_includes) + FOREACH (_inc ${SIP_INCLUDES}) + GET_FILENAME_COMPONENT(_abs_inc ${_inc} ABSOLUTE) + LIST(APPEND _sip_includes -I ${_abs_inc}) + ENDFOREACH (_inc ) + + SET(_sip_tags) + FOREACH (_tag ${SIP_TAGS}) + LIST(APPEND _sip_tags -t ${_tag}) + ENDFOREACH (_tag) + + SET(_sip_x) + FOREACH (_x ${SIP_DISABLE_FEATURES}) + LIST(APPEND _sip_x -x ${_x}) + ENDFOREACH (_x ${SIP_DISABLE_FEATURES}) + + FOREACH(CONCAT_NUM RANGE 0 ${SIP_CONCAT_PARTS} ) + IF( ${CONCAT_NUM} LESS ${SIP_CONCAT_PARTS} ) + SET(_sip_output_files ${_sip_output_files} ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/sip${_child_module_name}part${CONCAT_NUM}.cpp ) + ENDIF( ${CONCAT_NUM} LESS ${SIP_CONCAT_PARTS} ) + ENDFOREACH(CONCAT_NUM RANGE 0 ${SIP_CONCAT_PARTS} ) + + SET(SIPCMD ${SIP_BINARY_PATH} ${_sip_tags} -w -e ${_sip_x} ${SIP_EXTRA_OPTIONS} -j ${SIP_CONCAT_PARTS} -c ${CMAKE_CURRENT_BINARY_DIR}/${_module_path} -I ${CMAKE_CURRENT_BINARY_DIR}/${_module_path} ${_sip_includes} ${_configured_module_sip}) + ADD_CUSTOM_COMMAND( + OUTPUT ${_sip_output_files} + COMMAND ${CMAKE_COMMAND} -E echo ${message} + COMMAND ${CMAKE_COMMAND} -E touch ${_sip_output_files} + COMMAND ${SIPCMD} + MAIN_DEPENDENCY ${_configured_module_sip} + DEPENDS ${SIP_EXTRA_FILES_DEPEND} + VERBATIM + ) + + ENDIF (SIP_BUILD_EXECUTABLE) + + ADD_CUSTOM_TARGET(generate_sip_${MODULE_NAME}_cpp_files DEPENDS ${_sip_output_files}) + + SET(CPP_FILES ${_sip_output_files}) +ENDMACRO(GENERATE_SIP_PYTHON_MODULE_CODE) + +# Will compile and link the module +MACRO(BUILD_SIP_PYTHON_MODULE MODULE_NAME SIP_FILES EXTRA_OBJECTS) + SET(EXTRA_LINK_LIBRARIES ${ARGN}) + + # We give this target a long logical target name. + # (This is to avoid having the library name clash with any already + # install library names. If that happens then cmake dependency + # tracking get confused.) + STRING(REPLACE "." "_" _logical_name ${MODULE_NAME}) + SET(_logical_name "python_module_${_logical_name}") + GET_FILENAME_COMPONENT(_module_path ${SIP_FILES} PATH) + + ADD_LIBRARY(${_logical_name} MODULE ${_sip_output_files} ${EXTRA_OBJECTS}) + SET_PROPERTY(TARGET ${_logical_name} PROPERTY AUTOMOC OFF) + TARGET_INCLUDE_DIRECTORIES(${_logical_name} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/${_module_path}/build ${SIP_EXTRA_INCLUDE_DIRS}) + + IF (${SIP_VERSION_STR} VERSION_LESS 5.0.0) + # require c++14 only -- sip breaks with newer versions due to reliance on throw(...) annotations removed in c++17 + TARGET_COMPILE_FEATURES(${_logical_name} PRIVATE cxx_std_14) + ENDIF (${SIP_VERSION_STR} VERSION_LESS 5.0.0) + + SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES CXX_VISIBILITY_PRESET default) + IF (NOT APPLE) + TARGET_LINK_LIBRARIES(${_logical_name} ${Python_LIBRARIES}) + ENDIF (NOT APPLE) + TARGET_LINK_LIBRARIES(${_logical_name} ${EXTRA_LINK_LIBRARIES}) + IF (APPLE) + SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") + ENDIF (APPLE) + SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES PREFIX "" OUTPUT_NAME ${_child_module_name}) + + IF (WIN32) + SET_TARGET_PROPERTIES(${_logical_name} PROPERTIES SUFFIX ".pyd") + GET_TARGET_PROPERTY(_runtime_output ${_logical_name} RUNTIME_OUTPUT_DIRECTORY) + ADD_CUSTOM_COMMAND(TARGET ${_logical_name} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E echo "Copying extension ${_child_module_name}" + COMMAND ${CMAKE_COMMAND} -E copy_if_different "$" "${_runtime_output}/${_child_module_name}.pyd" + DEPENDS ${_logical_name} + ) + ENDIF(WIN32) + + INSTALL(TARGETS ${_logical_name} DESTINATION "${Python_SITEARCH}/${_parent_module_path}") +ENDMACRO(BUILD_SIP_PYTHON_MODULE MODULE_NAME SIP_FILES EXTRA_OBJECTS) diff --git a/devel/libsavitar/files/SavitarConfig.cmake.in b/devel/libsavitar/files/SavitarConfig.cmake.in new file mode 100644 index 000000000000..d6c83012c619 --- /dev/null +++ b/devel/libsavitar/files/SavitarConfig.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +include(${SELF_DIR}/Savitar-targets.cmake) diff --git a/devel/libsavitar/files/patch-CMakeLists.txt b/devel/libsavitar/files/patch-CMakeLists.txt deleted file mode 100644 index 350b4f496b75..000000000000 --- a/devel/libsavitar/files/patch-CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- CMakeLists.txt.orig 2020-05-11 21:56:56 UTC -+++ CMakeLists.txt -@@ -15,7 +15,7 @@ if(BUILD_TESTS) - find_package(Threads QUIET) - endif() - --add_subdirectory(pugixml) -+#add_subdirectory(pugixml) - - if(BUILD_PYTHON) - list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake) diff --git a/devel/libsavitar/files/patch-include_Savitar_Face.h b/devel/libsavitar/files/patch-include_Savitar_Face.h new file mode 100644 index 000000000000..9dcedda902e2 --- /dev/null +++ b/devel/libsavitar/files/patch-include_Savitar_Face.h @@ -0,0 +1,15 @@ +--- include/Savitar/Face.h.orig 2023-09-08 18:09:36 UTC ++++ include/Savitar/Face.h +@@ -4,9 +4,11 @@ + #ifndef FACE_H + #define FACE_H + ++#include "SavitarExport.h" ++ + namespace Savitar + { +-class Face ++class SAVITAR_EXPORT Face + { + public: + /** diff --git a/devel/libsavitar/files/patch-include_Savitar_MeshData.h b/devel/libsavitar/files/patch-include_Savitar_MeshData.h new file mode 100644 index 000000000000..855626826bb5 --- /dev/null +++ b/devel/libsavitar/files/patch-include_Savitar_MeshData.h @@ -0,0 +1,15 @@ +--- include/Savitar/MeshData.h.orig 2023-09-08 18:09:36 UTC ++++ include/Savitar/MeshData.h +@@ -14,9 +14,11 @@ + + #include + ++#include "SavitarExport.h" ++ + namespace Savitar + { +-class MeshData ++class SAVITAR_EXPORT MeshData + { + public: + /** diff --git a/devel/libsavitar/files/patch-include_Savitar_Namespace.h b/devel/libsavitar/files/patch-include_Savitar_Namespace.h new file mode 100644 index 000000000000..d5d104f896a6 --- /dev/null +++ b/devel/libsavitar/files/patch-include_Savitar_Namespace.h @@ -0,0 +1,24 @@ +--- include/Savitar/Namespace.h.orig 2023-09-08 18:09:36 UTC ++++ include/Savitar/Namespace.h +@@ -10,6 +10,8 @@ + + #include + ++#include "SavitarExport.h" ++ + namespace xml_namespace + { + using xmlns_map_t = std::map>; +@@ -17,8 +19,8 @@ using xmlns_map_t = std::map getNamesFor(const xmlns_map_t& map, const std::string& uri); ++[[nodiscard]] xmlns_map_t SAVITAR_EXPORT getAncestralNamespaces(const pugi::xml_node& xml_node); ++[[nodiscard]] std::set SAVITAR_EXPORT getNamesFor(const xmlns_map_t& map, const std::string& uri); + } // namespace xml_namespace + +-#endif +\ No newline at end of file ++#endif diff --git a/devel/libsavitar/files/patch-include_Savitar_Scene.h b/devel/libsavitar/files/patch-include_Savitar_Scene.h new file mode 100644 index 000000000000..cc2c03a81bda --- /dev/null +++ b/devel/libsavitar/files/patch-include_Savitar_Scene.h @@ -0,0 +1,15 @@ +--- include/Savitar/Scene.h.orig 2023-09-08 18:09:36 UTC ++++ include/Savitar/Scene.h +@@ -12,9 +12,11 @@ + + #include + ++#include "SavitarExport.h" ++ + namespace Savitar + { +-class Scene ++class SAVITAR_EXPORT Scene + { + public: + /** diff --git a/devel/libsavitar/files/patch-include_Savitar_SceneNode.h b/devel/libsavitar/files/patch-include_Savitar_SceneNode.h new file mode 100644 index 000000000000..70d290cb2291 --- /dev/null +++ b/devel/libsavitar/files/patch-include_Savitar_SceneNode.h @@ -0,0 +1,15 @@ +--- include/Savitar/SceneNode.h.orig 2023-09-08 18:09:36 UTC ++++ include/Savitar/SceneNode.h +@@ -13,9 +13,11 @@ + + #include + ++#include "SavitarExport.h" ++ + namespace Savitar + { +-class SceneNode ++class SAVITAR_EXPORT SceneNode + { + public: + SceneNode() = default; diff --git a/devel/libsavitar/files/patch-include_Savitar_ThreeMFParser.h b/devel/libsavitar/files/patch-include_Savitar_ThreeMFParser.h new file mode 100644 index 000000000000..0bf7a784c716 --- /dev/null +++ b/devel/libsavitar/files/patch-include_Savitar_ThreeMFParser.h @@ -0,0 +1,17 @@ +--- include/Savitar/ThreeMFParser.h.orig 2023-09-08 18:09:36 UTC ++++ include/Savitar/ThreeMFParser.h +@@ -8,11 +8,13 @@ + #include + + #include ++ ++#include "SavitarExport.h" + namespace Savitar + { + class Scene; + +-class ThreeMFParser ++class SAVITAR_EXPORT ThreeMFParser + { + public: + ThreeMFParser(); diff --git a/devel/libsavitar/files/patch-include_Savitar_Vertex.h b/devel/libsavitar/files/patch-include_Savitar_Vertex.h new file mode 100644 index 000000000000..d0d6a84c69cd --- /dev/null +++ b/devel/libsavitar/files/patch-include_Savitar_Vertex.h @@ -0,0 +1,15 @@ +--- include/Savitar/Vertex.h.orig 2023-09-08 18:09:36 UTC ++++ include/Savitar/Vertex.h +@@ -4,9 +4,11 @@ + #ifndef VERTEX_H + #define VERTEX_H + ++#include "SavitarExport.h" ++ + namespace Savitar + { +-class Vertex ++class SAVITAR_EXPORT Vertex + { + public: + /** diff --git a/devel/libsavitar/files/patch-src_MeshData.cpp b/devel/libsavitar/files/patch-src_MeshData.cpp deleted file mode 100644 index 9d8a5686dd02..000000000000 --- a/devel/libsavitar/files/patch-src_MeshData.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- src/MeshData.cpp.orig 2020-05-11 21:53:20 UTC -+++ src/MeshData.cpp -@@ -17,7 +17,7 @@ - */ - - #include "MeshData.h" --#include "../pugixml/src/pugixml.hpp" -+#include - #include - #include - #include //For std::runtime_error. diff --git a/devel/libsavitar/files/patch-src_Namespace.cpp b/devel/libsavitar/files/patch-src_Namespace.cpp deleted file mode 100644 index 5da35e038d06..000000000000 --- a/devel/libsavitar/files/patch-src_Namespace.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- src/Namespace.cpp.orig 2020-05-11 21:53:27 UTC -+++ src/Namespace.cpp -@@ -3,7 +3,7 @@ - - #include "Namespace.h" - --#include "../pugixml/src/pugixml.hpp" -+#include - - namespace xml_namespace - { diff --git a/devel/libsavitar/files/patch-src_SceneNode.cpp b/devel/libsavitar/files/patch-src_SceneNode.cpp deleted file mode 100644 index e055e80807d8..000000000000 --- a/devel/libsavitar/files/patch-src_SceneNode.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- src/SceneNode.cpp.orig 2020-05-11 21:53:40 UTC -+++ src/SceneNode.cpp -@@ -18,7 +18,7 @@ - - #include "SceneNode.h" - #include "Namespace.h" --#include "../pugixml/src/pugixml.hpp" -+#include - #include - using namespace Savitar; - diff --git a/devel/libsavitar/pkg-descr b/devel/libsavitar/pkg-descr index f962b12ae25c..738afe5cb309 100644 --- a/devel/libsavitar/pkg-descr +++ b/devel/libsavitar/pkg-descr @@ -1 +1,2 @@ libSavitar is a c++ implementation of 3mf loading with SIP python binding +Used by cura diff --git a/devel/libsavitar/pkg-plist b/devel/libsavitar/pkg-plist index 75bbae9ccc82..00931d01ba6e 100644 --- a/devel/libsavitar/pkg-plist +++ b/devel/libsavitar/pkg-plist @@ -1,5 +1,6 @@ include/Savitar/Face.h include/Savitar/MeshData.h +include/Savitar/MetadataEntry.h include/Savitar/Namespace.h include/Savitar/SavitarExport.h include/Savitar/Scene.h @@ -14,4 +15,4 @@ lib/cmake/Savitar/SavitarConfigVersion.cmake lib/libSavitar.so lib/libSavitar.so.0 lib/libSavitar.so.0.1.2 -%%PYTHON_SITELIBDIR%%/Savitar.so +%%PYTHON_SITELIBDIR%%/pySavitar.so