X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSketchSolver%2FCMakeLists.txt;h=3fd5a136aa6d55332a8d45095ab8d255ce07e6e5;hb=0ee639ebd71134c52665e297293ec04266e42b5b;hp=97441526be0b1feb9d2aa7b23a42abca4265b12b;hpb=9e42f6b2f20d179ca4d5eb5a3c3a4fe4f9985415;p=modules%2Fshaper.git diff --git a/src/SketchSolver/CMakeLists.txt b/src/SketchSolver/CMakeLists.txt index 97441526b..3fd5a136a 100644 --- a/src/SketchSolver/CMakeLists.txt +++ b/src/SketchSolver/CMakeLists.txt @@ -1,66 +1,104 @@ -## Copyright (C) 2014-20xx CEA/DEN, EDF R&D +# Copyright (C) 2014-2023 CEA, EDF +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + +# 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) -FIND_PACKAGE(SolveSpace REQUIRED) -SET(PROJECT_HEADERS - SketchSolver.h +SET(SKETCHSOLVER_HEADERS SketchSolver_Error.h - SketchSolver_Solver.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_ConstraintFillet.h SketchSolver_ConstraintLength.h + SketchSolver_ConstraintMiddle.h SketchSolver_ConstraintMirror.h - SketchSolver_ConstraintRigid.h + SketchSolver_ConstraintFixed.h + SketchSolver_ConstraintPerpendicular.h SketchSolver_ConstraintTangent.h SketchSolver_ConstraintMulti.h SketchSolver_ConstraintMultiRotation.h SketchSolver_ConstraintMultiTranslation.h SketchSolver_ConstraintMovement.h - SketchSolver_Builder.h - SketchSolver_Group.h - SketchSolver_ConstraintManager.h - SketchSolver_Storage.h - SketchSolver_FeatureStorage.h + SketchSolver_ConstraintOffset.h ) -SET(PROJECT_SOURCES - SketchSolver_Solver.cpp +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_ConstraintFillet.cpp SketchSolver_ConstraintLength.cpp + SketchSolver_ConstraintMiddle.cpp SketchSolver_ConstraintMirror.cpp - SketchSolver_ConstraintRigid.cpp + SketchSolver_ConstraintFixed.cpp + SketchSolver_ConstraintPerpendicular.cpp SketchSolver_ConstraintTangent.cpp SketchSolver_ConstraintMulti.cpp SketchSolver_ConstraintMultiRotation.cpp SketchSolver_ConstraintMultiTranslation.cpp SketchSolver_ConstraintMovement.cpp - SketchSolver_Builder.cpp - SketchSolver_Group.cpp - SketchSolver_ConstraintManager.cpp - SketchSolver_Storage.cpp - SketchSolver_FeatureStorage.cpp + SketchSolver_ConstraintOffset.cpp ) -SET(PROJECT_LIBRARIES - ${SOLVESPACE_LIBRARIES} +SET(SKETCHSOLVER_LIBRARIES Config Events ModelAPI GeomAPI + GeomDataAPI +) + +SET(SKETCHSOLVER_TEXT_RESOURCES + SketchSolver_msg_en.ts + SketchSolver_msg_fr.ts ) INCLUDE_DIRECTORIES( - ${SOLVESPACE_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/src/Config ${PROJECT_SOURCE_DIR}/src/SketchPlugin ${PROJECT_SOURCE_DIR}/src/ModelAPI @@ -69,12 +107,51 @@ 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 MODULE ${PROJECT_SOURCES} ${PROJECT_HEADERS} -) +# 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) -TARGET_LINK_LIBRARIES(SketchSolver ${PROJECT_LIBRARIES} -) -INSTALL(TARGETS SketchSolver DESTINATION plugins) +# Include specific solvers +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}) + MESSAGE(STATUS "SolveSpaceSolver plugin found in ${SSPath}") + ADD_SUBDIRECTORY(SolveSpaceSolver) + ENDIF() + IF(${GCSPath_FOUND}) + MESSAGE(STATUS "PlaneGCSSolver plugin found in ${GCSPath}") + ADD_SUBDIRECTORY(PlaneGCSSolver) + ENDIF() +ELSE() + MESSAGE(WARNING "No sketch solver plugin is found") +ENDIF()