Salome HOME
Add copyright header according to request of CEA from 06.06.2017
[modules/shaper.git] / src / SketchSolver / CMakeLists.txt
1 ## Copyright (C) 2014-2017  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
18 ## email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
19 ##
20
21 # Avoid using SolveSpace
22 SET(NO_SolveSpace TRUE)
23
24 # Convert files in list to full name
25 FUNCTION(TO_FULL_PATH theFILES)
26   SET(locFiles "")
27   FOREACH(locFile ${${theFILES}})
28     SET(locFiles ${locFiles} ${CMAKE_CURRENT_SOURCE_DIR}/${locFile})
29   ENDFOREACH()
30   SET(${theFILES} ${locFiles} PARENT_SCOPE)
31 ENDFUNCTION(TO_FULL_PATH)
32
33
34 INCLUDE(Common)
35
36 SET(SKETCHSOLVER_HEADERS
37     SketchSolver_Error.h
38     SketchSolver_Group.h
39     SketchSolver_Manager.h
40     SketchSolver_Storage.h
41 )
42
43 SET(SKETCHSOLVER_CONSTRAINT_HEADERS
44     SketchSolver_Constraint.h
45     SketchSolver_ConstraintAngle.h
46     SketchSolver_ConstraintCoincidence.h
47     SketchSolver_ConstraintCollinear.h
48     SketchSolver_ConstraintDistance.h
49     SketchSolver_ConstraintEqual.h
50     SketchSolver_ConstraintLength.h
51     SketchSolver_ConstraintMiddle.h
52     SketchSolver_ConstraintMirror.h
53     SketchSolver_ConstraintFixed.h
54     SketchSolver_ConstraintTangent.h
55     SketchSolver_ConstraintMulti.h
56     SketchSolver_ConstraintMultiRotation.h
57     SketchSolver_ConstraintMultiTranslation.h
58 )
59
60 SET(SKETCHSOLVER_SOURCES
61     SketchSolver_Group.cpp
62     SketchSolver_Manager.cpp
63     SketchSolver_Storage.cpp
64 )
65
66 SET(SKETCHSOLVER_CONSTRAINT_SOURCES
67     SketchSolver_Constraint.cpp
68     SketchSolver_ConstraintAngle.cpp
69     SketchSolver_ConstraintCoincidence.cpp
70     SketchSolver_ConstraintCollinear.cpp
71     SketchSolver_ConstraintDistance.cpp
72     SketchSolver_ConstraintEqual.cpp
73     SketchSolver_ConstraintLength.cpp
74     SketchSolver_ConstraintMiddle.cpp
75     SketchSolver_ConstraintMirror.cpp
76     SketchSolver_ConstraintFixed.cpp
77     SketchSolver_ConstraintTangent.cpp
78     SketchSolver_ConstraintMulti.cpp
79     SketchSolver_ConstraintMultiRotation.cpp
80     SketchSolver_ConstraintMultiTranslation.cpp
81 )
82
83 SET(SKETCHSOLVER_LIBRARIES
84     Config
85     Events
86     ModelAPI
87     GeomAPI
88     GeomDataAPI
89 )
90
91 SET(SKETCHSOLVER_TEXT_RESOURCES
92     SketchSolver_msg_en.ts
93 )
94
95 INCLUDE_DIRECTORIES(
96     ${PROJECT_SOURCE_DIR}/src/Config
97     ${PROJECT_SOURCE_DIR}/src/SketchPlugin
98     ${PROJECT_SOURCE_DIR}/src/ModelAPI
99     ${PROJECT_SOURCE_DIR}/src/GeomAPI
100     ${PROJECT_SOURCE_DIR}/src/GeomDataAPI
101     ${PROJECT_SOURCE_DIR}/src/Events
102 )
103
104 #SOURCE_GROUP ("Resource Files" FILES ${SKETCHSOLVER_TEXT_RESOURCES})
105 #
106 #ADD_DEFINITIONS(-DSKETCHSOLVER_EXPORTS)
107 #
108 #ADD_LIBRARY(SketchSolver SHARED ${SKETCHSOLVER_SOURCES} ${SKETCHSOLVER_CONSTRAINT_SOURCES} ${SKETCHSOLVER_HEADERS} ${SKETCHSOLVER_CONSTRAINT_HEADERS} ${SKETCHSOLVER_TEXT_RESOURCES}
109 #)
110 #
111 #TARGET_LINK_LIBRARIES(SketchSolver ${SKETCHSOLVER_LIBRARIES}
112 #)
113 #
114 #INSTALL(TARGETS SketchSolver DESTINATION ${SHAPER_INSTALL_PLUGIN_FILES})
115 #INSTALL(FILES ${SKETCHSOLVER_TEXT_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
116
117 # Set full path to source files
118 TO_FULL_PATH(SKETCHSOLVER_SOURCES)
119 TO_FULL_PATH(SKETCHSOLVER_CONSTRAINT_SOURCES)
120 TO_FULL_PATH(SKETCHSOLVER_HEADERS)
121 TO_FULL_PATH(SKETCHSOLVER_CONSTRAINT_HEADERS)
122 TO_FULL_PATH(SKETCHSOLVER_TEXT_RESOURCES)
123
124
125 # Include specific solvers
126 IF(NO_SolveSpace)
127   SET(SSPath_FOUND FALSE)
128 ELSE()
129   FIND_FILE(SSPath "SolveSpaceSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
130   STRING(COMPARE NOTEQUAL ${SSPath} "SSPath-NOTFOUND" SSPath_FOUND)
131 ENDIF()
132
133 IF(NO_PlaneGCS)
134   SET(GCSPath_FOUND FALSE)
135 ELSE()
136   FIND_FILE(GCSPath "PlaneGCSSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
137   STRING(COMPARE NOTEQUAL ${GCSPath} "GCSPath-NOTFOUND" GCSPath_FOUND)
138 ENDIF()
139
140 IF(${SSPath_FOUND} OR ${GCSPath_FOUND})
141   IF(${SSPath_FOUND})
142     MESSAGE(STATUS "SolveSpaceSolver plugin found in ${SSPath}")
143     ADD_SUBDIRECTORY(SolveSpaceSolver)
144   ENDIF()
145   IF(${GCSPath_FOUND})
146     MESSAGE(STATUS "PlaneGCSSolver plugin found in ${GCSPath}")
147     ADD_SUBDIRECTORY(PlaneGCSSolver)
148   ENDIF()
149 ELSE()
150   MESSAGE(WARNING "No sketch solver plugin is found")
151 ENDIF()