Salome HOME
e9d81431616c6317a278438d0b309c7c34abdd81
[modules/shaper.git] / src / SketchSolver / CMakeLists.txt
1 ## Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 INCLUDE(Common)
4
5 SET(PROJECT_HEADERS
6     SketchSolver.h
7     SketchSolver_Error.h
8     SketchSolver_Constraint.h
9     SketchSolver_ConstraintAngle.h
10     SketchSolver_ConstraintCoincidence.h
11     SketchSolver_ConstraintCollinear.h
12     SketchSolver_ConstraintDistance.h
13     SketchSolver_ConstraintEqual.h
14     SketchSolver_ConstraintLength.h
15     SketchSolver_ConstraintMiddle.h
16     SketchSolver_ConstraintMirror.h
17     SketchSolver_ConstraintFixed.h
18     SketchSolver_ConstraintFixedArcRadius.h
19     SketchSolver_ConstraintTangent.h
20     SketchSolver_ConstraintMulti.h
21     SketchSolver_ConstraintMultiRotation.h
22     SketchSolver_ConstraintMultiTranslation.h
23     SketchSolver_ConstraintMovement.h
24     SketchSolver_Group.h
25     SketchSolver_Builder.h
26     SketchSolver_IConstraintWrapper.h
27     SketchSolver_IEntityWrapper.h
28     SketchSolver_IParameterWrapper.h
29     SketchSolver_ISolver.h
30     SketchSolver_Manager.h
31     SketchSolver_Storage.h
32 )
33
34 SET(PROJECT_SOURCES
35     SketchSolver_Constraint.cpp
36     SketchSolver_ConstraintAngle.cpp
37     SketchSolver_ConstraintCoincidence.cpp
38     SketchSolver_ConstraintCollinear.cpp
39     SketchSolver_ConstraintDistance.cpp
40     SketchSolver_ConstraintEqual.cpp
41     SketchSolver_ConstraintLength.cpp
42     SketchSolver_ConstraintMiddle.cpp
43     SketchSolver_ConstraintMirror.cpp
44     SketchSolver_ConstraintFixed.cpp
45     SketchSolver_ConstraintFixedArcRadius.cpp
46     SketchSolver_ConstraintTangent.cpp
47     SketchSolver_ConstraintMulti.cpp
48     SketchSolver_ConstraintMultiRotation.cpp
49     SketchSolver_ConstraintMultiTranslation.cpp
50     SketchSolver_ConstraintMovement.cpp
51     SketchSolver_Group.cpp
52     SketchSolver_Builder.cpp
53     SketchSolver_Manager.cpp
54     SketchSolver_Storage.cpp
55 )
56
57 SET(PROJECT_LIBRARIES
58     Config
59     Events
60     ModelAPI
61     GeomAPI
62     GeomDataAPI
63 )
64
65 SET(TEXT_RESOURCES
66     SketchSolver_msg_en.ts
67 )
68
69 INCLUDE_DIRECTORIES(
70     ${PROJECT_SOURCE_DIR}/src/Config
71     ${PROJECT_SOURCE_DIR}/src/SketchPlugin
72     ${PROJECT_SOURCE_DIR}/src/ModelAPI
73     ${PROJECT_SOURCE_DIR}/src/GeomAPI
74     ${PROJECT_SOURCE_DIR}/src/GeomDataAPI
75     ${PROJECT_SOURCE_DIR}/src/Events
76 )
77
78 SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES})
79
80 ADD_DEFINITIONS(-DSKETCHSOLVER_EXPORTS)
81
82 ADD_LIBRARY(SketchSolver SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS} ${TEXT_RESOURCES}
83 )
84
85 TARGET_LINK_LIBRARIES(SketchSolver ${PROJECT_LIBRARIES}
86 )
87
88 INSTALL(TARGETS SketchSolver DESTINATION ${SHAPER_INSTALL_PLUGIN_FILES})
89 INSTALL(FILES ${TEXT_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
90
91
92 # Include specific solvers
93 IF(NO_SolveSpace)
94   SET(SSPath_FOUND FALSE)
95 ELSE()
96   FIND_FILE(SSPath "SolveSpaceSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
97   STRING(COMPARE NOTEQUAL ${SSPath} "SSPath-NOTFOUND" SSPath_FOUND)
98 ENDIF()
99
100 IF(NO_PlaneGCS)
101   SET(GCSPath_FOUND FALSE)
102 ELSE()
103   FIND_FILE(GCSPath "PlaneGCSSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
104   STRING(COMPARE NOTEQUAL ${GCSPath} "GCSPath-NOTFOUND" GCSPath_FOUND)
105 ENDIF()
106
107 IF(${SSPath_FOUND} OR ${GCSPath_FOUND})
108   IF(${SSPath_FOUND})
109     MESSAGE(STATUS "SolveSpaceSolver plugin found in ${SSPath}")
110     ADD_SUBDIRECTORY(SolveSpaceSolver)
111   ENDIF()
112   IF(${GCSPath_FOUND})
113     MESSAGE(STATUS "PlaneGCSSolver plugin found in ${GCSPath}")
114     ADD_SUBDIRECTORY(PlaneGCSSolver)
115   ENDIF()
116 ELSE()
117   MESSAGE(WARNING "No sketch solver plugin is found")
118 ENDIF()