solstice-anim

Geometry animation library of the solstice app
git clone git://git.meso-star.com/solstice-anim.git
Log | Files | Refs | README | LICENSE

commit 1910f1754180369674fc5d2c0cd72b290d356ffb
parent 7cfa01a4c2bcb2d18773718e5dcc9bbcc048b446
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue, 19 May 2026 15:49:36 +0200

Merge branch 'release_0.3'

Diffstat:
M.gitignore | 13+++++++------
AMakefile | 209+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MREADME.md | 62++++++++++++++++++++++++++++++++++++++++++--------------------
Dcmake/CMakeLists.txt | 116-------------------------------------------------------------------------------
Aconfig.mk | 84+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asanim.pc.in | 12++++++++++++
Msrc/sanim.h | 2+-
Msrc/sanim_node.c | 2+-
Msrc/sanim_node_c.h | 2+-
Asrc/sanim_version.h.in | 23+++++++++++++++++++++++
Msrc/test_sanim_node.c | 2+-
Msrc/test_sanim_node_pivot.c | 2+-
Msrc/test_sanim_node_transform.c | 2+-
Msrc/test_sanim_search.c | 2+-
Msrc/test_sanim_utils.c | 2+-
Msrc/test_sanim_utils.h | 2+-
Msrc/test_sanim_visit.c | 2+-
17 files changed, 387 insertions(+), 152 deletions(-)

diff --git a/.gitignore b/.gitignore @@ -1,12 +1,13 @@ -.gitignore -CMakeCache.txt -CMakeFiles -Makefile tmp [Bb]uild* *.sw[po] -*.[ao] +*.[aodt] *.orig +*.so *~ tags - +*.pc +test_sanim_* +!test_sanim_*.[ch] +src/sanim_version.h +src/.config* diff --git a/Makefile b/Makefile @@ -0,0 +1,209 @@ +# Copyright (C) 2016-2018 CNRS, 2018-2026 |Meso|Star> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +.POSIX: +.SUFFIXES: # Clean up default inference rules + +include config.mk + +LIBNAME_STATIC = libsanim.a +LIBNAME_SHARED = libsanim.so +LIBNAME = $(LIBNAME_$(LIB_TYPE)) + +default: library +all: default tests + +################################################################################ +# Library building +################################################################################ +SRC =\ + src/sanim_node.c +OBJ = $(SRC:.c=.o) +DEP = $(SRC:.c=.d) + +# Headers to configure +HDR=\ + src/sanim_version.h + +CFLAGS_LIB = $(CFLAGS_SO) $(INCS) -DSANIM_SHARED_BUILD +LDFLAGS_LIB = $(LDFLAGS_SO) $(LIBS) + +$(LIBNAME_SHARED) $(DEP) $(OBJ): src/.config + +library: $(DEP) + @$(MAKE) -fMakefile $$(for i in $(DEP); do echo -f $${i}; done) \ + $$(if [ -n "$(LIBNAME)" ]; then \ + echo "$(LIBNAME)"; \ + else \ + echo "$(LIBNAME_SHARED)"; \ + fi) + +$(LIBNAME_SHARED): $(OBJ) + $(CC) $(CFLAGS_LIB) -o $@ $(OBJ) $(LDFLAGS_LIB) + +$(LIBNAME_STATIC): src/libsanim.o + $(AR) -rc $@ $? + $(RANLIB) $@ + +src/libsanim.o: $(OBJ) + $(LD) -r $(OBJ) -o $@ + $(OBJCOPY) $(OCPFLAGS) $@ + +src/.config: config.mk + $(PKG_CONFIG) --atleast-version $(RSYS_VERSION) rsys + @echo "config done" > $@ + +$(DEP) : $(HDR) src/sanim.pc + @$(CC) $(CFLAGS_LIB) -MM -MT "$(@:.d=.o) $@" $(@:.d=.c) -MF $@ + +$(OBJ) : $(HDR) src/sanim.pc + $(CC) $(CFLAGS_LIB) -c $(@:.o=.c) -o $@ + +################################################################################ +# Installation +################################################################################ +pkg: src/sanim.pc + +src/sanim.pc: sanim.pc.in src/.config + sed -e 's#@PREFIX@#$(PREFIX)#g'\ + -e 's#@VERSION@#$(VERSION)#g'\ + -e 's#@RSYS_VERSION@#$(RSYS_VERSION)#g'\ + sanim.pc.in > $@ + +src/sanim_version.h: src/sanim_version.h.in src/.config + sed -e 's#@VERSION_MAJOR@#$(VERSION_MAJOR)#g' \ + -e 's#@VERSION_MINOR@#$(VERSION_MINOR)#g' \ + -e 's#@VERSION_PATCH@#$(VERSION_PATCH)#g' \ + src/sanim_version.h.in > $@ + +install: library pkg + install() { mode="$$1"; prefix="$$2"; shift 2; \ + mkdir -p "$${prefix}"; \ + cp "$$@" "$${prefix}"; \ + chmod "$${mode}" "$${prefix}/$${@##*/}"; \ + }; \ + if [ "$(LIB_TYPE)" = "STATIC" ]; then mode=644; else mode=755; fi; \ + install "$${mode}" "$(DESTDIR)$(LIBPREFIX)" $(LIBNAME); \ + install 644 "$(DESTDIR)$(LIBPREFIX)/pkgconfig" src/sanim.pc; \ + install 644 "$(DESTDIR)$(INCPREFIX)/solstice" src/sanim.h; \ + install 644 "$(DESTDIR)$(INCPREFIX)/solstice" src/sanim_version.h; \ + install 644 "$(DESTDIR)$(PREFIX)/share/doc/solstice-anim" COPYING; \ + install 644 "$(DESTDIR)$(PREFIX)/share/doc/solstice-anim" README.md + +uninstall: + rm -f "$(DESTDIR)$(LIBPREFIX)/$(LIBNAME)" + rm -f "$(DESTDIR)$(LIBPREFIX)/pkgconfig/sanim.pc" + rm -f "$(DESTDIR)$(INCPREFIX)/solstice/sanim.h" + rm -f "$(DESTDIR)$(INCPREFIX)/solstice/sanim_version.h" + rm -f "$(DESTDIR)$(PREFIX)/share/doc/solstice-anim/COPYING" + rm -f "$(DESTDIR)$(PREFIX)/share/doc/solstice-anim/README.md" + +clean: clean_test + rm -f $(HDR) $(DEP) $(OBJ) $(LIBNAME) + rm -f src/.config src/.config_test src/libsanim.o src/sanim.pc + +################################################################################ +# Tests +################################################################################ +TEST_SRC =\ + src/test_sanim_node.c\ + src/test_sanim_node_pivot.c\ + src/test_sanim_node_transform.c\ + src/test_sanim_search.c\ + src/test_sanim_visit.c +TEST_OBJ =\ + $(TEST_SRC:.c=.o)\ + src/test_sanim_utils.o +TEST_DEP =\ + $(TEST_SRC:.c=.d)\ + src/test_sanim_utils.d +TEST_TGT =\ + $(TEST_SRC:.c=.t)\ + src/test_sanim_utils.t + +src/sanim-local.pc: sanim.pc.in config.mk + sed -e '1d'\ + -e 's#^includedir=.*#includedir=./src/#'\ + -e 's#^libdir=.*#libdir=./#'\ + -e 's#@RSYS_VERSION@#$(RSYS_VERSION)#g'\ + sanim.pc.in > $@ + +# Regular cflags +PKG_CONFIG_LOCAL = PKG_CONFIG_PATH="src:$${PKG_CONFIG_PATH}" $(PKG_CONFIG) +INCS_TEST = $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --cflags rsys sanim-local) +LIBS_TEST = src/test_sanim_utils.o\ + $$($(PKG_CONFIG_LOCAL) $(PCFLAGS) --libs rsys sanim-local)\ + -lm + +tests: library src/sanim-local.pc $(TEST_DEP) $(TEST_TGT) + @$(MAKE) -fMakefile \ + $$(for i in $(TEST_DEP); do echo -f"$${i}"; done) \ + $$(for i in $(TEST_TGT); do echo -f"$${i}"; done) \ + test_list + +$(TEST_TGT): + @{ \ + exe="$$(basename "$@" ".t")"; \ + printf '%s: %s\n' "$${exe}" $(@:.t=.o); \ + printf 'test_list: %s\n' "$${exe}"; \ + } > $@ + +src/.config_test: config.mk + $(PKG_CONFIG) --atleast-version $(RSYS_VERSION) rsys + @echo "config done" > $@ + +clean_test: + rm -f src/sanim-local.pc src/.config_test + for i in $(TEST_SRC); do rm -f "$$(basename "$${i}" ".c")"; done + rm -f $(TEST_DEP) $(TEST_OBJ) $(TEST_TGT) + +test: tests + @err=0; \ + check() { name="$$1"; prog="$$2"; shift 2; \ + printf '%s' "$${name}"; \ + if PATH=./:"$${PATH}" "$${prog}" $$@ > /dev/null 2>&1; then \ + printf '\n'; \ + else \ + printf ': error %s\n' "$$?"; \ + err=$$((err+1)); \ + fi; \ + }; \ + \ + for i in $(TEST_SRC); do \ + test="$$(basename "$${i}" ".c")"; \ + check "$${test}" "$${test}"; \ + done; \ + \ + [ "$${err}" -eq 0 ] + +################################################################################ +# Regular tests +################################################################################ +CFLAGS_TEST = $(CFLAGS_EXE) $(INCS_TEST) +LDFLAGS_TEST = $(LDFLAGS_EXE) $(LIBS_TEST) + +$(TEST_DEP) : src/.config_test src/sanim-local.pc + @$(CC) $(CFLAGS_TEST) -MM -MT "$(@:.d=.o) $@" $(@:.d=.c) -MF $@ + +$(TEST_OBJ) : src/.config_test src/sanim-local.pc + $(CC) $(CFLAGS_TEST) -c $(@:.o=.c) -o $@ + +test_sanim_node\ +test_sanim_node_pivot\ +test_sanim_node_transform\ +test_sanim_search\ +test_sanim_visit\ +: config.mk src/sanim-local.pc $(LIBNAME) src/test_sanim_utils.o + $(CC) $(CFLAGS_TEST) -o $@ src/$@.o $(LDFLAGS_TEST) diff --git a/README.md b/README.md @@ -1,32 +1,54 @@ # Solstice Animation The purpose of this library is to compute the positioning of the constituents -of a solar facility. It has been developed in the scope of the Solstice project, -in collaboration with the -[Laboratory of Excellence Solstice](http://www.labex-solstice.fr) and the -[PROMES](http://www.promes.cnrs.fr/index.php?page=home-en) laboratory of the -National Center for Scientific Research ([CNRS](http://www.cnrs.fr/index.php)). +of a solar facility. It was developed as part of the +[Solstice](https://gitlab.com/meso-star/solstice) project, in collaboration with +the [Laboratory of Excellence Solstice](http://www.labex-solstice.fr) and the +[PROMES](http://www.promes.cnrs.fr/) laboratory of the National Center for +Scientific Research ([CNRS](http://www.cnrs.fr)). Starting in 2026, a new +development effort founded by [Ademe](https://www.ademe.fr/) is ongoing. ## How to build -The Solstice-Anim library relies on the [CMake](http://www.cmake.org) and the -[RCMake](https://gitlab.com/vaplv/rcmake/) package to build. -It also depends on the [RSys](https://gitlab.com/vaplv/rsys/) and on the -[OpenMP](http://www.openmp.org) 1.2 specification to parallelize its -computations. +This library, as part of the Solstice app, can be built on any POSIX system. -First ensure that CMake and a compiler that implements the OpenMP 1.2 -specification are installed on your system. Then install the RCMake package as -well as all the aforementioned prerequisites. Finally generate the project from -the `cmake/CMakeLists.txt` file by appending to the `CMAKE_PREFIX_PATH` -variable the install directories of its dependencies. +Note that you will most likely want to build the entire Solstice app rather than +this library alone. If so, a good starting point is the +[start-build](https://gitlab.com/meso-star/star-build) build system. + +The Solstice-Anim library relies on the [RSys](https://gitlab.com/vaplv/rsys/) +library, and on the [OpenMP](http://www.openmp.org) 1.2 specification to +parallelize its computations. + +First ensure that the make utility and a compiler that implements the OpenMP 1.2 +specification are installed on your system. Then install the above +prerequisites. Finally, edit the config.mk file to meet your needs and build +the project by running: + + make clean install ## Release notes +### Version 0.3 + +Replace CMake with a POSIX Makefile + +The build procedure is now written in POSIX make and can be configured via +the config.mk file. A pkg-config file is also provided to link the +library as an external dependency. + +Compared to the CMake alternative, this Makefile adds support for static +libraries and an uninstall target. It also enables compiler and linker +flags for various hardening features, improving the security and +robustness of generated binaries. More broadly, the motivation for this +rewrite is to rely on a well-established standard with a simple feature +set, available on all UNIX systems - reducing portability concerns and +maintenance burden while remaining significantly lighter. + ### Version 0.2.4 -Sets the CMake minimum version to 3.1: since CMake 3.20, version 2.8 has become -obsolete. +Raise the minimum required CMake version to 3.1, as version 2.8 has been +deprecated since CMake 3.20. ### Version 0.2.3 @@ -39,8 +61,8 @@ Fix a compilation issue that prevented building tests. ### Version 0.2.1 -Update the version of the RSys dependency to 0.6: replace the deprecated -`[N]CHECK` macros by the new macro `CHK`. +Update the RSys dependency to 0.6: replace the deprecated `[N]CHECK` macros by +the new macro `CHK`. ### Version 0.2 @@ -50,7 +72,7 @@ traversal. ## License -Copyright (C) 2018, 2020, 2021 |Meso|Star> (<contact@meso-star.com>). +Copyright (C) 2018-2026 |Meso|Star> (<contact@meso-star.com>). Copyright (C) 2016, 2017 CNRS. Solstice Animation is free software released under the GPL v3+ license: GNU GPL diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt @@ -1,116 +0,0 @@ -# Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) -# Copyright (C) 2016, 2017 CNRS -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -cmake_minimum_required(VERSION 3.1) -project(solstice-anim C) -enable_testing() - -set(SANIM_SOURCE_DIR ${PROJECT_SOURCE_DIR}/../src) -option(NO_TEST "Do not build tests" OFF) - -################################################################################ -# Check dependencies -################################################################################ -find_package(RCMake 0.4 REQUIRED) -find_package(RSys 0.10 REQUIRED) -find_package(OpenMP 1.2 REQUIRED) - -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${RCMAKE_SOURCE_DIR}) -include(rcmake) -include(rcmake_runtime) - -include_directories( - ${RSys_INCLUDE_DIR}) - -rcmake_append_runtime_dirs(_runtime_dirs RSys) - -################################################################################ -# Configure and define targets -################################################################################ -set(VERSION_MAJOR 0) -set(VERSION_MINOR 2) -set(VERSION_PATCH 4) -set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}) - -set(SANIM_FILES_SRC - sanim_node.c) - -set(SANIM_FILES_INC_API - sanim.h) - -set(SANIM_FILES_INC - sanim_node_c.h) - -set(SANIM_FILES_DOC COPYING README.md) - -# Prepend each file in the `SANIM_FILES_<SRC|INC>' list by `SANIM_SOURCE_DIR' -rcmake_prepend_path(SANIM_FILES_SRC ${SANIM_SOURCE_DIR}) -rcmake_prepend_path(SANIM_FILES_INC ${SANIM_SOURCE_DIR}) -rcmake_prepend_path(SANIM_FILES_INC_API ${SANIM_SOURCE_DIR}) -rcmake_prepend_path(SANIM_FILES_DOC ${PROJECT_SOURCE_DIR}/../) - -add_library(solstice-anim SHARED ${SANIM_FILES_SRC} ${SANIM_FILES_INC} ${SANIM_FILES_INC_API}) -target_link_libraries(solstice-anim RSys) - -if(CMAKE_COMPILER_IS_GNUCC) - target_link_libraries(solstice-anim m) -endif() - -set_target_properties(solstice-anim PROPERTIES - DEFINE_SYMBOL SANIM_SHARED_BUILD - COMPILE_FLAGS ${OpenMP_C_FLAGS} - VERSION ${VERSION} - SOVERSION ${VERSION_MAJOR}) - -if(CMAKE_COMPILER_IS_GNUCC) - set_target_properties(solstice-anim PROPERTIES - LINK_FLAGS ${OpenMP_C_FLAGS}) -endif() - -rcmake_setup_devel(solstice-anim SolAnim ${VERSION} solstice/sanim_version.h) - -################################################################################ -# Add tests -################################################################################ -if(NOT NO_TEST) - function(new_test _name) - add_executable(${_name} ${SANIM_SOURCE_DIR}/${_name}.c) - target_link_libraries(${_name} solstice-anim-test solstice-anim RSys) - add_test(${_name} ${_name}) - rcmake_set_test_runtime_dirs(${_name} _runtime_dirs) - endfunction() - - add_library(solstice-anim-test STATIC - ${SANIM_SOURCE_DIR}/test_sanim_utils.h - ${SANIM_SOURCE_DIR}/test_sanim_utils.c) - - new_test(test_sanim_node) - new_test(test_sanim_node_transform) - new_test(test_sanim_node_pivot) - new_test(test_sanim_search) - new_test(test_sanim_visit) -endif() - -################################################################################ -# Define output & install directories -################################################################################ -install(TARGETS solstice-anim - ARCHIVE DESTINATION bin - LIBRARY DESTINATION lib - RUNTIME DESTINATION bin) -install(FILES ${SANIM_FILES_INC_API} DESTINATION include/solstice) -install(FILES ${SANIM_FILES_DOC} DESTINATION share/doc/solstice-anim) - diff --git a/config.mk b/config.mk @@ -0,0 +1,84 @@ +VERSION_MAJOR = 0 +VERSION_MINOR = 3 +VERSION_PATCH = 0 +VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH) + +PREFIX = /usr/local +LIBPREFIX = $(PREFIX)/lib +INCPREFIX = $(PREFIX)/include + +LIB_TYPE = SHARED +#LIB_TYPE = STATIC + +BUILD_TYPE = RELEASE +#BUILD_TYPE = DEBUG + +################################################################################ +# Tools +################################################################################ +AR = ar +CC = cc +LD = ld +OBJCOPY = objcopy +PKG_CONFIG = pkg-config +RANLIB = ranlib + +################################################################################ +# Dependencies +################################################################################ +PCFLAGS_SHARED = +PCFLAGS_STATIC = --static +PCFLAGS = $(PCFLAGS_$(LIB_TYPE)) + +RSYS_VERSION = 0.15 + +INCS = $$($(PKG_CONFIG) $(PCFLAGS) --cflags rsys) +LIBS = $$($(PKG_CONFIG) $(PCFLAGS) --libs rsys) -lm + +################################################################################ +# Compilation options +################################################################################ +WFLAGS =\ + -Wall\ + -Wcast-align\ + -Wconversion\ + -Wextra\ + -Wmissing-declarations\ + -Wmissing-prototypes\ + -Wshadow + +CFLAGS_HARDENED =\ + -D_FORTIFY_SOURCES=2\ + -fcf-protection=full\ + -fstack-clash-protection\ + -fstack-protector-strong + +CFLAGS_COMMON =\ + -std=c89\ + -pedantic\ + -fvisibility=hidden\ + -fstrict-aliasing\ + $(CFLAGS_HARDENED)\ + $(WFLAGS) + +CFLAGS_RELEASE = -O2 -DNDEBUG $(CFLAGS_COMMON) +CFLAGS_DEBUG = -g $(CFLAGS_COMMON) +CFLAGS = $(CFLAGS_$(BUILD_TYPE)) + +CFLAGS_SO = $(CFLAGS) -fPIC +CFLAGS_EXE = $(CFLAGS) -fPIE + +################################################################################ +# Linker options +################################################################################ +LDFLAGS_HARDENED = -Wl,-z,relro,-z,now +LDFLAGS_DEBUG = $(LDFLAGS_HARDENED) +LDFLAGS_RELEASE = -s $(LDFLAGS_HARDENED) +LDFLAGS = $(LDFLAGS_$(BUILD_TYPE)) + +LDFLAGS_SO = $(LDFLAGS) -shared -Wl,--no-undefined +LDFLAGS_EXE = $(LDFLAGS) -pie + +OCPFLAGS_DEBUG = --localize-hidden +OCPFLAGS_RELEASE = --localize-hidden --strip-unneeded +OCPFLAGS = $(OCPFLAGS_$(BUILD_TYPE)) diff --git a/sanim.pc.in b/sanim.pc.in @@ -0,0 +1,12 @@ +prefix=@PREFIX@ +includedir=${prefix}/include +libdir=${prefix}/lib + +Requires: \ + rsys >= @RSYS_VERSION@ +Name: sanim +Description: Solstice Anim +Version: @VERSION@ +Libs: -L${libdir} -lsanim +Libs.private: -lm +CFlags: -I${includedir} diff --git a/src/sanim.h b/src/sanim.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/sanim_node.c b/src/sanim_node.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/sanim_node_c.h b/src/sanim_node_c.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/sanim_version.h.in b/src/sanim_version.h.in @@ -0,0 +1,23 @@ +/* Copyright (C) 2016-2018 CNRS, 2018-2026 |Meso|Star> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#ifndef SANIM_VERSION_H +#define SANIM_VERSION_H + +#define SANIM_VERSION_MAJOR @VERSION_MAJOR@ +#define SANIM_VERSION_MINOR @VERSION_MINOR@ +#define SANIM_VERSION_PATCH @VERSION_PATCH@ + +#endif /* SANIM_VERSION_H */ diff --git a/src/test_sanim_node.c b/src/test_sanim_node.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/test_sanim_node_pivot.c b/src/test_sanim_node_pivot.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/test_sanim_node_transform.c b/src/test_sanim_node_transform.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/test_sanim_search.c b/src/test_sanim_search.c @@ -1,5 +1,5 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/test_sanim_utils.c b/src/test_sanim_utils.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/test_sanim_utils.h b/src/test_sanim_utils.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify diff --git a/src/test_sanim_visit.c b/src/test_sanim_visit.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018, 2020, 2021 |Méso|Star> (contact@meso-star.com) +/* Copyright (C) 2018-2026 |Méso|Star> (contact@meso-star.com) * Copyright (C) 2016, 2017 CNRS * * This program is free software: you can redistribute it and/or modify