Salome HOME
Merge branch 'master' into cgt/devCEA
[modules/shaper.git] / src / SketchSolver / CMakeLists.txt
1 ## Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 # Avoid using SolveSpace
4 SET(NO_SolveSpace TRUE)
5
6 # Convert files in list to full name
7 FUNCTION(TO_FULL_PATH theFILES)
8   SET(locFiles "")
9   FOREACH(locFile ${${theFILES}})
10     SET(locFiles ${locFiles} ${CMAKE_CURRENT_SOURCE_DIR}/${locFile})
11   ENDFOREACH()
12   SET(${theFILES} ${locFiles} PARENT_SCOPE)
13 ENDFUNCTION(TO_FULL_PATH)
14
15
16 INCLUDE(Common)
17
18 SET(SKETCHSOLVER_HEADERS
19     SketchSolver_Error.h
20     SketchSolver_Group.h
21     SketchSolver_Manager.h
22     SketchSolver_Storage.h
23 )
24
25 SET(SKETCHSOLVER_CONSTRAINT_HEADERS
26     SketchSolver_Constraint.h
27     SketchSolver_ConstraintAngle.h
28     SketchSolver_ConstraintCoincidence.h
29     SketchSolver_ConstraintCollinear.h
30     SketchSolver_ConstraintDistance.h
31     SketchSolver_ConstraintEqual.h
32     SketchSolver_ConstraintLength.h
33     SketchSolver_ConstraintMiddle.h
34     SketchSolver_ConstraintMirror.h
35     SketchSolver_ConstraintFixed.h
36     SketchSolver_ConstraintTangent.h
37     SketchSolver_ConstraintMulti.h
38     SketchSolver_ConstraintMultiRotation.h
39     SketchSolver_ConstraintMultiTranslation.h
40 )
41
42 SET(SKETCHSOLVER_SOURCES
43     SketchSolver_Group.cpp
44     SketchSolver_Manager.cpp
45     SketchSolver_Storage.cpp
46 )
47
48 SET(SKETCHSOLVER_CONSTRAINT_SOURCES
49     SketchSolver_Constraint.cpp
50     SketchSolver_ConstraintAngle.cpp
51     SketchSolver_ConstraintCoincidence.cpp
52     SketchSolver_ConstraintCollinear.cpp
53     SketchSolver_ConstraintDistance.cpp
54     SketchSolver_ConstraintEqual.cpp
55     SketchSolver_ConstraintLength.cpp
56     SketchSolver_ConstraintMiddle.cpp
57     SketchSolver_ConstraintMirror.cpp
58     SketchSolver_ConstraintFixed.cpp
59     SketchSolver_ConstraintTangent.cpp
60     SketchSolver_ConstraintMulti.cpp
61     SketchSolver_ConstraintMultiRotation.cpp
62     SketchSolver_ConstraintMultiTranslation.cpp
63 )
64
65 SET(SKETCHSOLVER_LIBRARIES
66     Config
67     Events
68     ModelAPI
69     GeomAPI
70     GeomDataAPI
71 )
72
73 SET(SKETCHSOLVER_TEXT_RESOURCES
74     SketchSolver_msg_en.ts
75 )
76
77 INCLUDE_DIRECTORIES(
78     ${PROJECT_SOURCE_DIR}/src/Config
79     ${PROJECT_SOURCE_DIR}/src/SketchPlugin
80     ${PROJECT_SOURCE_DIR}/src/ModelAPI
81     ${PROJECT_SOURCE_DIR}/src/GeomAPI
82     ${PROJECT_SOURCE_DIR}/src/GeomDataAPI
83     ${PROJECT_SOURCE_DIR}/src/Events
84 )
85
86 #SOURCE_GROUP ("Resource Files" FILES ${SKETCHSOLVER_TEXT_RESOURCES})
87 #
88 #ADD_DEFINITIONS(-DSKETCHSOLVER_EXPORTS)
89 #
90 #ADD_LIBRARY(SketchSolver SHARED ${SKETCHSOLVER_SOURCES} ${SKETCHSOLVER_CONSTRAINT_SOURCES} ${SKETCHSOLVER_HEADERS} ${SKETCHSOLVER_CONSTRAINT_HEADERS} ${SKETCHSOLVER_TEXT_RESOURCES}
91 #)
92 #
93 #TARGET_LINK_LIBRARIES(SketchSolver ${SKETCHSOLVER_LIBRARIES}
94 #)
95 #
96 #INSTALL(TARGETS SketchSolver DESTINATION ${SHAPER_INSTALL_PLUGIN_FILES})
97 #INSTALL(FILES ${SKETCHSOLVER_TEXT_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
98
99 # Set full path to source files
100 TO_FULL_PATH(SKETCHSOLVER_SOURCES)
101 TO_FULL_PATH(SKETCHSOLVER_CONSTRAINT_SOURCES)
102 TO_FULL_PATH(SKETCHSOLVER_HEADERS)
103 TO_FULL_PATH(SKETCHSOLVER_CONSTRAINT_HEADERS)
104 TO_FULL_PATH(SKETCHSOLVER_TEXT_RESOURCES)
105
106
107 # Include specific solvers
108 IF(NO_SolveSpace)
109   SET(SSPath_FOUND FALSE)
110 ELSE()
111   FIND_FILE(SSPath "SolveSpaceSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
112   STRING(COMPARE NOTEQUAL ${SSPath} "SSPath-NOTFOUND" SSPath_FOUND)
113 ENDIF()
114
115 IF(NO_PlaneGCS)
116   SET(GCSPath_FOUND FALSE)
117 ELSE()
118   FIND_FILE(GCSPath "PlaneGCSSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
119   STRING(COMPARE NOTEQUAL ${GCSPath} "GCSPath-NOTFOUND" GCSPath_FOUND)
120 ENDIF()
121
122 IF(${SSPath_FOUND} OR ${GCSPath_FOUND})
123   IF(${SSPath_FOUND})
124     MESSAGE(STATUS "SolveSpaceSolver plugin found in ${SSPath}")
125     ADD_SUBDIRECTORY(SolveSpaceSolver)
126   ENDIF()
127   IF(${GCSPath_FOUND})
128     MESSAGE(STATUS "PlaneGCSSolver plugin found in ${GCSPath}")
129     ADD_SUBDIRECTORY(PlaneGCSSolver)
130   ENDIF()
131 ELSE()
132   MESSAGE(WARNING "No sketch solver plugin is found")
133 ENDIF()