From 98119d581e1ec0d26e35ebb8e5cbc36b66cdf839 Mon Sep 17 00:00:00 2001 From: Charles PIGNEROL <> Date: Wed, 21 Jun 2023 11:17:23 +0200 Subject: [PATCH 1/3] Version 5.4.0 : sortie du projet GUIToolkits. --- CMakeLists.txt | 8 +- cmake/common.cmake | 54 --------- cmake/export.cmake | 30 ----- cmake/organization.cmake | 36 ------ cmake/packaging.cmake | 24 ---- cmake/version.cmake | 6 +- cmake/workarounds.cmake | 83 ------------- src/VtkContrib/CMakeLists.txt | 41 +++++-- .../cmake/VtkContribConfig.cmake.in | 8 +- .../public/VtkContrib/vtkImplicitTorus.h | 77 ++++++++++++ src/VtkContrib/vtkImplicitTorus.cpp | 73 ++++++++++++ src/tests/CMakeLists.txt | 12 +- src/tests/torus.cpp | 111 ++++++++++++++++++ versions.txt | 71 ++++++++++- 14 files changed, 380 insertions(+), 254 deletions(-) delete mode 100644 cmake/common.cmake delete mode 100644 cmake/export.cmake delete mode 100644 cmake/organization.cmake delete mode 100644 cmake/packaging.cmake delete mode 100644 cmake/workarounds.cmake create mode 100644 src/VtkContrib/public/VtkContrib/vtkImplicitTorus.h create mode 100644 src/VtkContrib/vtkImplicitTorus.cpp create mode 100644 src/tests/torus.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index c5c8d33..1cc0d5a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,14 +4,14 @@ cmake_minimum_required(VERSION 3.12) project (VtkContrib CXX C) include (GNUInstallDirs) + +find_package (GUIToolkitsVariables) + include (cmake/version.cmake) -include (cmake/common.cmake) +include (${GUIToolkitsVariables_CMAKE_DIR}/common.cmake) set (VtkContrib_VERSION ${VTK_CONTRIB_VERSION}) -# Partie normale de cmake : réalisation de Makefiles ... - -# Ici et pas ailleurs : CMAKE_VERBOSE_MAKEFILE set (CMAKE_VERBOSE_MAKEFILE ON) option (BUILD_SHARED_LIBS "Creation de bibliotheques dynamiques (defaut : ON)" ON) diff --git a/cmake/common.cmake b/cmake/common.cmake deleted file mode 100644 index 4a20ff5..0000000 --- a/cmake/common.cmake +++ /dev/null @@ -1,54 +0,0 @@ -# -# common.cmake : instructions de compilation partagées par tous les CMakeLists.txt. -# include (version.cmake) ici ne fonctionnenent pas. Why ??? Ce fichier est déjà un -#fichier déjà inclus ??? -# => include version.cmake avant celui-ci. -# - -include (${CMAKE_SOURCE_DIR}/cmake/organization.cmake) - - -# Compilation : -add_definitions (-DVTK_CONTRIB_VERSION="${VTK_CONTRIB_VERSION}") -set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXX_FLAGS}") -if (VTK_7) - message (STATUS "========================================= UTILISATION DE VTK 7 =========================================") - if (USE_OPENGL_BACKEND) - set (MANDATORY_CXX_OPTIONS -DMULTITHREADED_APPLICATION -DUSE_OPENGL_BACKEND -DVTK_7) # Public - set (MANDATORY_VTK_OPTIONS "-DvtkRenderingCore_AUTOINIT=3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL)" "-DvtkIOExport_AUTOINIT=1(vtkIOExportOpenGL)") - else (USE_OPENGL_BACKEND) - set (MANDATORY_CXX_OPTIONS -DMULTITHREADED_APPLICATION -DUSE_OPENGL2_BACKEND -DVTK_7) # Public - set (MANDATORY_VTK_OPTIONS "-DvtkRenderingCore_AUTOINIT=3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL2)" "-DvtkIOExport_AUTOINIT=1(vtkIOExportOpenGL2)") - endif (USE_OPENGL_BACKEND) - set (MANDATORY_PRIVATE_VTK_OPTIONS -DPATCH_VTK_MATH_SOLVE_LINEAR_SYSTEM) -elseif (VTK_8) - message (STATUS "========================================= UTILISATION DE VTK 8 =========================================") - set (MANDATORY_CXX_OPTIONS -DMULTITHREADED_APPLICATION -DUSE_OPENGL2_BACKEND -DVTK_8) # Public - set (MANDATORY_VTK_OPTIONS -DPATCH_VTK_MATH_SOLVE_LINEAR_SYSTEM) -elseif (VTK_9) - message (STATUS "========================================= UTILISATION DE VTK 9 =========================================") - set (MANDATORY_CXX_OPTIONS -DMULTITHREADED_APPLICATION -DUSE_OPENGL2_BACKEND -DVTK_9) # Public - set (MANDATORY_VTK_OPTIONS -DPATCH_VTK_MATH_SOLVE_LINEAR_SYSTEM) -else (VTK_7) - message (STATUS "========================================= VERSION DE VTK NON DEFINIE =========================================") - message (STATUS "==> UTILISEZ -DVTK_7=ON OU -DVTK_8=ON OU -DVTK_9=ON A LA LIGNE DE COMMANDE") -endif (VTK_7) - -if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") - add_definitions (-DNDEBUG) -endif() - -# Edition des liens : -# A l'installation les RPATHS utilisés seront ceux spécifiés ci-dessous (liste -# de répertoires séparés par des ;) : -#set (CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/${MT_INSTALL_SHLIB_DIR}) -#set (CMAKE_BUILD_WITH_INSTALL_RPATH ON) -# CMAKE_SKIP_BUILD_RPATH : avoir le rpath dans l'arborescence de developpement -set (CMAKE_SKIP_BUILD_RPATH OFF) -set (CMAKE_SKIP_RPATH OFF) - -set (CMAKE_SKIP_INSTALL_RPATH OFF) -#set (CMAKE_INSTALL_RPATH_USE_LINK_PATH ON) - -# ATTENTION : enleve le build tree du rpath : -#set (CMAKE_BUILD_WITH_INSTALL_RPATH ON) diff --git a/cmake/export.cmake b/cmake/export.cmake deleted file mode 100644 index 1f4ef88..0000000 --- a/cmake/export.cmake +++ /dev/null @@ -1,30 +0,0 @@ -# -# Création d'un tar.gz version ouverte du projet -# Créé le fichier nom_projet-version.tar.gz dans le répertoire parent du projet. -# - -# Requiert les variables cmake suivantes : -# PROJECT_NAME : nom du projet -# PROJECT_VERSION : version du projet -# EXPORTED_FILES_LIST : liste de fichiers et répertoires à archiver - -# IMPORTANT : EXPORTED_FILES_LIST doit être une liste et non une chaîne de caractères où chaque -# fichier/répertoire est séparé du précédant par un espace, car dans ce cas l'ensemble des -# fichiers/répertoires est considéré comme un seul et même argument par tar qui du coup ne -# trouve pas le fichier/répertoire considéré. - -string (TOLOWER ${PROJECT_NAME} PACKAGE_NAME) -get_filename_component (PROJECT_PARENT_DIR "${CMAKE_SOURCE_DIR}" PATH) -set (SOURCES_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${PROJECT_VERSION}.tar.gz") -message (STATUS "--> Archivage des fichiers et répertoires ${PROJECT_ROOT_DIR} dans le fichier ${PROJECT_PARENT_DIR}/${PACKAGE_NAME}-${PROJECT_VERSION}.tar.gz ...") -set (EXCLUDED_PATTERNS_OPTIONS "") -if (EXCLUDED_EXPORT_PATTERN) - foreach (PATTERN IN LISTS EXCLUDED_EXPORT_PATTERN) - list (APPEND EXCLUDED_PATTERNS_OPTIONS "-exclude" ${PATTERN}) - endforeach (PATTERN IN LISTS EXCLUDED_EXPORT_PATTERN) -endif (EXCLUDED_EXPORT_PATTERN) -execute_process (COMMAND expurge -expurge -r -in ${PROJECT_ROOT_DIR} -out ${CMAKE_BINARY_DIR}/${PROJECT_NAME} ${EXCLUDED_PATTERNS_OPTIONS} WORKING_DIRECTORY ${PROJECT_PARENT_DIR}) -execute_process (COMMAND tar cvfz ${SOURCES_PACKAGE_FILE_NAME} ${PROJECT_NAME} WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) -execute_process (COMMAND mv ${CMAKE_BINARY_DIR}/${PACKAGE_NAME}-${PROJECT_VERSION}.tar.gz ${PROJECT_PARENT_DIR}) -message (STATUS "--> Archive ouverte ${PROJECT_PARENT_DIR}/${PACKAGE_NAME}-${PROJECT_VERSION}.tar.gz créée.") - diff --git a/cmake/organization.cmake b/cmake/organization.cmake deleted file mode 100644 index a985c91..0000000 --- a/cmake/organization.cmake +++ /dev/null @@ -1,36 +0,0 @@ -# -# organization.cmake : organisation des répertoires du projet -# - - -# L'installation : -# ================ - -# Le répertoire d'installation où sont mis les fichiers cmake à destination des utilisateurs (Module/cmake) : -set (CMAKE_CMAKE_ROOT_DIR ${CMAKE_INSTALL_LIBDIR}) -set (CMAKE_CMAKE_DIR ${CMAKE_CMAKE_ROOT_DIR}/${CURRENT_PACKAGE_NAME}/cmake) - -# Répertoire d'installation des bibliothèques (pour le RPATH) : -set (CMAKE_PACKAGE_RPATH_DIR ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}) - -# Module:: -set (CMAKE_MODULE_NAMESPACE ${CURRENT_PACKAGE_NAME}::) - -# ModuleConfig -set (CMAKE_PACKAGE_CONFIG_NAME ${CURRENT_PACKAGE_NAME}Config) - -# ModuleTargets -set (CMAKE_PACKAGE_TARGETS_NAME ${CURRENT_PACKAGE_NAME}Targets) - -# Le répertoire des fichiers de configuration (lib/Module/cmake) : -set (CMAKE_PACKAGE_CONFIG_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CURRENT_PACKAGE_NAME}) - -# Le Fichier lib/Module/cmake/ModuleConfigVersion.cmake : -set (CMAKE_PACKAGE_CONFIG_FILE ${CMAKE_PACKAGE_CONFIG_DIR}/${CMAKE_PACKAGE_CONFIG_NAME}.cmake) - -# Le Fichier lib/Module/cmake/ModuleConfigVersion.cmake : -set (CMAKE_PACKAGE_VERSION_FILE ${CMAKE_PACKAGE_CONFIG_DIR}/${CMAKE_PACKAGE_CONFIG_NAME}Version.cmake) - -# Le Fichier lib/Module/cmake/ModuleTargets.cmake : -set (CMAKE_PACKAGE_TARGETS_BASENAME ${CMAKE_PACKAGE_TARGETS_NAME}.cmake) -set (CMAKE_PACKAGE_TARGETS_FILE ${CMAKE_PACKAGE_CONFIG_DIR}/${CMAKE_PACKAGE_TARGETS_BASENAME}) diff --git a/cmake/packaging.cmake b/cmake/packaging.cmake deleted file mode 100644 index 47039a6..0000000 --- a/cmake/packaging.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# -# Création d'un tar.gz du projet -# Créé le fichier nom_projet-version.tar.gz dans le répertoire parent du projet. -# - -# Requiert les variables cmake suivantes : -# PROJECT_NAME : nom du projet -# PROJECT_VERSION : version du projet -# ARCHIVED_FILES_LIST : liste de fichiers et répertoires à archiver - -# IMPORTANT : ARCHIVED_FILES_LIST doit être une liste et non une chaîne de caractère où chaque -# fichier/répertoire est séparé du précédant par un espace, car dans ce cas l'ensemble des -# fichiers/répertoires est considéré comme un seul et même arguement par tar qui du coup ne -# trouve pas le fichier/répertoire considéré. - -string (TOLOWER ${PROJECT_NAME} PACKAGE_NAME) -get_filename_component (PROJECT_PARENT_DIR "${CMAKE_SOURCE_DIR}" PATH) -set (SOURCES_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${PROJECT_VERSION}.tar.gz") -message (STATUS "--> Archivage des fichiers et répertoires ${ARCHIVED_FILES} dans le fichier ${PROJECT_PARENT_DIR}/${PACKAGE_NAME}-${PROJECT_VERSION}.tar.gz ...") -# Rem : les 2 commandes ci-dessous fonctionnent -#execute_process (COMMAND tar cvfz ${PROJECT_PARENT_DIR}/${SOURCES_PACKAGE_FILE_NAME} -C ${PROJECT_PARENT_DIR} ${ARCHIVED_FILES_LIST}) -execute_process (COMMAND tar cvfz ${SOURCES_PACKAGE_FILE_NAME} ${ARCHIVED_FILES_LIST} WORKING_DIRECTORY ${PROJECT_PARENT_DIR}) -message (STATUS "--> Archive ${PROJECT_PARENT_DIR}/${PACKAGE_NAME}-${PROJECT_VERSION}.tar.gz créée.") - diff --git a/cmake/version.cmake b/cmake/version.cmake index 89e57ff..683de59 100644 --- a/cmake/version.cmake +++ b/cmake/version.cmake @@ -2,9 +2,9 @@ # version.cmake : version du projet # -set (VTK_CONTRIB_MAJOR_VERSION "4") -set (VTK_CONTRIB_MINOR_VERSION "8") -set (VTK_CONTRIB_RELEASE_VERSION "4") +set (VTK_CONTRIB_MAJOR_VERSION "5") +set (VTK_CONTRIB_MINOR_VERSION "4") +set (VTK_CONTRIB_RELEASE_VERSION "0") set (VTK_CONTRIB_VERSION ${VTK_CONTRIB_MAJOR_VERSION}.${VTK_CONTRIB_MINOR_VERSION}.${VTK_CONTRIB_RELEASE_VERSION}) diff --git a/cmake/workarounds.cmake b/cmake/workarounds.cmake deleted file mode 100644 index 18209a8..0000000 --- a/cmake/workarounds.cmake +++ /dev/null @@ -1,83 +0,0 @@ -# -# workarounds.cmake -# -# Version 0.9.0 (27/09/2021) -# -# On définit ici les contournement aux problèmes de type build-system rencontrés dans le projet -# -include (CMakeDetermineCXXCompiler) - -message ("CMAKE_SYSTEM_NAME=" ${CMAKE_SYSTEM_NAME}) -find_program(CCC_OS_FOUND ccc_os) -if (CCC_OS_FOUND) - execute_process (COMMAND ccc_os OUTPUT_VARIABLE PLATFORM OUTPUT_STRIP_TRAILING_WHITESPACE) -endif (CCC_OS_FOUND) - -if (NOT PLATFORM) - execute_process (COMMAND lsb_release -d COMMAND awk "{print $2;}" OUTPUT_VARIABLE PLATFORM OUTPUT_STRIP_TRAILING_WHITESPACE) -endif (NOT PLATFORM) -message ("PLATFORM=" ${PLATFORM}) -message ("LANGUAGES=" ${LANGUAGES}) -message ("CXX=" ${CXX}) -message ("CMAKE_CXX_COMPILER=" ${CMAKE_CXX_COMPILER}) -message ("_CMAKE_TOOLCHAIN_PREFIX=" ${_CMAKE_TOOLCHAIN_PREFIX}) -message ("COMPILER_BASENAME=" ${COMPILER_BASENAME}) - -# Les répertoires de recherche par le compilateur des bibliothèques (a priori portable g++/icpc/clang++) : -# Méthode 1 (ça marche), en passant par bash : -#execute_process(COMMAND bash "-c" "LANG=C ${CMAKE_CXX_COMPILER} -print-search-dirs | sed -n 's/libraries: =//gp' | tr -s ':' ';'" OUTPUT_VARIABLE GNU_LIBRARIES_SEARCH_DIR) -#message ( "GNU_LIBRARIES_SEARCH_DIR=""${GNU_LIBRARIES_SEARCH_DIR}") -#find_library (STDC_LIB stdc++ PATHS ${GNU_LIBRARIES_SEARCH_DIR}) -# Méthode 2 : version cmake en pipant les commandes : -execute_process (COMMAND bash "-c" "LANG=C LC_ALL=C ${CMAKE_CXX_COMPILER} -print-search-dirs" COMMAND /usr/bin/sed -n "s/libraries: =//gp" COMMAND tr -s ":" ";" OUTPUT_VARIABLE LIBRARIES_SEARCH_DIR) -find_library (STDC_LIB stdc++ PATHS ${LIBRARIES_SEARCH_DIR}) - -# Aspects C++ : à affiner si nécessaire avec CMakeDetermineCXXCompiler.cmake -get_filename_component (CXX_BIN_DIR ${CMAKE_CXX_COMPILER} DIRECTORY) -get_filename_component (CXX_NAME ${CMAKE_CXX_COMPILER} NAME) -get_filename_component (CXX_ROOT_DIR ${CXX_BIN_DIR} DIRECTORY) -message (STATUS "CXX_ROOT_DIR=${CXX_ROOT_DIR} CXX_NAME=${CXX_NAME} CMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") -message (STATUS "CMAKE_COMPILER_IS_GNUCXX=" ${CMAKE_COMPILER_IS_GNUCXX}) - -# Ubuntu 17 et 18 : le RUNPATH n'est pas transitif => bien que runpath soit bien positionné (readelf -a executable | grep PATH) les libs utilisées de manière -# indirectes ne sont pas trouvées, et requiert un positionnement de la variable LD_LIBRARY_PATH. -# On force à utiliser un RPATH à l'édition des liens via l'option --disable-new-dtags du linker. A noter que transmise -# à la ligne de commande via -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--disable-new-dtags" cette option est curieusement ignorée. -#execute_process (COMMAND uname -a OUTPUT_VARIABLE FULL_PLATFORM OUTPUT_STRIP_TRAILING_WHITESPACE) -#string (REGEX MATCH "Ubuntu" IS_UBUNTU "${FULL_PLATFORM}") -#string (REGEX MATCH "(17|18)" IS_17_OR_18 "${FULL_PLATFORM}") -#message (STATUS "IS_UBUNTU=${IS_UBUNTU} IS_17_OR_18=${IS_17_OR_18}") -#if (IS_UBUNTU AND IS_17_OR_18) -if (PLATFORM STREQUAL "Ubuntu") - message (STATUS "PLATFORM UBUNTU 17 OR 18 DETECTED => USING RPATH INSTEADOF RUNPATH (${FULL_PLATFORM}") - add_link_options ("-Wl,--disable-new-dtags") -endif (PLATFORM STREQUAL "Ubuntu") - -if (CMAKE_COMPILER_IS_GNUCXX) - if ((PLATFORM STREQUAL "CentOS") OR (PLATFORM STREQUAL "RedHat-7-x86_64") OR (PLATFORM STREQUAL "Atos_7__x86_64") OR (PLATFORM STREQUAL "Rhel_8__x86_64")) -# On force le lien à cette version de la libstdc++. C'est nécessaire pour les wrappers swig/python lorsqu'on utilise directement -# le fichier python => chargement par python de _module.so qui, sans cette directive, chargement /lib64/libstdc++.so qui n'aura -# pas une ABI assez récente ... - message ("==> Ajout de la bibliothèque " ${STDC_LIB} " à l'édition des liens.") - link_libraries (${STDC_LIB}) - get_filename_component (STDC_LIB_DIR ${STDC_LIB} DIRECTORY) - message ("==> Ajout de du répertoire " ${STDC_LIB_DIR} " à l'édition des liens.") -# link_directories (BEFORE "${STDC_LIB_DIR}") - add_link_options ("-Wl,-rpath,${STDC_LIB_DIR}") # It works - endif ( ) - if (PLATFORM STREQUAL "Atos_7__x86_64") # Malgré include (FindThreads) et target_link_libraries (mylib PUBLIC Threads::Threads) le -lpthread ne suit pas toujours en cmake 3.14 - link_libraries (pthread) - endif() -elseif (CXX_NAME STREQUAL "icpc") - # Alors là c'est très fort. Il n'y a que du c++ et pourtant icpc 17.0.4.196 link avec les libs imf et autres, sans -Wl,-rpath - # Donc on rajoute ça ... - message (STATUS "CXX IS ICPC") - find_library (INTEL_LIB intlc PATHS ${LIBRARIES_SEARCH_DIR}) - if (INTEL_LIB) - get_filename_component (INTEL_LIB_DIR ${INTEL_LIB} DIRECTORY) - message ("==> Ajout de du répertoire " ${INTEL_LIB_DIR} " à l'édition des liens.") - add_link_options ("-Wl,-rpath,${INTEL_LIB_DIR}") # It works - endif (INTEL_LIB) -endif (CMAKE_COMPILER_IS_GNUCXX) - - diff --git a/src/VtkContrib/CMakeLists.txt b/src/VtkContrib/CMakeLists.txt index 68df066..604d8e1 100644 --- a/src/VtkContrib/CMakeLists.txt +++ b/src/VtkContrib/CMakeLists.txt @@ -1,20 +1,27 @@ set (CURRENT_PACKAGE_NAME "VtkContrib") set (CURRENT_PACKAGE_MACRO_NAME "VTK_CONTRIB") +find_package (GUIToolkitsVariables) +find_package (OpenGL) # Pour Spack 0.18.1 + include (${CMAKE_SOURCE_DIR}/cmake/version.cmake) -include (${CMAKE_SOURCE_DIR}/cmake/common.cmake) -include (${CMAKE_SOURCE_DIR}/cmake/workarounds.cmake) +include (${GUIToolkitsVariables_CMAKE_DIR}/common.cmake) +include (${CMAKE_SOURCE_DIR}/cmake/vtkcontrib_common.cmake) +include (${GUIToolkitsVariables_CMAKE_DIR}/workarounds.cmake) # Curieusement les dépendances semblent inexister avec cette version de VTK, ou ne sont pas bien prises en compte ... # => On ajoute MPI if (VTK_7) + if (MPI_mpi_LIBRARY) + set (VTK_PARALLEL_PACKAGES vtkParallelMPI vtkRenderingParallel vtkParallelCore) + endif (MPI_mpi_LIBRARY) if (USE_OPENGL_BACKEND) - set (VTK_REQUIRED_PACKAGES vtkRenderingLOD vtkInteractionStyle vtkFiltersHybrid vtkFiltersExtraction vtkFiltersCore vtkCommonTransforms vtkCommonMath vtkInteractionWidgets vtkParallelMPI vtkRenderingParallel vtkParallelCore vtkImagingHybrid vtkRenderingOpenGL vtkRenderingFreeType vtkRenderingLabel vtkFiltersImaging vtkRenderingGL2PS vtkIOImage vtkIOLegacy vtkIOExportOpenGL vtkIOExport vtkIOXML vtkIOCore vtkCommonExecutionModel vtkCommonDataModel vtkRenderingAnnotation vtkFiltersSources vtkFiltersGeometry vtkFiltersGeneral vtkRenderingCore vtkCommonSystem vtkCommonCore vtkgl2ps vtkpng vtksys) + set (VTK_REQUIRED_PACKAGES vtkRenderingLOD vtkInteractionStyle vtkFiltersHybrid vtkFiltersExtraction vtkFiltersCore vtkCommonTransforms vtkCommonMath vtkInteractionWidgets vtkImagingHybrid vtkRenderingOpenGL vtkRenderingFreeType vtkRenderingLabel vtkFiltersImaging vtkRenderingGL2PS vtkIOImage vtkIOLegacy vtkIOExportOpenGL vtkIOExport vtkIOXML vtkIOCore vtkCommonExecutionModel vtkCommonDataModel vtkRenderingAnnotation vtkFiltersSources vtkFiltersGeometry vtkFiltersGeneral vtkRenderingCore vtkCommonSystem vtkCommonCore vtkgl2ps vtkpng vtksys) set (VTK_OPENGL_BACKEND OpenGL) else (USE_OPENGL_BACKEND) set (VTK_REQUIRED_PACKAGES vtkRenderingLOD vtkInteractionStyle vtkFiltersHybrid vtkFiltersExtraction vtkFiltersCore # - vtkCommonTransforms vtkCommonMath vtkInteractionWidgets vtkParallelMPI vtkRenderingParallel # - vtkParallelCore vtkImagingHybrid vtkRenderingOpenGL2 vtkRenderingFreeType vtkRenderingLabel # + vtkCommonTransforms vtkCommonMath vtkInteractionWidgets # + vtkImagingHybrid vtkRenderingOpenGL2 vtkRenderingFreeType vtkRenderingLabel # vtkFiltersImaging vtkRenderingGL2PSOpenGL2 vtkIOImage vtkIOLegacy vtkIOExportOpenGL2 vtkIOExport # vtkIOXML vtkIOCore vtkCommonExecutionModel vtkCommonDataModel vtkRenderingAnnotation vtkFiltersSources # vtkFiltersGeometry vtkFiltersGeneral vtkRenderingCore vtkCommonCore vtkgl2ps vtkpng vtksys # @@ -24,26 +31,37 @@ if (VTK_7) set (VTK_OPENGL_BACKEND OpenGL2) endif (USE_OPENGL_BACKEND) find_package (VTK 7.1 REQUIRED COMPONENTS ${VTK_REQUIRED_PACKAGES}) - set (VTK_LIB_DEPENDENCIES ${VTK_REQUIRED_PACKAGES}) + set (VTK_LIB_DEPENDENCIES ${VTK_PARALLEL_PACKAGES} ${VTK_REQUIRED_PACKAGES}) set (VTK_INC_DEPENDENCIES ${VTK_INCLUDE_DIRS}) # Suite pb sur une plateforme : if (MPI_mpi_LIBRARY) set (VTK_LIB_DEPENDENCIES "${VTK_LIB_DEPENDENCIES};${MPI_mpi_LIBRARY}") endif (MPI_mpi_LIBRARY) # if (MPI_mpi_LIBRARY) elseif (VTK_8) - set (VTK_REQUIRED_PACKAGES vtkParallelMPI vtkParallelCore vtkRenderingParallel vtkIOExport vtkIOImage vtkInteractionWidgets vtkRenderingOpenGL2) - find_package (VTK 8 REQUIRED COMPONENTS ${VTK_REQUIRED_PACKAGES}) + if (MPI_mpi_LIBRARY) + set (VTK_PARALLEL_PACKAGES vtkParallelCore vtkRenderingParallel) + endif (MPI_mpi_LIBRARY) + set (VTK_REQUIRED_PACKAGES vtkIOExport vtkIOImage vtkInteractionWidgets vtkRenderingOpenGL2) + find_package (VTK 8 REQUIRED COMPONENTS ${VTK_PARALLEL_PACKAGES} ${VTK_REQUIRED_PACKAGES}) include(${VTK_USE_FILE}) # From Examples/GUI/Qt/ImageViewer/CMakeLists.txt set (VTK_LIB_DEPENDENCIES ${VTK_LIBRARIES}) set (VTK_INC_DEPENDENCIES) # Empty, not usefull with VTK 8 set (VTK_OPENGL_BACKEND OpenGL2) elseif (VTK_9) message (STATUS "========================================= UTILISATION DE VTK 9 =========================================") - set (VTK_REQUIRED_PACKAGES ParallelMPI IOMPIParallel IOParallel ParallelCore ParallelMPI IOExport IOImage InteractionWidgets RenderingOpenGL2) - find_package (VTK 9 REQUIRED COMPONENTS ${VTK_REQUIRED_PACKAGES}) + if (MPI_mpi_LIBRARY) + set (VTK_PARALLEL_PACKAGES ParallelMPI IOParallel ParallelCore) + endif (MPI_mpi_LIBRARY) + set (VTK_REQUIRED_PACKAGES ImagingHybrid ImagingCore IOExport IOImage InteractionWidgets RenderingOpenGL2) + find_package (VTK 9 REQUIRED COMPONENTS ${VTK_PARALLEL_PACKAGES} ${VTK_REQUIRED_PACKAGES}) set (VTK_LIB_DEPENDENCIES ${VTK_LIBRARIES}) set (VTK_INC_DEPENDENCIES) # Empty, not usefull with VTK 9 set (VTK_OPENGL_BACKEND OpenGL2) + if (MPI_mpi_LIBRARY) + set (VTK_LIB_DEPENDENCIES "${VTK_LIB_DEPENDENCIES};${MPI_mpi_LIBRARY}") + endif (MPI_mpi_LIBRARY) # if (MPI_mpi_LIBRARY) +else (VTK_9) + message (FATAL_ERROR "==> UTILISEZ -DVTK_7:BOOL=ON OU -DVTK_8:BOOL=ON OU -DVTK_9:BOOL=ON A LA LIGNE DE COMMANDE") endif (VTK_7) find_package (MPI) @@ -77,12 +95,11 @@ if (VTK_MPI_LDFLAGS) target_link_options (VtkContrib PUBLIC ${VTK_MPI_LDFLAGS}) endif (VTK_MPI_LDFLAGS) target_link_libraries (VtkContrib PUBLIC ${VTK_LIB_DEPENDENCIES} ${VTK_MPI_LIBS}) +target_link_libraries (VtkContrib PUBLIC OpenGL::GL) # Pour Spack 0.18.1 # ============================================= ATTENTION : ZONE SENSIBLE ============================================== # On gère ici toute la misère du monde ... -# EXPURGE_BEGINNING_TAG OMPI_CALC -# EXPURGE_COMPLETION_TAG if (NOT ${PLATFORM} STREQUAL "Ubuntu") if (VTK_MPI_LIB_DIR) target_link_directories (VtkContrib PUBLIC "${VTK_MPI_LIB_DIR}") # Probablement à revoir par la suite car entraîné par VTK diff --git a/src/VtkContrib/cmake/VtkContribConfig.cmake.in b/src/VtkContrib/cmake/VtkContribConfig.cmake.in index a4a0237..84c3bc1 100644 --- a/src/VtkContrib/cmake/VtkContribConfig.cmake.in +++ b/src/VtkContrib/cmake/VtkContribConfig.cmake.in @@ -1,5 +1,7 @@ include(CMakeFindDependencyMacro) +find_dependency (GUIToolkitsVariables) find_dependency (VTK) +find_dependency (OpenGL) # Pour Spack 0.18.1 @PACKAGE_INIT@ @@ -7,6 +9,10 @@ set (VtkContrib_VERSION @VTK_CONTRIB_VERSION@) set_and_check (VtkContrib_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") set_and_check (VtkContrib_LIB_DIR "@PACKAGE_LIB_INSTALL_DIR@") check_required_components (VtkContrib) - +set (VTK_7 "@VTK_7@") +set (VTK_8 "@VTK_8@") +set (VTK_9 "@VTK_9@") +set (USE_OPENGL_BACKEND "@USE_OPENGL_BACKEND@") +set (QVTK_WIDGET "@QVTK_WIDGET@") # Fournir l'accès aux services des cibles (fichier non inclus automatiquement) : include(${CMAKE_CURRENT_LIST_DIR}/VtkContribTargets.cmake) diff --git a/src/VtkContrib/public/VtkContrib/vtkImplicitTorus.h b/src/VtkContrib/public/VtkContrib/vtkImplicitTorus.h new file mode 100644 index 0000000..aef5592 --- /dev/null +++ b/src/VtkContrib/public/VtkContrib/vtkImplicitTorus.h @@ -0,0 +1,77 @@ +#ifndef VTK_IMPLICIT_TORUS_H +#define VTK_IMPLICIT_TORUS_H + +/** + * @class vtkImplicitTorus + * @brief implicit function for a torus + * @author Charles PIGNEROL, CEA/DAM/DSSI + * + * vtkImplicitTorus computes the implicit function and/or gradient for a torus. + */ + + + +#include +#include + +class vtkImplicitTorus : public vtkImplicitFunction +{ + public : + + vtkTypeMacro (vtkImplicitTorus, vtkImplicitFunction); + virtual void PrintSelf (ostream& os, vtkIndent indent); + + + /** + * Construct a torus in yOz plane along x-axis centered at (0,0,0) with ring radius = 0.5 and cross section radius = 0.1. + */ + static vtkImplicitTorus* New ( ); + + /** + * Evaluate torus equation x^2 - (csr^2 - (sqrt (y^2 + z^2) - rr)^2) where csr is cross section radius + * and rr is ring radius. + */ + virtual double EvaluateFunction (double coords [3]); + virtual double EvaluateFunction (double x, double y, double z); + + /** + * Evaluate torus gradient. + */ + virtual void EvaluateGradient (double coords [3], double gradient [3]); + + /** + * Set / get the center of the torus. Default is (0.,0., 0.). + */ + vtkSetVector3Macro (Center, double); + vtkGetVectorMacro (Center, double, 3); + + /** + * Set / get the cross section radius of the torus. Default is 0.1. + */ + vtkSetMacro (CrossSectionRadius, double); + vtkGetMacro (CrossSectionRadius, double); + + /** + * Set / get the ring radius of the torus. Default is 0.5. + */ + vtkSetMacro (RingRadius, double); + vtkGetMacro (RingRadius, double); + + + protected : + + vtkImplicitTorus ( ); + virtual ~vtkImplicitTorus ( ); + + double Center [3]; + double CrossSectionRadius, RingRadius; + + + private : + + vtkImplicitTorus (const vtkImplicitTorus&); + vtkImplicitTorus& operator = (const vtkImplicitTorus&); +}; // class vtkImplicitTorus + + +#endif // VTK_IMPLICIT_TORUS_H diff --git a/src/VtkContrib/vtkImplicitTorus.cpp b/src/VtkContrib/vtkImplicitTorus.cpp new file mode 100644 index 0000000..d53602b --- /dev/null +++ b/src/VtkContrib/vtkImplicitTorus.cpp @@ -0,0 +1,73 @@ +#include "VtkContrib/vtkImplicitTorus.h" +#include + +#include + + +vtkStandardNewMacro (vtkImplicitTorus); + + +vtkImplicitTorus::vtkImplicitTorus ( ) + : vtkImplicitFunction ( ), CrossSectionRadius (0.1), RingRadius (0.5) +{ + Center [0] = Center [1] = Center [2] = 0.; +} // vtkImplicitTorus::vtkImplicitTorus + + +vtkImplicitTorus::~vtkImplicitTorus ( ) +{ +} // vtkImplicitTorus::~vtkImplicitTorus + + +double vtkImplicitTorus::EvaluateFunction (double coords [3]) +{ + return EvaluateFunction (coords [0],coords [1], coords [2]); +} // vtkImplicitTorus::EvaluateFunction + + +double vtkImplicitTorus::EvaluateFunction (double x, double y, double z) +{ + const double dx2 = (x - Center [0]) * (x - Center [0]); + const double dy2 = (y - Center [1]) * (y - Center [1]); + const double dz2 = (z - Center [2]) * (z - Center [2]); + + return dx2 - (CrossSectionRadius * CrossSectionRadius - (sqrt (dy2 + dz2) - RingRadius) * (sqrt (dy2 + dz2) - RingRadius)); +} // vtkImplicitTorus::EvaluateFunction + + +void vtkImplicitTorus::EvaluateGradient (double coords [3], double gradient [3]) +{ // Not validated. Algo issued from vtkCylinder::EvaluateGradient (VTK 7.1.1) + // Torus is along elevation z-axis. + + // Determine the radial vector from the point x to the line. This means finding the closest point to the line. Get parametric + // location along cylinder axis. Remember Axis is normalized. + const double Axis [3] = { 1., 0., 0. }; // Attribute of class vtkCylinder ... +// const double t = Axis [0] * (coords [0] - Center [0]) + Axis [1] * (coords [1] - Center [1]) + Axis [2] * (coords [2] - Center [2]); + const double t = (coords [0] - Center [0]); + + // Compute closest point + double cp [3] = { 0., 0., 0. }; + cp [0] = Center [0] + t * Axis [0]; + cp [1] = Center [1] + t * Axis [1]; + cp [2] = Center [2] + t * Axis [2]; + + // Gradient is 2*r. Project onto x-y-z axes. + gradient [0] = 2.0 * (coords [0] - cp [0]); + gradient [1] = 2.0 * (coords [1] - cp [1]); + gradient [2] = 2.0 * (coords [2] - cp [2]); + +/* Code from vtkSphere : + gradient [0] = 2.0 * coords [0]; + gradient [1] = 2.0 * coords [1]; + gradient [2] = 2.0 * coords [2]; */ +} // vtkImplicitTorus::EvaluateGradient + + +void vtkImplicitTorus::PrintSelf (ostream& os, vtkIndent indent) +{ + this->Superclass::PrintSelf(os,indent); + + os << "Center: (" << Center [0] << ", " << Center [1] << ", " << Center [2] << ")\n" + << indent << "CrossSectionRadius: " << CrossSectionRadius << "\n" + << indent << "RingRadius: " << RingRadius << ")\n"; +} // vtkImplicitTorus::PrintSelf diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 210ce98..47ab3b5 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -1,9 +1,13 @@ include (${CMAKE_SOURCE_DIR}/cmake/version.cmake) -include (${CMAKE_SOURCE_DIR}/cmake/common.cmake) -include (${CMAKE_SOURCE_DIR}/cmake/workarounds.cmake) + +find_package (GUIToolkitsVariables) + +include (${GUIToolkitsVariables_CMAKE_DIR}/common.cmake) +include (${GUIToolkitsVariables_CMAKE_DIR}/workarounds.cmake) add_executable (point_widget point_widget.cpp) add_executable (trihedrons trihedrons.cpp) +add_executable (torus torus.cpp) target_include_directories (point_widget PRIVATE ../VtkContrib/public ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_options (point_widget PRIVATE ${SHARED_CFLAGS}) # Requested by Qt ... @@ -11,7 +15,11 @@ target_link_libraries (point_widget PUBLIC VtkContrib) target_include_directories (trihedrons PRIVATE ../VtkContrib/public ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_options (trihedrons PRIVATE ${SHARED_CFLAGS}) # Requested by Qt ... target_link_libraries (trihedrons PUBLIC VtkContrib) +target_include_directories (torus PRIVATE ../VtkContrib/public ${CMAKE_CURRENT_SOURCE_DIR}) +target_compile_options (torus PRIVATE ${SHARED_CFLAGS}) # Requested by Qt ... +target_link_libraries (torus PUBLIC VtkContrib) # INSTALL_RPATH modifie le rpath pour les libs internes au projet : set_target_properties (point_widget PROPERTIES INSTALL_RPATH_USE_LINK_PATH 1 INSTALL_RPATH ${CMAKE_PACKAGE_RPATH_DIR}) set_target_properties (trihedrons PROPERTIES INSTALL_RPATH_USE_LINK_PATH 1 INSTALL_RPATH ${CMAKE_PACKAGE_RPATH_DIR}) +set_target_properties (torus PROPERTIES INSTALL_RPATH_USE_LINK_PATH 1 INSTALL_RPATH ${CMAKE_PACKAGE_RPATH_DIR}) diff --git a/src/tests/torus.cpp b/src/tests/torus.cpp new file mode 100644 index 0000000..78fdece --- /dev/null +++ b/src/tests/torus.cpp @@ -0,0 +1,111 @@ +#include "VtkContrib/vtkLandmarkActor.h" +#include "VtkContrib/vtkImplicitTorus.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +using namespace std; + +// +// Displays a torus center at (2, 0.5, 0.) along z-axis, ring radius = 0.5, sectio radius = 0.05. +// + +int main ( int argc, char *argv[] ) +{ + vtkSmartPointer renderer = vtkSmartPointer::New ( ); + vtkSmartPointer window = vtkSmartPointer::New ( ); + window->AddRenderer (renderer); + vtkCamera* camera = renderer->GetActiveCamera ( ); + camera->ParallelProjectionOn ( ); + + vtkSmartPointer interactor = vtkSmartPointer::New ( ); + interactor->SetRenderWindow (window); + + // Torus definition : + const double center [3] = { 2., 0.5, 0. }; // Be carefull to set others values if transform usage ... + const double ringRadius = 0.5, crossSectionRadius = ringRadius / 10; + const double bounds [6] = { center [0] - 1.1 * (ringRadius + crossSectionRadius), center [0] + 1.1 * (ringRadius + crossSectionRadius), + center [1] - 1.1 * (ringRadius + crossSectionRadius), center [1] + 1.1 * (ringRadius + crossSectionRadius), + center [2] - 1.1 * (ringRadius + crossSectionRadius), center [2] + 1.1 * (ringRadius + crossSectionRadius) }; + vtkSmartPointer torus = vtkSmartPointer::New ( ); +// torus->SetCenter ((double*)center); // Done by transform + torus->SetRingRadius (ringRadius); + torus->SetCrossSectionRadius (crossSectionRadius); + // Place tore in another plane : + vtkSmartPointer transform = vtkSmartPointer::New ( ); + transform->PostMultiply ( ); + transform->Translate (- center [0], - center [1], - center [2]); + transform->RotateY (90.); + torus->SetTransform (transform); + vtkSmartPointer torusSample = vtkSmartPointer::New ( ); + torusSample->SetImplicitFunction (torus); + torusSample->SetModelBounds (bounds); + torusSample->ComputeNormalsOff ( ); + vtkSmartPointer torusSurface = vtkSmartPointer::New ( ); + torusSurface->SetInputConnection (torusSample->GetOutputPort ( )); + vtkSmartPointer mapper = vtkSmartPointer::New ( ); + mapper->SetInputConnection (torusSurface->GetOutputPort ( )); + mapper->ScalarVisibilityOff ( ); + vtkSmartPointer actor =vtkSmartPointer::New ( ); + actor->SetMapper (mapper); + renderer->AddActor (actor); + + // A landmark in order to show torus position and size : + vtkLandmarkActor* landmarkActor = vtkLandmarkActor::New ( ); + landmarkActor->SetBounds ((double*)bounds); + landmarkActor->GetProperty ( )->SetColor (0., 1., 0.); + landmarkActor->SetXAxisColor (1., 0.67, 0.); + landmarkActor->SetYAxisColor (0., 0.82, 1.); + landmarkActor->SetZAxisColor (0., 0., 1.); + landmarkActor->SetXTitle ("X"); + landmarkActor->SetYTitle ("Y"); + landmarkActor->SetZTitle ("Z"); + landmarkActor->SetXAxisLabelVisibility (1); + landmarkActor->SetYAxisLabelVisibility (1); + landmarkActor->SetZAxisLabelVisibility (1); + landmarkActor->SetXLabelFormat ("%g"); + landmarkActor->SetYLabelFormat ("%g"); + landmarkActor->SetZLabelFormat ("%g"); + landmarkActor->SetXAxisTickVisibility (1); + landmarkActor->SetYAxisTickVisibility (1); + landmarkActor->SetZAxisTickVisibility (1); + landmarkActor->SetXAxisMinorTickVisibility (1); + landmarkActor->SetYAxisMinorTickVisibility (1); + landmarkActor->SetZAxisMinorTickVisibility (1); + landmarkActor->SetTickLocationToOutside ( ); + landmarkActor->SetCamera (renderer->GetActiveCamera ( )); + landmarkActor->SetDrawXGridlines (1); + landmarkActor->SetDrawYGridlines (1); + landmarkActor->SetDrawZGridlines (1); + landmarkActor->SetCornerOffset (0.); + landmarkActor->PickableOff ( ); + renderer->AddActor (landmarkActor); + + interactor->Initialize ( ); + window->Render ( ); + renderer->SetBackground(0.1, 0.2, 0.4); + window->SetSize(300, 300); + renderer->ResetCamera ( ); + renderer->ResetCameraClippingRange ( ); + window->Render ( ); + + interactor->Start ( ); + + return EXIT_SUCCESS; + +} + diff --git a/versions.txt b/versions.txt index a995781..6f9c29b 100644 --- a/versions.txt +++ b/versions.txt @@ -1,7 +1,69 @@ -Version 4.8.4 : 25/11/22 +Version 5.4.0 : 21/06/23 =============== -Un peu de nettoyage (hors sources). +Sortie du projet GUIToolkits. + + +Version 5.3.2 : 06/06/23 +=============== + +Retouches cmake (dépendance GUIToolkitsVariables pour les dépendances). + + +Version 5.3.1 : 21/04/23 +=============== + +Retouches cmake (dépendance OpenGL) pour Spack 0.18.1 +Retouches cmake (support parallélisme / dépendance MPI). + + +Version 5.3.0 : 31/03/23 +=============== + +Portage GitHub environnement podman/spack/tests CI. +Correctif propagation de USE_OPENGL_BACKEND et QVTK_WIDGET. + + +Version 5.2.0 : 14/02/23 +=============== + +Détection de la version de VTK utilisée et propagation des variables cmake VTK_7, VTK_8 et VTK_9. + + +Version 5.1.1 : 03/02/23 +=============== + +Retouches cmake : blindage pour cas non gérés (versions/options VTK). + + +Version 5.1.0 : 17/01/23 +=============== + +Retouches cmake/vtkcontrib_common.cmake : suppression -DMULTITHREADED_APPLICATION, ajout -DVTKGL + + +Version 5.0.0 : 10/01/23 +=============== + +Intégration au projet GUIToolkits. + + +Version 4.10.1 : 25/11/22 +=============== + +Suppression répertoire module. + + +Version 4.10.0 : 11/11/22 +=============== + +Classe vtkImplicitTorus : tore par défaut le long de l'axe Oz. + + +Version 4.9.0 : 07/11/22 +=============== + +Classe vtkImplicitTorus + example. Version 4.8.3 : 15/02/22 @@ -70,7 +132,7 @@ Portage VTK 9.1.0 rc1. Version 4.6.3 : 10/09/21 =============== -Suppression de mini gros-mots et de balises EXPURGE. +Divers nettoyage. Version 4.6.2 : 24/08/21 @@ -160,8 +222,7 @@ Version 4.5.0 : 04/06/20 R =============== Fin réintégration en environnement CEA suite confinement covid-19. -Procédure d'exportation ouverte des sources : cible export avec script export.sh (réalisation d'un tarball filtré, -sans gros mots, reposant sur la commande expurge réalisée à cet effet et sur la commande tar). +Procédure d'exportation ouverte des sources : cible export avec script export.sh. cmake/workaround.cmake utilise maintenant la commande lsb_release -d à la place du tandem uname/commande locale. A finaliser sur calculateur. From fc2a576b255d0f7bed21d8350e548ab4c091d62c Mon Sep 17 00:00:00 2001 From: Charles PIGNEROL <> Date: Fri, 23 Jun 2023 17:30:06 +0200 Subject: [PATCH 2/3] Version 5.4.0 du 21/06/23. Sortie de GUIToolkits. --- cmake/vtkcontrib_common.cmake | 37 +++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 cmake/vtkcontrib_common.cmake diff --git a/cmake/vtkcontrib_common.cmake b/cmake/vtkcontrib_common.cmake new file mode 100644 index 0000000..f0ff5c9 --- /dev/null +++ b/cmake/vtkcontrib_common.cmake @@ -0,0 +1,37 @@ +find_package (GUIToolkitsVariables) + +include (${GUIToolkitsVariables_CMAKE_DIR}/common_vtk.cmake) # Positionne VTK_7, VTK_8, VTK_9 + +# Compilation : +add_definitions (-DVTK_CONTRIB_VERSION="${VTK_CONTRIB_VERSION}") +set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXX_FLAGS}") +if (VTK_7) + message (STATUS "========================================= UTILISATION DE VTK 7 =========================================") + if (USE_OPENGL_BACKEND) + set (MANDATORY_CXX_OPTIONS -DVTKGL -DUSE_OPENGL_BACKEND -DVTK_7) # Public + set (MANDATORY_VTK_OPTIONS "-DvtkRenderingCore_AUTOINIT=3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL)" "-DvtkIOExport_AUTOINIT=1(vtkIOExportOpenGL)") + else (USE_OPENGL_BACKEND) + set (MANDATORY_CXX_OPTIONS -DVTKGL -DUSE_OPENGL2_BACKEND -DVTK_7) # Public + set (MANDATORY_VTK_OPTIONS "-DvtkRenderingCore_AUTOINIT=3(vtkInteractionStyle,vtkRenderingFreeType,vtkRenderingOpenGL2)" "-DvtkIOExport_AUTOINIT=1(vtkIOExportOpenGL2)") + endif (USE_OPENGL_BACKEND) + set (MANDATORY_PRIVATE_VTK_OPTIONS -DPATCH_VTK_MATH_SOLVE_LINEAR_SYSTEM) +elseif (VTK_8) + message (STATUS "========================================= UTILISATION DE VTK 8 =========================================") + if (USE_OPENGL_BACKEND) + message (FATAL_ERROR "==> Backend OpenGL (1) incompatible avec VTK 8.") + endif (USE_OPENGL_BACKEND) + set (MANDATORY_CXX_OPTIONS -DVTKGL -DUSE_OPENGL2_BACKEND -DVTK_8) # Public + set (MANDATORY_VTK_OPTIONS -DPATCH_VTK_MATH_SOLVE_LINEAR_SYSTEM) +elseif (VTK_9) + message (STATUS "========================================= UTILISATION DE VTK 9 =========================================") + if (USE_OPENGL_BACKEND) + message (FATAL_ERROR "==> Backend OpenGL (1) incompatible avec VTK 9.") + endif (USE_OPENGL_BACKEND) + set (MANDATORY_CXX_OPTIONS -DVTKGL -DUSE_OPENGL2_BACKEND -DVTK_9) # Public + set (MANDATORY_VTK_OPTIONS -DPATCH_VTK_MATH_SOLVE_LINEAR_SYSTEM) +else (VTK_7) + message (STATUS "========================================= VERSION DE VTK NON DEFINIE =========================================") + message (FATAL_ERROR "==> UTILISEZ -DVTK_7:BOOL=ON OU -DVTK_8:BOOL=ON OU -DVTK_9:BOOL=ON A LA LIGNE DE COMMANDE") +endif (VTK_7) + + From 88a187cd7b82dfd45814472f2f5f3f01db9080db Mon Sep 17 00:00:00 2001 From: Benoit LELANDAIS Date: Mon, 17 Jul 2023 09:43:19 +0200 Subject: [PATCH 3/3] New CI workflows --- .github/workflows/cmake-ci.yml | 15 --------------- .github/workflows/make-release.yml | 11 +++++++++++ .github/workflows/spack-ci.yml | 11 +++++------ 3 files changed, 16 insertions(+), 21 deletions(-) delete mode 100644 .github/workflows/cmake-ci.yml create mode 100644 .github/workflows/make-release.yml diff --git a/.github/workflows/cmake-ci.yml b/.github/workflows/cmake-ci.yml deleted file mode 100644 index 657f563..0000000 --- a/.github/workflows/cmake-ci.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Cmake CI - -on: - workflow_dispatch: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - call: - name: Call Cmake reusable workflow - uses: LIHPC-Computational-Geometry/lihpccg-ci/.github/workflows/cmake-reusable.yml@main - with: - run-tests: false diff --git a/.github/workflows/make-release.yml b/.github/workflows/make-release.yml new file mode 100644 index 0000000..dae16eb --- /dev/null +++ b/.github/workflows/make-release.yml @@ -0,0 +1,11 @@ +name: Make release + +on: + push: + tags: + - '*' + +jobs: + call: + name: Call check version CI + uses: LIHPC-Computational-Geometry/lihpccg-ci/.github/workflows/make-release-reusable.yml@main diff --git a/.github/workflows/spack-ci.yml b/.github/workflows/spack-ci.yml index d16d6a1..0299c3b 100644 --- a/.github/workflows/spack-ci.yml +++ b/.github/workflows/spack-ci.yml @@ -1,15 +1,14 @@ name: Spack CI on: - workflow_dispatch: push: - branches: [ main ] + branches: + - '**' pull_request: - branches: [ main ] + # Allows you to run this workflow manually + workflow_dispatch: jobs: call: - name: Call Spack reusable workflow + name: Call Spack CI uses: LIHPC-Computational-Geometry/lihpccg-ci/.github/workflows/spack-reusable.yml@main - with: - test-link-options: "-DVTK_7:BOOL=ON -DUSE_OPENGL_BACKEND:BOOL=ON" \ No newline at end of file