Skip to content

Commit 2e43e47

Browse files
committed
Get history from 176ea80
0 parents  commit 2e43e47

File tree

1,929 files changed

+568191
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,929 files changed

+568191
-0
lines changed

.github/workflows/make-release.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
name: Make release
2+
3+
on:
4+
push:
5+
tags:
6+
- '*'
7+
8+
jobs:
9+
call:
10+
name: Call check version CI
11+
uses: LIHPC-Computational-Geometry/spack_recipes/.github/workflows/make-release-reusable.yml@main

.github/workflows/spack-ci.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: Spack CI
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
pull_request:
8+
# Allows you to run this workflow manually
9+
workflow_dispatch:
10+
11+
jobs:
12+
call:
13+
name: Call Spack CI
14+
uses: LIHPC-Computational-Geometry/spack_recipes/.github/workflows/spack-reusable.yml@main

CMakeLists.txt

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
cmake_minimum_required (VERSION 3.15)
2+
3+
project (Magix3D LANGUAGES CXX C)
4+
5+
include (GNUInstallDirs)
6+
include (cmake/version.cmake)
7+
include (cmake/common.cmake)
8+
9+
10+
set (Magix3D_VERSION ${MAGIX3D_VERSION})
11+
12+
set (CMAKE_VERBOSE_MAKEFILE ON)
13+
option (BUILD_SHARED_LIBS "Creation de bibliotheques dynamiques (defaut : ON)" ON)
14+
15+
#======================================================================================================================
16+
# Options that are proposed to build the project using Cmake Build system
17+
#======================================================================================================================
18+
option (BUILD_SHARED_LIBS "create dynamic libraries (default : ON)" ON)
19+
option (BUILD_MAGIX3D "Build the whole MGX Application, including Gui and python binding (default : ON)" ON)
20+
option (USE_GMSH "Build with gmsh (default : ON)" ON)
21+
option (USE_SMOOTH3D "Build the SMOOTH3D component (default : OFF)" OFF)
22+
option (USE_TRITON "Build the TRITON component (default : ON)" ON)
23+
option (WITH_DOC "Build the documentation (default : ON)" ON)
24+
option (WITH_TEST "Enable testing (default:OFF)" OFF)
25+
option (WITH_COV "Enable code coverage of the testing target (default:OFF)" OFF)
26+
#Next options are only available on-site. Default value is OFF.
27+
option (USE_DKOC "On-site. Build the DKOC component to read Catia files (on-site, default : OFF)" OFF)
28+
option (USE_MDLPARSER "Build the mdl parser to read the 2D mdl format (on-site, default : OFF)" OFF)
29+
option (USE_MESHGEMS "Build the MeshGems component to access tri/tet meshing functionalities (on-site, default : OFF)" OFF)
30+
option (USE_SEPA3D "Build the SEPA3D component (on-site, default : OFF)" OFF)
31+
32+
#======================================================================================================================
33+
# Coverage require to run testing codes
34+
if(WITH_COV)
35+
set(WITH_TEST ON)
36+
endif(WITH_COV)
37+
if(WITH_TEST)
38+
enable_testing()
39+
endif (WITH_TEST)
40+
if(WITH_COV)
41+
include(cmake/CodeCoverage.cmake)
42+
set(CMAKE_CXX_FLAGS "-g -O0 --coverage -fprofile-arcs -ftest-coverage")
43+
set(CMAKE_C_FLAGS "-g -O0 --coverage -fprofile-arcs -ftest-coverage")
44+
set(COVERAGE_LCOV_EXCLUDES
45+
'/usr/*'
46+
'${CMAKE_SOURCE_DIR}/*/tst/*'
47+
'*/cmake-build-debug/*'
48+
'*/spack/*'
49+
'*/GMSH/*'
50+
)
51+
SETUP_TARGET_FOR_COVERAGE_LCOV(
52+
NAME code_cover
53+
EXECUTABLE ctest -R test_link
54+
)
55+
endif(WITH_COV)
56+
#======================================================================================================================
57+
#tell cmake to generate the configure file that will be used to activate the previous option C++ balise in the code
58+
configure_file(
59+
${PROJECT_SOURCE_DIR}/cmake/mgx_config.h.in
60+
${PROJECT_BINARY_DIR}/mgx_config.h
61+
)
62+
include_directories(${PROJECT_BINARY_DIR})
63+
#======================================================================================================================
64+
add_subdirectory (src)
65+
if(WITH_TEST)
66+
add_subdirectory(test_link)
67+
endif (WITH_TEST)
68+
if(WITH_DOC)
69+
message (STATUS "===============> MGX Documentation")
70+
add_subdirectory (Docs)
71+
endif()
72+
73+
if(USE_TRITON)
74+
message (STATUS "===============> TRITON TRITON")
75+
endif(USE_TRITON)

CMakePresets.json

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"version": 3,
3+
"configurePresets": [
4+
{
5+
"name": "ci",
6+
"cacheVariables": {
7+
"USE_PYTHON_3": "ON",
8+
"GUIToolkitsVariables_ROOT": "$env{INSTALL_DIR}/guitoolkitsvariables",
9+
"VtkContrib_ROOT": "$env{INSTALL_DIR}/vtkcontrib",
10+
"VTK_ROOT": "$env{INSTALL_DIR}/VTK-7.1.1",
11+
"TkUtil_ROOT": "$env{INSTALL_DIR}/tkutil",
12+
"TkUtilScripting_ROOT": "$env{INSTALL_DIR}/tkutil",
13+
"PrefsCore_ROOT": "$env{INSTALL_DIR}/preferences",
14+
"PrefsQt_ROOT": "$env{INSTALL_DIR}/preferences",
15+
"PythonUtil_ROOT": "$env{INSTALL_DIR}/pythonutil",
16+
"gmds_ROOT": "$env{INSTALL_DIR}/gmds",
17+
"qualifinternal_ROOT": "$env{INSTALL_DIR}/qualif",
18+
"GQGMDS_ROOT": "$env{INSTALL_DIR}/qqualif",
19+
"QtQualif_ROOT": "$env{INSTALL_DIR}/qqualif",
20+
"Lima_ROOT": "$env{INSTALL_DIR}/lima",
21+
"QtUtil_ROOT": "$env{INSTALL_DIR}/qtutil",
22+
"QwtCharts_ROOT": "$env{INSTALL_DIR}/qwtcharts",
23+
"QtPython3_ROOT": "$env{INSTALL_DIR}/qtpython",
24+
"QtVtk_ROOT": "$env{INSTALL_DIR}/qtvtk",
25+
"OpenCASCADE_ROOT": "$env{INSTALL_DIR}/occt-V7_1_0",
26+
"CMAKE_PREFIX_PATH": "$env{INSTALL_DIR}/mesquite-2.3.0;$env{INSTALL_DIR}/CGNS-4.3.0",
27+
"T_INTERNAL_EXTENSION": "not_defined",
28+
"ERD_INTERNAL_EXTENSION": "not_defined",
29+
"USER_TEAM": "undef_user_team",
30+
"DOXYGEN_PATH": "not_defined",
31+
"DKOC_LICENCE": "unavailable"
32+
}
33+
}
34+
]
35+
}

Docs/CMakeLists.txt

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# Add the cmake folder so the FindSphinx module is found
2+
set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
3+
4+
find_package(Python REQUIRED)
5+
find_package(Doxygen REQUIRED)
6+
find_package(Sphinx REQUIRED COMPONENTS sphinx_rtd_theme breathe sphinx_copybutton rst2pdf)
7+
8+
# Find all the public headers
9+
get_target_property(MGX_PUBLIC_HEADER_DIR Core INTERFACE_INCLUDE_DIRECTORIES)
10+
file(GLOB_RECURSE MGX_PUBLIC_HEADERS ${MGX_PUBLIC_HEADER_DIR}/*.h)
11+
12+
set(DOXYGEN_DIRS
13+
${PROJECT_SOURCE_DIR}/src/Core/protected/Internal/ContextIfc.h
14+
${PROJECT_SOURCE_DIR}/src/Core/protected/Internal/Context.h
15+
${PROJECT_SOURCE_DIR}/src/Core/protected/Internal/M3DCommandManager.h
16+
${PROJECT_SOURCE_DIR}/src/Core/protected/Internal/M3DCommandResultIfc.h
17+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Point.h
18+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Spherical.h
19+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Cylindrical.h
20+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Vector.h
21+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Plane.h
22+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Rotation.h
23+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/RotX.h
24+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/RotY.h
25+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Point.h
26+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/RotZ.h
27+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Constants.h
28+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Landmark.h
29+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/Unit.h
30+
${PROJECT_SOURCE_DIR}/src/Utils/protected/Utils/SwigCompletion.h
31+
${PROJECT_SOURCE_DIR}/src/Core/protected/Geom/GeomManagerIfc.h
32+
${PROJECT_SOURCE_DIR}/src/Core/protected/Geom/GeomInfo.h
33+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/TopoInfo.h
34+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/TopoManagerIfc.h
35+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyUniform.h
36+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyUniformSmoothFix.h
37+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyGeometric.h
38+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyBigeometric.h
39+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyHyperbolic.h
40+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertySpecificSize.h
41+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyInterpolate.h
42+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyGlobalInterpolate.h
43+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyTabulated.h
44+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/EdgeMeshingPropertyBeta.h
45+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/FaceMeshingPropertyDirectional.h
46+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/FaceMeshingPropertyOrthogonal.h
47+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/FaceMeshingPropertyRotational.h
48+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/FaceMeshingPropertyTransfinite.h
49+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/FaceMeshingPropertyDelaunayGMSH.h
50+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/FaceMeshingPropertyQuadPairing.h
51+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/FaceMeshingPropertyMeshGems.h
52+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/BlockMeshingPropertyDirectional.h
53+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/BlockMeshingPropertyOrthogonal.h
54+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/BlockMeshingPropertyRotational.h
55+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/BlockMeshingPropertyTransfinite.h
56+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/BlockMeshingPropertyDelaunayMeshGems.h
57+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/BlockMeshingPropertyDelaunayTetgen.h
58+
${PROJECT_SOURCE_DIR}/src/Core/protected/Topo/BlockMeshingPropertyInsertion.h
59+
${PROJECT_SOURCE_DIR}/src/Core/protected/Mesh/MeshManagerIfc.h
60+
${PROJECT_SOURCE_DIR}/src/Core/protected/Mesh/MeshModificationBySepa.h
61+
${PROJECT_SOURCE_DIR}/src/Core/protected/Smoothing/SurfacicSmoothing.h
62+
${PROJECT_SOURCE_DIR}/src/Core/protected/Smoothing/VolumicSmoothing.h
63+
${PROJECT_SOURCE_DIR}/src/Core/protected/Group/GroupManagerIfc.h
64+
${PROJECT_SOURCE_DIR}/src/Core/protected/SysCoord/SysCoordManagerIfc.h
65+
${PROJECT_SOURCE_DIR}/src/Core/protected/Structured/StructuredMeshManagerIfc.h
66+
)
67+
68+
string(REPLACE ";" " " DOXYGEN_DIRS_STR "${DOXYGEN_DIRS}")
69+
set(DOXYGEN_INPUT_DIR ${DOXYGEN_DIRS_STR})
70+
set(DOXYGEN_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/doxygen)
71+
set(DOXYGEN_INDEX_FILE ${DOXYGEN_OUTPUT_DIR}/xml/index.xml)
72+
set(DOXYFILE_IN ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in)
73+
set(DOXYFILE_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
74+
75+
#Replace variables inside @@ with the current values
76+
configure_file(${DOXYFILE_IN} ${DOXYFILE_OUT} @ONLY)
77+
78+
set(VARMMODULE_IN ${CMAKE_CURRENT_SOURCE_DIR}/variables.py.in)
79+
set(VARMMODULE_OUT ${CMAKE_CURRENT_BINARY_DIR}/variables.py)
80+
81+
configure_file(${VARMMODULE_IN} ${VARMMODULE_OUT} @ONLY)
82+
83+
# Doxygen won't create this for us
84+
file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR})
85+
# fix bug https://github.com/doxygen/doxygen/issues/6293
86+
file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR}/html)
87+
file(MAKE_DIRECTORY ${DOXYGEN_OUTPUT_DIR}/xml)
88+
89+
# Only regenerate Doxygen when the Doxyfile or public headers change
90+
add_custom_command(OUTPUT ${DOXYGEN_INDEX_FILE}
91+
DEPENDS ${MGX_PUBLIC_HEADERS}
92+
COMMAND ${DOXYGEN_EXECUTABLE} ${DOXYFILE_OUT}
93+
MAIN_DEPENDENCY ${DOXYFILE_OUT} ${DOXYFILE_IN}
94+
COMMENT "Generating docs"
95+
VERBATIM)
96+
97+
# Nice named target so we can run the job easily
98+
add_custom_target(doxygen ALL DEPENDS ${DOXYGEN_INDEX_FILE})
99+
100+
set(SPHINX_SOURCE ${CMAKE_CURRENT_SOURCE_DIR})
101+
set(SPHINX_BUILD ${CMAKE_CURRENT_BINARY_DIR}/sphinx)
102+
set(SPHINX_INDEX_FILE ${SPHINX_BUILD}/index.html)
103+
104+
# we call sphinx from camke command to set PYTHONPATH (to use built VARMMODULE_OUT file)
105+
set(HTML_SPHINX_COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=$ENV{PYTHONPATH}:${CMAKE_CURRENT_BINARY_DIR}
106+
${SPHINX_EXECUTABLE} -q -b html
107+
# Tell Breathe where to find the Doxygen output
108+
-Dbreathe_projects.MGX=${DOXYGEN_OUTPUT_DIR}/xml
109+
${SPHINX_SOURCE} ${SPHINX_BUILD})
110+
111+
# we call sphinx from camke command to set PYTHONPATH (to use built VARMMODULE_OUT file)
112+
set(PDF_SPHINX_COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=$ENV{PYTHONPATH}:${CMAKE_CURRENT_BINARY_DIR}
113+
${SPHINX_EXECUTABLE} -b pdf
114+
${SPHINX_SOURCE} ${SPHINX_BUILD}/pdf)
115+
116+
# Only regenerate Sphinx when:
117+
# - Doxygen has rerun
118+
# - Our doc files have been updated
119+
# - The Sphinx config has been updated
120+
add_custom_command(
121+
OUTPUT ${SPHINX_INDEX_FILE}
122+
COMMAND ${HTML_SPHINX_COMMAND}
123+
COMMAND ${PDF_SPHINX_COMMAND}
124+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
125+
DEPENDS
126+
# Other docs files you want to track should go here (or in some variable)
127+
${CMAKE_CURRENT_SOURCE_DIR}/index.rst
128+
${CMAKE_CURRENT_SOURCE_DIR}/pages/*.rst
129+
${CMAKE_CURRENT_SOURCE_DIR}/resources/*
130+
${CMAKE_CURRENT_SOURCE_DIR}/images/*
131+
${CMAKE_CURRENT_SOURCE_DIR}/_ext/*.py
132+
${CMAKE_CURRENT_SOURCE_DIR}/_static/*.css
133+
${CMAKE_CURRENT_SOURCE_DIR}/*.yaml
134+
${DOXYGEN_INDEX_FILE}
135+
MAIN_DEPENDENCY conf.py
136+
COMMENT "Generating html and pdf documentation with Sphinx")
137+
138+
# Doc target so we can run the job easily
139+
add_custom_target(documentation ALL DEPENDS ${SPHINX_INDEX_FILE})
140+
141+
# Recopie de la doc générée dans le répertoire d'installation
142+
include(GNUInstallDirs)
143+
install (DIRECTORY ${SPHINX_BUILD}
144+
DESTINATION ${CMAKE_INSTALL_DOCDIR}
145+
FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_READ
146+
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE SETGID
147+
)
148+
149+
install (DIRECTORY ${DOXYGEN_OUTPUT_DIR}
150+
DESTINATION ${CMAKE_INSTALL_DOCDIR}
151+
FILE_PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ GROUP_WRITE WORLD_READ
152+
DIRECTORY_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_WRITE GROUP_EXECUTE WORLD_READ WORLD_EXECUTE SETGID
153+
)

0 commit comments

Comments
 (0)