Salome HOME
updated copyright message
[modules/shaper.git] / src / PartSet / CMakeLists.txt
index 05e04db0d625f32a8408a639cb3c6e10a14c22e0..d9c47ec47b1ab1f7eb80756a4a8490316bf33870 100644 (file)
-## 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
+#
 
 INCLUDE(Common)
+INCLUDE(UseQtExt)
 
-SET(CMAKE_AUTOMOC ON)
+# additional include directories
+INCLUDE_DIRECTORIES(${QT_INCLUDES})
+
+# additional preprocessor / compiler flags
+ADD_DEFINITIONS(${QT_DEFINITIONS} ${OpenCASCADE_DEFINITIONS})
+
+SET(UPDATE_TRANSLATION OFF)
 
 SET(PROJECT_HEADERS
-       PartSet.h
-       PartSet_Constants.h
-       PartSet_CustomPrs.h
-       PartSet_ExternalObjectsMgr.h
-       PartSet_Module.h
-       PartSet_OperationPrs.h
-       PartSet_Tools.h
-       PartSet_WidgetSketchLabel.h
-       PartSet_Validators.h
-       PartSet_WidgetPoint2d.h
-       PartSet_WidgetPoint2dAngle.h
-       PartSet_WidgetEditor.h
-       PartSet_WidgetMultiSelector.h
-       PartSet_WidgetPoint2dDistance.h
-       PartSet_WidgetPoint2DFlyout.h
-       PartSet_WidgetShapeSelector.h
-       PartSet_WidgetFileSelector.h
-       PartSet_Filters.h
-       PartSet_FilterInfinite.h
-       PartSet_SketcherMgr.h
-       PartSet_SketcherReetntrantMgr.h
-       PartSet_MenuMgr.h
-       PartSet_WidgetSketchCreator.h
-       PartSet_IconFactory.h
-       PartSet_WidgetChoice.h
+    PartSet.h
+    PartSet_Constants.h
+    PartSet_CustomPrs.h
+    PartSet_ExternalObjectsMgr.h
+    PartSet_FilterInfinite.h
+    PartSet_Filters.h
+    PartSet_IconFactory.h
+    PartSet_MenuMgr.h
+    PartSet_Module.h
+    PartSet_MouseProcessor.h
+    PartSet_OperationPrs.h
+    PartSet_OverconstraintListener.h
+    PartSet_PreviewPlanes.h
+    PartSet_PreviewSketchPlane.h
+    PartSet_ResultSketchPrs.h
+    PartSet_SketcherMgr.h
+    PartSet_SketcherReentrantMgr.h
+    PartSet_Tools.h
+    PartSet_Validators.h
+    PartSet_WidgetEditor.h
+    PartSet_WidgetFeaturePointSelector.h
+    PartSet_WidgetFileSelector.h
+    PartSet_WidgetMultiSelector.h
+    PartSet_WidgetPoint2d.h
+    PartSet_WidgetPoint2DFlyout.h
+    PartSet_WidgetShapeSelector.h
+    PartSet_WidgetSketchCreator.h
+    PartSet_WidgetSketchLabel.h
+    PartSet_CenterPrs.h
+    PartSet_ExternalPointsMgr.h
+    PartSet_TreeNodes.h
+    PartSet_FieldStepPrs.h
+    PartSet_WidgetBSplinePoints.h
+    PartSet_BSplineWidget.h
+)
+
+SET(PROJECT_MOC_HEADERS
+
+    PartSet_MenuMgr.h
+    PartSet_Module.h
+    PartSet_SketcherMgr.h
+    PartSet_SketcherReentrantMgr.h
+    PartSet_WidgetEditor.h
+    PartSet_WidgetFeaturePointSelector.h
+    PartSet_WidgetFileSelector.h
+    PartSet_WidgetMultiSelector.h
+    PartSet_WidgetPoint2d.h
+    PartSet_WidgetPoint2DFlyout.h
+    PartSet_WidgetShapeSelector.h
+    PartSet_WidgetSketchCreator.h
+    PartSet_WidgetSketchLabel.h
+    PartSet_WidgetBSplinePoints.h
+    PartSet_ExternalPointsMgr.h
+    PartSet_BSplineWidget.h
 )
 
 SET(PROJECT_SOURCES
-       PartSet_CustomPrs.cpp
-       PartSet_ExternalObjectsMgr.cpp
-       PartSet_Module.cpp
-       PartSet_OperationPrs.cpp
-       PartSet_Tools.cpp
-       PartSet_WidgetSketchLabel.cpp
-       PartSet_Validators.cpp
-       PartSet_WidgetEditor.cpp
-       PartSet_WidgetMultiSelector.cpp
-       PartSet_WidgetPoint2d.cpp
-       PartSet_WidgetPoint2dAngle.cpp
-       PartSet_WidgetPoint2dDistance.cpp
-       PartSet_WidgetPoint2DFlyout.cpp
-       PartSet_WidgetShapeSelector.cpp
-       PartSet_WidgetFileSelector.cpp
-       PartSet_Filters.cpp
-       PartSet_FilterInfinite.cpp
-       PartSet_SketcherMgr.cpp
-       PartSet_SketcherReetntrantMgr.cpp
-       PartSet_MenuMgr.cpp
-       PartSet_WidgetSketchCreator.cpp
-       PartSet_IconFactory.cpp
+    PartSet_CustomPrs.cpp
+    PartSet_ExternalObjectsMgr.cpp
+    PartSet_FilterInfinite.cpp
+    PartSet_Filters.cpp
+    PartSet_IconFactory.cpp
+    PartSet_MenuMgr.cpp
+    PartSet_Module.cpp
+    PartSet_OperationPrs.cpp
+    PartSet_OverconstraintListener.cpp
+    PartSet_PreviewPlanes.cpp
+    PartSet_PreviewSketchPlane.cpp
+    PartSet_ResultSketchPrs.cpp
+    PartSet_SketcherMgr.cpp
+    PartSet_SketcherReentrantMgr.cpp
+    PartSet_Tools.cpp
+    PartSet_Validators.cpp
+    PartSet_WidgetEditor.cpp
+    PartSet_WidgetFeaturePointSelector.cpp
+    PartSet_WidgetFileSelector.cpp
+    PartSet_WidgetMultiSelector.cpp
+    PartSet_WidgetPoint2d.cpp
+    PartSet_WidgetPoint2DFlyout.cpp
+    PartSet_WidgetShapeSelector.cpp
+    PartSet_WidgetSketchCreator.cpp
+    PartSet_WidgetSketchLabel.cpp
+    PartSet_CenterPrs.cpp
+    PartSet_ExternalPointsMgr.cpp
+    PartSet_TreeNodes.cpp
+    PartSet_FieldStepPrs.cpp
+    PartSet_WidgetBSplinePoints.cpp
+    PartSet_BSplineWidget.cpp
 )
 
-SET(PROJECT_RESOURCES 
+SET(PROJECT_RESOURCES
     PartSet_icons.qrc
 )
 
-#SET(TEXT_RESOURCES
-#      PartSet_msg_fr.ts
-#)
+SET(TEXT_RESOURCES
+    PartSet_msg_fr.ts
+)
 
 SET(PROJECT_LIBRARIES
     ModuleBase
+    ModelGeomAlgo
     Config
+    Locale
     GeomAPI
     GeomDataAPI
-       SketcherPrs
+    SketcherPrs
     ${QT_LIBRARIES}
-    ${CAS_KERNEL}
-    ${CAS_SHAPE}
+    ${OpenCASCADE_FoundationClasses_LIBRARIES}
+    ${OpenCASCADE_ApplicationFramework_LIBRARIES}
+    ${OCCViewer}
 )
 
-SET(PROJECT_AUTOMOC 
-    ${CMAKE_CURRENT_BINARY_DIR}/PartSet_automoc.cpp
-)
+# sources / moc wrappings
+QT_WRAP_MOC(PROJECT_AUTOMOC ${PROJECT_MOC_HEADERS})
+
+# sources / rcc wrappings
+QT_ADD_RESOURCES(PROJECT_COMPILED_RESOURCES ${PROJECT_RESOURCES})
+
+IF (${UPDATE_TRANSLATION})
+    SET(PROJECT_FILES ${PROJECT_SOURCES} ${PROJECT_HEADERS} )
+    QT5_CREATE_TRANSLATION(QM_RESOURCES
+                           ${PROJECT_FILES}
+                           ${TEXT_RESOURCES}
+                           OPTIONS -extensions cpp -no-recursive -locations none
+                          )
+ELSE(${UPDATE_TRANSLATION})
+    IF(${MAKE_TRANSLATION})
+        QT5_ADD_TRANSLATION(QM_RESOURCES ${TEXT_RESOURCES})
+    ENDIF(${MAKE_TRANSLATION})
+ENDIF(${UPDATE_TRANSLATION})
 
-QT4_ADD_RESOURCES(PROJECT_COMPILED_RESOURCES ${PROJECT_RESOURCES})
-#QT4_ADD_TRANSLATION(QM_RESOURCES ${TEXT_RESOURCES})
-#QT4_CREATE_TRANSLATION(QM_RESOURCES 
-#                                         ${PROJECT_SOURCES}
-#                                         ${TEXT_RESOURCES}
-#                                         OPTIONS -extensions cpp -no-recursive
-#                                         )
-
-#SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES} ${QM_RESOURCES})
-SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES})
-#SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES} ${PROJECT_RESOURCES})
-SOURCE_GROUP ("Resource Files" FILES ${PROJECT_RESOURCES})
-
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/XGUI 
-                    ${CMAKE_SOURCE_DIR}/src/Config
-                    ${CMAKE_SOURCE_DIR}/src/Events
-                    ${CMAKE_SOURCE_DIR}/src/ModuleBase
-                    ${CMAKE_SOURCE_DIR}/src/ModelAPI
-                    ${CMAKE_SOURCE_DIR}/src/GeomDataAPI
-                    ${CMAKE_SOURCE_DIR}/src/GeomAlgoAPI
-                    ${CMAKE_SOURCE_DIR}/src/SketchPlugin
-                    ${CMAKE_SOURCE_DIR}/src/ExchangePlugin
-                    ${CMAKE_SOURCE_DIR}/src/SketcherPrs
-                    ${CMAKE_SOURCE_DIR}/src/FeaturesPlugin
-                    ${CMAKE_SOURCE_DIR}/src/PartSetPlugin
-                    ${CMAKE_SOURCE_DIR}/src/GeomAPI
-                    ${CMAKE_SOURCE_DIR}/src/AppElements
-                    ${CAS_INCLUDE_DIRS}
+SOURCE_GROUP ("Generated Files" FILES ${PROJECT_AUTOMOC} ${PROJECT_COMPILED_RESOURCES} ${QM_RESOURCES})
+SOURCE_GROUP ("Resource Files" FILES ${TEXT_RESOURCES} ${PROJECT_RESOURCES})
+
+INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/XGUI
+                    ${PROJECT_SOURCE_DIR}/src/Config
+                    ${PROJECT_SOURCE_DIR}/src/Events
+                    ${PROJECT_SOURCE_DIR}/src/Locale
+                    ${PROJECT_SOURCE_DIR}/src/ModuleBase
+                    ${PROJECT_SOURCE_DIR}/src/ModelAPI
+                    ${PROJECT_SOURCE_DIR}/src/ModelGeomAlgo
+                    ${PROJECT_SOURCE_DIR}/src/GeomDataAPI
+                    ${PROJECT_SOURCE_DIR}/src/GeomAlgoAPI
+                    ${PROJECT_SOURCE_DIR}/src/SketchPlugin
+                    ${PROJECT_SOURCE_DIR}/src/ExchangePlugin
+                    ${PROJECT_SOURCE_DIR}/src/SketcherPrs
+                    ${PROJECT_SOURCE_DIR}/src/FeaturesPlugin
+                    ${PROJECT_SOURCE_DIR}/src/PartSetPlugin
+                    ${PROJECT_SOURCE_DIR}/src/GeomAPI
+                    ${PROJECT_SOURCE_DIR}/src/CollectionPlugin
+                    ${OpenCASCADE_INCLUDE_DIR}
                     ${SUIT_INCLUDE}
 )
 
-ADD_DEFINITIONS(-DPARTSET_EXPORTS ${CAS_DEFINITIONS})
-ADD_LIBRARY(PartSet SHARED 
-       ${PROJECT_SOURCES} 
-       ${PROJECT_HEADERS} 
-       ${PROJECT_COMPILED_RESOURCES} 
-#      ${TEXT_RESOURCES} 
-#      ${QM_RESOURCES}
+IF(NOT ${HAVE_SALOME})
+  INCLUDE_DIRECTORIES(${APPELEMENTS_INCLUDE_DIR})
+ENDIF()
+
+ADD_DEFINITIONS(-DPARTSET_EXPORTS ${OpenCASCADE_DEFINITIONS})
+ADD_LIBRARY(PartSet SHARED
+    ${PROJECT_SOURCES}
+    ${PROJECT_HEADERS}
+    ${PROJECT_COMPILED_RESOURCES}
+    ${PROJECT_AUTOMOC}
+    ${TEXT_RESOURCES}
+    ${QM_RESOURCES}
 )
 
 # The Qt5Widgets_LIBRARIES variable also includes QtGui and QtCore
@@ -125,5 +202,5 @@ TARGET_LINK_LIBRARIES(PartSet ${PROJECT_LIBRARIES} XGUI ModelAPI GeomAlgoAPI)
 
 ADD_DEPENDENCIES(PartSet ModuleBase)
 
-INSTALL(TARGETS PartSet DESTINATION bin)
-#INSTALL(FILES ${QM_RESOURCES} DESTINATION bin)
+INSTALL(TARGETS PartSet DESTINATION ${SHAPER_INSTALL_BIN})
+INSTALL(FILES ${QM_RESOURCES} DESTINATION ${SHAPER_INSTALL_QM_RESOURCES})