Salome HOME
fe67671b3c66a6908358ca847b629794cc788473
[modules/shaper.git] / src / SketchPlugin / CMakeLists.txt
1 # Copyright (C) 2014-2020  CEA/DEN, EDF R&D
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(Common)
21 INCLUDE(UnitTest)
22
23 SET(PROJECT_HEADERS
24     SketchPlugin.h
25     SketchPlugin_Arc.h
26     SketchPlugin_BSpline.h
27     SketchPlugin_BSplineBase.h
28     SketchPlugin_BSplinePeriodic.h
29     SketchPlugin_Circle.h
30     SketchPlugin_Constraint.h
31     SketchPlugin_ConstraintAngle.h
32     SketchPlugin_ConstraintBase.h
33     SketchPlugin_ConstraintCoincidence.h
34     SketchPlugin_ConstraintCoincidenceInternal.h
35     SketchPlugin_ConstraintCollinear.h
36     SketchPlugin_ConstraintDistance.h
37     SketchPlugin_ConstraintDistanceAlongDir.h
38     SketchPlugin_ConstraintDistanceHorizontal.h
39     SketchPlugin_ConstraintDistanceVertical.h
40     SketchPlugin_ConstraintEqual.h
41     SketchPlugin_Fillet.h
42     SketchPlugin_ConstraintHorizontal.h
43     SketchPlugin_ConstraintLength.h
44     SketchPlugin_ConstraintMiddle.h
45     SketchPlugin_ConstraintMirror.h
46     SketchPlugin_ConstraintParallel.h
47     SketchPlugin_ConstraintPerpendicular.h
48     SketchPlugin_ConstraintRadius.h
49     SketchPlugin_ConstraintRigid.h
50     SketchPlugin_ConstraintTangent.h
51     SketchPlugin_ConstraintVertical.h
52     SketchPlugin_CurveFitting.h
53     SketchPlugin_Ellipse.h
54     SketchPlugin_EllipticArc.h
55     SketchPlugin_ExternalValidator.h
56     SketchPlugin_Feature.h
57     SketchPlugin_IntersectionPoint.h
58     SketchPlugin_Line.h
59     SketchPlugin_MacroArc.h
60     SketchPlugin_MacroArcReentrantMessage.h
61     SketchPlugin_MacroBSpline.h
62     SketchPlugin_MacroCircle.h
63     SketchPlugin_MacroEllipse.h
64     SketchPlugin_MacroEllipticArc.h
65     SketchPlugin_MultiRotation.h
66     SketchPlugin_MultiTranslation.h
67     SketchPlugin_Offset.h
68     SketchPlugin_Plugin.h
69     SketchPlugin_Point.h
70     SketchPlugin_Projection.h
71     SketchPlugin_Sketch.h
72     SketchPlugin_SketchCopy.h
73     SketchPlugin_SketchDrawer.h
74     SketchPlugin_SketchEntity.h
75     SketchPlugin_Split.h
76     SketchPlugin_Tools.h
77     SketchPlugin_Trim.h
78     SketchPlugin_Validators.h
79 )
80
81 SET(PROJECT_SOURCES
82     SketchPlugin_Arc.cpp
83     SketchPlugin_BSpline.cpp
84     SketchPlugin_BSplineBase.cpp
85     SketchPlugin_BSplinePeriodic.cpp
86     SketchPlugin_Circle.cpp
87     SketchPlugin_Constraint.cpp
88     SketchPlugin_ConstraintAngle.cpp
89     SketchPlugin_ConstraintCoincidence.cpp
90     SketchPlugin_ConstraintCoincidenceInternal.cpp
91     SketchPlugin_ConstraintCollinear.cpp
92     SketchPlugin_ConstraintDistance.cpp
93     SketchPlugin_ConstraintDistanceAlongDir.cpp
94     SketchPlugin_ConstraintDistanceHorizontal.cpp
95     SketchPlugin_ConstraintDistanceVertical.cpp
96     SketchPlugin_ConstraintEqual.cpp
97     SketchPlugin_Fillet.cpp
98     SketchPlugin_ConstraintHorizontal.cpp
99     SketchPlugin_ConstraintLength.cpp
100     SketchPlugin_ConstraintMiddle.cpp
101     SketchPlugin_ConstraintMirror.cpp
102     SketchPlugin_ConstraintParallel.cpp
103     SketchPlugin_ConstraintPerpendicular.cpp
104     SketchPlugin_ConstraintRadius.cpp
105     SketchPlugin_ConstraintRigid.cpp
106     SketchPlugin_ConstraintTangent.cpp
107     SketchPlugin_ConstraintVertical.cpp
108     SketchPlugin_CurveFitting.cpp
109     SketchPlugin_Ellipse.cpp
110     SketchPlugin_EllipticArc.cpp
111     SketchPlugin_ExternalValidator.cpp
112     SketchPlugin_Feature.cpp
113     SketchPlugin_IntersectionPoint.cpp
114     SketchPlugin_Line.cpp
115     SketchPlugin_MacroArc.cpp
116     SketchPlugin_MacroBSpline.cpp
117     SketchPlugin_MacroCircle.cpp
118     SketchPlugin_MacroEllipse.cpp
119     SketchPlugin_MacroEllipticArc.cpp
120     SketchPlugin_MultiRotation.cpp
121     SketchPlugin_MultiTranslation.cpp
122     SketchPlugin_Offset.cpp
123     SketchPlugin_Plugin.cpp
124     SketchPlugin_Point.cpp
125     SketchPlugin_Projection.cpp
126     SketchPlugin_Sketch.cpp
127     SketchPlugin_SketchCopy.cpp
128     SketchPlugin_SketchDrawer.cpp
129     SketchPlugin_SketchEntity.cpp
130     SketchPlugin_Split.cpp
131     SketchPlugin_Tools.cpp
132     SketchPlugin_Trim.cpp
133     SketchPlugin_Validators.cpp
134 )
135
136 SET(PROJECT_LIBRARIES
137     Config
138     GeomAPI
139     GeomAlgoAPI
140     GeomDataAPI
141     Locale
142     ModelAPI
143     ModelGeomAlgo
144     ModuleBase
145     SketcherPrs
146 )
147
148 SET(XML_RESOURCES
149   plugin-Sketch.xml
150   plugin-SketchCopy.xml
151   plugin-SketchDrawer.xml
152 )
153
154 SET(TEXT_RESOURCES
155     SketchPlugin_msg_en.ts
156     SketchPlugin_msg_fr.ts
157 )
158
159 SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC})
160 SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES})
161 SOURCE_GROUP ("XML Files" FILES ${XML_RESOURCES})
162
163 ADD_DEFINITIONS(-DSKETCHPLUGIN_EXPORTS)
164 ADD_LIBRARY(SketchPlugin MODULE ${PROJECT_SOURCES} ${PROJECT_HEADERS} ${XML_RESOURCES} ${TEXT_RESOURCES})
165 TARGET_LINK_LIBRARIES(SketchPlugin ${PROJECT_LIBRARIES})
166
167 INCLUDE_DIRECTORIES(
168   ../Config
169   ../Events
170   ../Locale
171   ../ModelAPI
172   ../ModelGeomAlgo
173   ../ModuleBase
174   ../GeomAPI
175   ../GeomAlgoAPI
176   ../GeomDataAPI
177   ../SketcherPrs
178   ${OpenCASCADE_INCLUDE_DIR}
179 )
180
181 INSTALL(TARGETS SketchPlugin DESTINATION ${SHAPER_INSTALL_PLUGIN_FILES})
182 INSTALL(FILES ${XML_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
183 INSTALL(DIRECTORY icons/ DESTINATION ${SHAPER_INSTALL_XML_RESOURCES}/icons/Sketch)
184 INSTALL(FILES ${TEXT_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
185
186 include(tests.set)
187
188 ADD_UNIT_TESTS(${TEST_NAMES})
189
190 include(tests.set)
191
192 if(${SKETCHER_CHANGE_RADIUS_WHEN_MOVE})
193   include(tests_change_radius.set)
194   ADD_UNIT_TESTS(${TEST_NAMES_CHANGE_RADIUS})
195 endif()
196
197 ADD_RESTRICTED_TESTS(
198   Test20204.py
199 )
200
201 if(${HAVE_SALOME})
202   enable_testing()
203   set(TEST_INSTALL_DIRECTORY "${SALOME_SHAPER_INSTALL_TESTS}/SketchPlugin")
204   
205   install(FILES CTestTestfileInstall.cmake
206   DESTINATION ${TEST_INSTALL_DIRECTORY}
207   RENAME CTestTestfile.cmake)
208   if(${SKETCHER_CHANGE_RADIUS_WHEN_MOVE})
209     set(TEST_NAMES ${TEST_NAMES} ${TEST_NAMES_CHANGE_RADIUS})
210     install(FILES tests_change_radius.set DESTINATION ${TEST_INSTALL_DIRECTORY})
211   endif()
212   install(FILES tests.set DESTINATION ${TEST_INSTALL_DIRECTORY})
213   
214   set(TMP_TESTS_NAMES)
215   foreach(tfile ${TEST_NAMES})
216     list(APPEND TMP_TESTS_NAMES "Test/${tfile}")
217   endforeach(tfile ${TEST_NAMES})
218   
219   install(FILES ${TMP_TESTS_NAMES} DESTINATION ${TEST_INSTALL_DIRECTORY})
220 endif(${HAVE_SALOME})