]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchSolver/CMakeLists.txt
Salome HOME
b2eb5473852d5c464dc5cd6f91822e05421a5bbe
[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_ConstraintMirror.h
16     SketchSolver_ConstraintFixed.h
17     SketchSolver_ConstraintFixedArcRadius.h
18     SketchSolver_ConstraintTangent.h
19     SketchSolver_ConstraintMulti.h
20     SketchSolver_ConstraintMultiRotation.h
21     SketchSolver_ConstraintMultiTranslation.h
22     SketchSolver_ConstraintMovement.h
23     SketchSolver_Group.h
24     SketchSolver_Builder.h
25     SketchSolver_IConstraintWrapper.h
26     SketchSolver_IEntityWrapper.h
27     SketchSolver_IParameterWrapper.h
28     SketchSolver_ISolver.h
29     SketchSolver_Manager.h
30     SketchSolver_Storage.h
31 )
32
33 SET(PROJECT_SOURCES
34     SketchSolver_Constraint.cpp
35     SketchSolver_ConstraintAngle.cpp
36     SketchSolver_ConstraintCoincidence.cpp
37     SketchSolver_ConstraintCollinear.cpp
38     SketchSolver_ConstraintDistance.cpp
39     SketchSolver_ConstraintEqual.cpp
40     SketchSolver_ConstraintLength.cpp
41     SketchSolver_ConstraintMirror.cpp
42     SketchSolver_ConstraintFixed.cpp
43     SketchSolver_ConstraintFixedArcRadius.cpp
44     SketchSolver_ConstraintTangent.cpp
45     SketchSolver_ConstraintMulti.cpp
46     SketchSolver_ConstraintMultiRotation.cpp
47     SketchSolver_ConstraintMultiTranslation.cpp
48     SketchSolver_ConstraintMovement.cpp
49     SketchSolver_Group.cpp
50     SketchSolver_Builder.cpp
51     SketchSolver_Manager.cpp
52     SketchSolver_Storage.cpp
53 )
54
55 SET(PROJECT_LIBRARIES
56     Config
57     Events
58     ModelAPI
59     GeomAPI
60     GeomDataAPI
61 )
62
63 INCLUDE_DIRECTORIES(
64     ${PROJECT_SOURCE_DIR}/src/Config
65     ${PROJECT_SOURCE_DIR}/src/SketchPlugin
66     ${PROJECT_SOURCE_DIR}/src/ModelAPI
67     ${PROJECT_SOURCE_DIR}/src/GeomAPI
68     ${PROJECT_SOURCE_DIR}/src/GeomDataAPI
69     ${PROJECT_SOURCE_DIR}/src/Events
70 )
71
72 ADD_DEFINITIONS(-DSKETCHSOLVER_EXPORTS)
73
74 ADD_LIBRARY(SketchSolver SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS}
75 )
76
77 TARGET_LINK_LIBRARIES(SketchSolver ${PROJECT_LIBRARIES}
78 )
79
80 INSTALL(TARGETS SketchSolver DESTINATION ${SHAPER_INSTALL_PLUGIN_FILES})
81
82
83 # Include specific solvers
84 IF(NO_SolveSpace)
85   SET(SSPath_FOUND FALSE)
86 ELSE()
87   FIND_FILE(SSPath "SolveSpaceSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
88   STRING(COMPARE NOTEQUAL ${SSPath} "SSPath-NOTFOUND" SSPath_FOUND)
89 ENDIF()
90
91 IF(NO_PlaneGCS)
92   SET(GCSPath_FOUND FALSE)
93 ELSE()
94   FIND_FILE(GCSPath "PlaneGCSSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
95   STRING(COMPARE NOTEQUAL ${GCSPath} "GCSPath-NOTFOUND" GCSPath_FOUND)
96 ENDIF()
97
98 IF(${SSPath_FOUND} OR ${GCSPath_FOUND})
99   IF(${SSPath_FOUND})
100     MESSAGE(STATUS "SolveSpaceSolver plugin found in ${SSPath}")
101     ADD_SUBDIRECTORY(SolveSpaceSolver)
102   ENDIF()
103   IF(${GCSPath_FOUND})
104     MESSAGE(STATUS "PlaneGCSSolver plugin found in ${GCSPath}")
105     ADD_SUBDIRECTORY(PlaneGCSSolver)
106   ENDIF()
107 ELSE()
108   MESSAGE(WARNING "No sketch solver plugin is found")
109 ENDIF()