Salome HOME
Copyright update 2021
[modules/geom.git] / src / GEOM_SWIG / CMakeLists.txt
1 # Copyright (C) 2012-2021  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License, or (at your option) any later version.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 include(${SWIG_USE_FILE})
21
22 include_directories(
23   ${PROJECT_BINARY_DIR}/idl
24   ${PROJECT_SOURCE_DIR}/src/GEOMUtils
25   ${PROJECT_SOURCE_DIR}/src/GEOMAlgo
26   ${PROJECT_SOURCE_DIR}/src/GEOM
27   ${PROJECT_SOURCE_DIR}/src/GEOMImpl
28   ${PROJECT_SOURCE_DIR}/src/GEOM_I
29   ${OpenCASCADE_INCLUDE_DIR}
30 )
31
32 # --- scripts ---
33
34 # scripts / samples,data
35 SET(_other_SCRIPTS
36   GEOM_Spanner.py
37   GEOM_blocks.py
38   GEOM_example.py
39   GEOM_example2.py
40   GEOM_example3.py
41   GEOM_example4.py
42   GEOM_example5.py
43   GEOM_example6.py
44   GEOM_example7.py
45   GEOM_moteur.py
46   GEOM_TestAll.py
47   GEOM_TestField.py
48   GEOM_TestOthers.py
49   GEOM_TestHealing.py
50   GEOM_TestMeasures.py
51   GEOM_usinggeom.py
52   GEOM_Partition1.py
53   GEOM_Partition2.py
54   GEOM_Partition3.py
55   GEOM_Partition4.py
56   GEOM_Partition5.py
57   GEOM_cyl2complementary.py
58   GEOM_shellSolid.py
59   GEOM_tube_geom.py
60   GEOM_tube_geom_gg2.py
61   GEOM_Nut.py
62   GEOM_Sketcher.py
63   GEOM_ObjectInfo.py
64   PAL_MESH_019_020_geometry.py
65   PAL_MESH_028_geometry.py
66   PAL_MESH_030_geometry.py
67   PAL_MESH_033_geometry.py
68   PAL_MESH_035_geometry.py
69   )
70
71 # scripts / python
72
73 SET(_python_SCRIPTS
74   geomBuilder.py
75   gsketcher.py
76   )
77
78 # Advanced scripts
79
80 SET(_python_advanced_SCRIPTS
81   AdvancedGEOMBuilder.py
82   __init__.py
83 )
84
85 # STL plugin scripts
86
87 SET(_python_STL_SCRIPTS
88   STLPluginBuilder.py
89   __init__.py
90 )
91
92 # BREP plugin scripts
93
94 SET(_python_BREP_SCRIPTS
95   BREPPluginBuilder.py
96   __init__.py
97 )
98
99 # STEP plugin scripts
100
101 SET(_python_STEP_SCRIPTS
102   STEPPluginBuilder.py
103   __init__.py
104 )
105
106 # IGES plugin scripts
107
108 SET(_python_IGES_SCRIPTS
109   IGESPluginBuilder.py
110   __init__.py
111 )
112
113 # XAO plugin scripts
114
115 SET(_python_XAO_SCRIPTS
116   XAOPluginBuilder.py
117   __init__.py
118 )
119
120 # VTK plugin scripts
121
122 SET(_python_VTK_SCRIPTS
123   VTKPluginBuilder.py
124   __init__.py
125 )
126
127 # scripts / shared
128
129 SET(_shared_SCRIPTS
130   GEOM_shared_modules.py
131   )
132
133 # additional preprocessor / compiler flags
134 ADD_DEFINITIONS(${OMNIORB_DEFINITIONS}  )
135 SET(GeomHelper_HEADERS GeomHelper.h GeomHelper.i)
136 SET(GeomHelper_SOURCES GeomHelper.cxx ${GeomHelper_HEADERS})
137 SET_SOURCE_FILES_PROPERTIES(GeomHelper.i PROPERTIES CPLUSPLUS ON)
138 SET_SOURCE_FILES_PROPERTIES(GeomHelper.i PROPERTIES SWIG_FLAGS "-py3")
139 SET_SOURCE_FILES_PROPERTIES(GeomHelper_wrap.cpp PROPERTIES COMPILE_FLAGS "-DHAVE_CONFIG_H")
140 SET(_swig_SCRIPTS ${CMAKE_CURRENT_BINARY_DIR}/GeomHelper.py )
141 IF(${CMAKE_VERSION} VERSION_LESS "3.8.0") 
142   SWIG_ADD_MODULE(GeomHelper python ${GeomHelper_SOURCES})
143 ELSE()
144   SWIG_ADD_LIBRARY(GeomHelper LANGUAGE python SOURCES ${GeomHelper_SOURCES})
145 ENDIF()
146 SWIG_LINK_LIBRARIES(GeomHelper ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} GEOMEngine ${KERNEL_SalomeKernelHelpers} ${KERNEL_SalomeDS} )
147 SWIG_CHECK_GENERATION(GeomHelper)
148 IF(WIN32)
149   SET_TARGET_PROPERTIES(_GeomHelper PROPERTIES DEBUG_OUTPUT_NAME _GeomHelper_d)
150 ENDIF(WIN32)
151 install(TARGETS _GeomHelper DESTINATION ${SALOME_INSTALL_LIBS})
152 install(FILES ${GeomHelper_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
153 SALOME_INSTALL_SCRIPTS("${_swig_SCRIPTS}"  ${SALOME_INSTALL_BINS} EXTRA_DPYS "${SWIG_MODULE_GeomHelper_REAL_NAME}")
154
155 # --- rules ---
156
157 SALOME_INSTALL_SCRIPTS("${_other_SCRIPTS}" ${SALOME_INSTALL_SCRIPT_DATA} DEF_PERMS)
158 SALOME_INSTALL_SCRIPTS("${_shared_SCRIPTS}" ${SALOME_INSTALL_PYTHON_SHARED} DEF_PERMS)
159 SALOME_INSTALL_SCRIPTS("${_python_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/geom DEF_PERMS)
160
161 # Install plugin scripts
162 SALOME_INSTALL_SCRIPTS("${_python_advanced_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/AdvancedGEOM DEF_PERMS)
163 SALOME_INSTALL_SCRIPTS("${_python_STL_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/STLPlugin DEF_PERMS)
164 SALOME_INSTALL_SCRIPTS("${_python_BREP_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/BREPPlugin DEF_PERMS)
165 SALOME_INSTALL_SCRIPTS("${_python_STEP_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/STEPPlugin DEF_PERMS)
166 SALOME_INSTALL_SCRIPTS("${_python_IGES_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/IGESPlugin DEF_PERMS)
167 SALOME_INSTALL_SCRIPTS("${_python_XAO_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/XAOPlugin DEF_PERMS)
168 IF(SALOME_GEOM_USE_VTK)
169   SALOME_INSTALL_SCRIPTS("${_python_VTK_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/VTKPlugin DEF_PERMS)
170 ENDIF(SALOME_GEOM_USE_VTK)