Salome HOME
Fix problem with unit tests on CentOS
[modules/shaper.git] / src / SketchSolver / CMakeLists.txt
index 89ddc57102b2e5fa488f4fcdc839f9dfdbe6b6a2..776221aa0419dcf7f876bb31b2c0d97dd745ffcf 100644 (file)
@@ -1,58 +1,77 @@
 ## Copyright (C) 2014-20xx CEA/DEN, EDF R&D
 
+# Avoid using SolveSpace
+SET(NO_SolveSpace TRUE)
+
+# Convert files in list to full name
+FUNCTION(TO_FULL_PATH theFILES)
+  SET(locFiles "")
+  FOREACH(locFile ${${theFILES}})
+    SET(locFiles ${locFiles} ${CMAKE_CURRENT_SOURCE_DIR}/${locFile})
+  ENDFOREACH()
+  SET(${theFILES} ${locFiles} PARENT_SCOPE)
+ENDFUNCTION(TO_FULL_PATH)
+
+
 INCLUDE(Common)
 
-SET(PROJECT_HEADERS
-    SketchSolver.h
+SET(SKETCHSOLVER_HEADERS
     SketchSolver_Error.h
+    SketchSolver_Group.h
+    SketchSolver_Manager.h
+    SketchSolver_Storage.h
+)
+
+SET(SKETCHSOLVER_CONSTRAINT_HEADERS
     SketchSolver_Constraint.h
     SketchSolver_ConstraintAngle.h
     SketchSolver_ConstraintCoincidence.h
+    SketchSolver_ConstraintCollinear.h
     SketchSolver_ConstraintDistance.h
     SketchSolver_ConstraintEqual.h
     SketchSolver_ConstraintLength.h
+    SketchSolver_ConstraintMiddle.h
     SketchSolver_ConstraintMirror.h
     SketchSolver_ConstraintFixed.h
     SketchSolver_ConstraintTangent.h
     SketchSolver_ConstraintMulti.h
     SketchSolver_ConstraintMultiRotation.h
     SketchSolver_ConstraintMultiTranslation.h
-    SketchSolver_ConstraintMovement.h
-    SketchSolver_Group.h
-    SketchSolver_Builder.h
-    SketchSolver_IConstraintWrapper.h
-    SketchSolver_IEntityWrapper.h
-    SketchSolver_IParameterWrapper.h
-    SketchSolver_ISolver.h
-    SketchSolver_Manager.h
-    SketchSolver_Storage.h
 )
 
-SET(PROJECT_SOURCES
+SET(SKETCHSOLVER_SOURCES
+    SketchSolver_Group.cpp
+    SketchSolver_Manager.cpp
+    SketchSolver_Storage.cpp
+)
+
+SET(SKETCHSOLVER_CONSTRAINT_SOURCES
     SketchSolver_Constraint.cpp
     SketchSolver_ConstraintAngle.cpp
     SketchSolver_ConstraintCoincidence.cpp
+    SketchSolver_ConstraintCollinear.cpp
     SketchSolver_ConstraintDistance.cpp
     SketchSolver_ConstraintEqual.cpp
     SketchSolver_ConstraintLength.cpp
+    SketchSolver_ConstraintMiddle.cpp
     SketchSolver_ConstraintMirror.cpp
     SketchSolver_ConstraintFixed.cpp
     SketchSolver_ConstraintTangent.cpp
     SketchSolver_ConstraintMulti.cpp
     SketchSolver_ConstraintMultiRotation.cpp
     SketchSolver_ConstraintMultiTranslation.cpp
-    SketchSolver_ConstraintMovement.cpp
-    SketchSolver_Group.cpp
-    SketchSolver_Builder.cpp
-    SketchSolver_Manager.cpp
-    SketchSolver_Storage.cpp
 )
 
-SET(PROJECT_LIBRARIES
+SET(SKETCHSOLVER_LIBRARIES
     Config
     Events
     ModelAPI
     GeomAPI
+    GeomDataAPI
+)
+
+SET(SKETCHSOLVER_TEXT_RESOURCES
+    SketchSolver_msg_en.ts
 )
 
 INCLUDE_DIRECTORIES(
@@ -64,22 +83,41 @@ INCLUDE_DIRECTORIES(
     ${PROJECT_SOURCE_DIR}/src/Events
 )
 
-ADD_DEFINITIONS(-DSKETCHSOLVER_EXPORTS)
+#SOURCE_GROUP ("Resource Files" FILES ${SKETCHSOLVER_TEXT_RESOURCES})
+#
+#ADD_DEFINITIONS(-DSKETCHSOLVER_EXPORTS)
+#
+#ADD_LIBRARY(SketchSolver SHARED ${SKETCHSOLVER_SOURCES} ${SKETCHSOLVER_CONSTRAINT_SOURCES} ${SKETCHSOLVER_HEADERS} ${SKETCHSOLVER_CONSTRAINT_HEADERS} ${SKETCHSOLVER_TEXT_RESOURCES}
+#)
+#
+#TARGET_LINK_LIBRARIES(SketchSolver ${SKETCHSOLVER_LIBRARIES}
+#)
+#
+#INSTALL(TARGETS SketchSolver DESTINATION ${SHAPER_INSTALL_PLUGIN_FILES})
+#INSTALL(FILES ${SKETCHSOLVER_TEXT_RESOURCES} DESTINATION ${SHAPER_INSTALL_XML_RESOURCES})
 
-ADD_LIBRARY(SketchSolver SHARED ${PROJECT_SOURCES} ${PROJECT_HEADERS}
-)
-
-TARGET_LINK_LIBRARIES(SketchSolver ${PROJECT_LIBRARIES}
-)
-
-INSTALL(TARGETS SketchSolver DESTINATION plugins)
+# Set full path to source files
+TO_FULL_PATH(SKETCHSOLVER_SOURCES)
+TO_FULL_PATH(SKETCHSOLVER_CONSTRAINT_SOURCES)
+TO_FULL_PATH(SKETCHSOLVER_HEADERS)
+TO_FULL_PATH(SKETCHSOLVER_CONSTRAINT_HEADERS)
+TO_FULL_PATH(SKETCHSOLVER_TEXT_RESOURCES)
 
 
 # Include specific solvers
-FIND_FILE(SSPath "SolveSpaceSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
-STRING(COMPARE NOTEQUAL ${SSPath} "SSPath-NOTFOUND" SSPath_FOUND)
-FIND_FILE(GCSPath "PlainGCSSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
-STRING(COMPARE NOTEQUAL ${GCSPath} "GCSPath-NOTFOUND" GCSPath_FOUND)
+IF(NO_SolveSpace)
+  SET(SSPath_FOUND FALSE)
+ELSE()
+  FIND_FILE(SSPath "SolveSpaceSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
+  STRING(COMPARE NOTEQUAL ${SSPath} "SSPath-NOTFOUND" SSPath_FOUND)
+ENDIF()
+
+IF(NO_PlaneGCS)
+  SET(GCSPath_FOUND FALSE)
+ELSE()
+  FIND_FILE(GCSPath "PlaneGCSSolver/CMakeLists.txt" PATHS "${CMAKE_CURRENT_SOURCE_DIR}")
+  STRING(COMPARE NOTEQUAL ${GCSPath} "GCSPath-NOTFOUND" GCSPath_FOUND)
+ENDIF()
 
 IF(${SSPath_FOUND} OR ${GCSPath_FOUND})
   IF(${SSPath_FOUND})
@@ -87,8 +125,8 @@ IF(${SSPath_FOUND} OR ${GCSPath_FOUND})
     ADD_SUBDIRECTORY(SolveSpaceSolver)
   ENDIF()
   IF(${GCSPath_FOUND})
-    MESSAGE(STATUS "PlainGCSSolver plugin found in ${GCSPath}")
-    ADD_SUBDIRECTORY(PlainGCSSolver)
+    MESSAGE(STATUS "PlaneGCSSolver plugin found in ${GCSPath}")
+    ADD_SUBDIRECTORY(PlaneGCSSolver)
   ENDIF()
 ELSE()
   MESSAGE(WARNING "No sketch solver plugin is found")