Salome HOME
Copyright update 2022
[modules/gui.git] / src / SalomeApp / CMakeLists.txt
old mode 100755 (executable)
new mode 100644 (file)
index f0e0d44..05b406e
@@ -1,9 +1,9 @@
-# Copyright (C) 2012-2013  CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 #
 # 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.
+# 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
@@ -22,18 +22,16 @@ IF(SALOME_BUILD_TESTS)
    ADD_SUBDIRECTORY(Test)
 ENDIF()
 
-INCLUDE(UseQt4Ext)
-INCLUDE(${VTK_USE_FILE})
+INCLUDE(UseQtExt)
 
 # --- options ---
 
 # additional include directories
 INCLUDE_DIRECTORIES(
-  ${CAS_INCLUDE_DIRS}
+  ${OpenCASCADE_INCLUDE_DIR}
   ${QT_INCLUDES}
   ${QWT_INCLUDE_DIR}
   ${Boost_INCLUDE_DIRS}
-  ${PYTHON_INCLUDE_DIRS}
   ${PTHREAD_INCLUDE_DIR}
   ${OMNIORB_INCLUDE_DIR}
   ${PROJECT_BINARY_DIR}/idl
@@ -44,42 +42,90 @@ INCLUDE_DIRECTORIES(
   ${PROJECT_SOURCE_DIR}/src/OBJECT
   ${PROJECT_SOURCE_DIR}/src/ObjBrowser
   ${PROJECT_SOURCE_DIR}/src/Prs
-  ${PROJECT_SOURCE_DIR}/src/PyConsole
-  ${PROJECT_SOURCE_DIR}/src/PyInterp
   ${PROJECT_SOURCE_DIR}/src/Qtx
   ${PROJECT_SOURCE_DIR}/src/STD
   ${PROJECT_SOURCE_DIR}/src/SUIT
   ${PROJECT_SOURCE_DIR}/src/SVTK
-  ${PROJECT_SOURCE_DIR}/src/Session
   ${PROJECT_SOURCE_DIR}/src/TOOLSGUI
   ${PROJECT_SOURCE_DIR}/src/VTKViewer
 )
 
+IF(SALOME_USE_PYCONSOLE)
+  INCLUDE_DIRECTORIES(
+    ${PYTHON_INCLUDE_DIRS}
+    ${PROJECT_SOURCE_DIR}/tools/PyConsole/src
+    ${PROJECT_SOURCE_DIR}/tools/PyInterp/src
+  )
+ENDIF()
+
 # additional preprocessor / compiler flags
 ADD_DEFINITIONS(
   ${QT_DEFINITIONS}
   ${OMNIORB_DEFINITIONS}
   ${QWT_DEFINITIONS}
-  ${CAS_DEFINITIONS}
+  ${OpenCASCADE_DEFINITIONS}
   ${BOOST_DEFINITIONS}
-  ${PYTHON_DEFINITIONS}
 )
 
+IF(SALOME_USE_PYCONSOLE)
+  ADD_DEFINITIONS(${PYTHON_DEFINITIONS})
+ENDIF()
+
 # libraries to link to
 SET(_link_LIBRARIES
-  ${CAS_KERNEL}
+  ${OpenCASCADE_FoundationClasses_LIBRARIES}
   ${QT_LIBRARIES}
   ${PYTHON_LIBRARIES}
-  ${KERNEL_OpUtil} ${KERNEL_SALOMELocalTrace} ${KERNEL_SalomeDSClient} ${KERNEL_TOOLSDS}
-  CASCatch suit std CAM ObjBrowser SalomePrs PyInterp PyConsole Event
-  GLViewer Plot2d OCCViewer VTKViewer SalomeObject SPlot2d SOCC SVTK
-  LogWindow LightApp SalomePrs ToolsGUI SalomeSession
+  ${KERNEL_ArgvKeeper} ${KERNEL_OpUtil} ${KERNEL_SALOMELocalTrace} ${KERNEL_SalomeDSClient} ${KERNEL_TOOLSDS}
+  CASCatch suit std CAM ObjBrowser SalomePrs Event
+  LogWindow LightApp SalomePrs ToolsGUI
 )
 
+IF(SALOME_USE_VTKVIEWER)
+  LIST(APPEND _link_LIBRARIES VTKViewer SVTK)
+ENDIF()
+
+IF(SALOME_USE_PYCONSOLE)
+  LIST(APPEND _link_LIBRARIES PyInterp PyConsole)
+ENDIF()
+
+IF(SALOME_USE_GLVIEWER)
+  LIST(APPEND _link_LIBRARIES GLViewer)
+ENDIF()
+
+IF(SALOME_USE_PLOT2DVIEWER)
+  LIST(APPEND _link_LIBRARIES Plot2d)
+  IF(SALOME_USE_SALOMEOBJECT)
+    LIST(APPEND _link_LIBRARIES SPlot2d)
+  ENDIF(SALOME_USE_SALOMEOBJECT)
+ENDIF(SALOME_USE_PLOT2DVIEWER)
+
+IF(SALOME_USE_OCCVIEWER)
+  LIST(APPEND _link_LIBRARIES OCCViewer)
+  IF(SALOME_USE_SALOMEOBJECT)
+    LIST(APPEND _link_LIBRARIES SOCC)
+  ENDIF(SALOME_USE_SALOMEOBJECT)
+ENDIF()
+
+IF(SALOME_USE_PVVIEWER)
+  LIST(APPEND _link_LIBRARIES PVViewer)
+ENDIF()
+
+IF(SALOME_USE_SALOMEOBJECT)
+  LIST(APPEND _link_LIBRARIES SalomeObject)
+ENDIF()
+
+IF(NOT SALOME_LIGHT_ONLY)
+  LIST(APPEND _link_LIBRARIES SalomeIDLGUI)
+  LIST(APPEND _link_LIBRARIES ${KERNEL_SalomeContainer})
+  LIST(APPEND _link_LIBRARIES ${KERNEL_SalomeLifeCycleCORBA})
+ENDIF()
+
 # --- headers ---
 
 # header files / to be processed by moc
-SET(_moc_HEADERS   
+SET(_moc_HEADERS
+  SalomeApp_Application_SL.h
   SalomeApp_Application.h
   SalomeApp_CheckFileDlg.h
   SalomeApp_DataModel.h
@@ -89,11 +135,14 @@ SET(_moc_HEADERS
   SalomeApp_ListView.h
   SalomeApp_LoadStudiesDlg.h
   SalomeApp_Module.h
-  SalomeApp_NoteBook.h
   SalomeApp_Study.h
   SalomeApp_StudyPropertiesDlg.h
 )
 
+IF(SALOME_USE_PYCONSOLE)
+  LIST(APPEND _moc_HEADERS SalomeApp_NoteBook.h)
+ENDIF()
+
 # header files / no moc processing
 SET(_other_HEADERS
   SalomeApp.h
@@ -102,12 +151,15 @@ SET(_other_HEADERS
   SalomeApp_ExceptionHandler.h
   SalomeApp_Filter.h
   SalomeApp_ImportOperation.h
-  SalomeApp_PyInterp.h
   SalomeApp_Tools.h
   SalomeApp_TypeFilter.h
   SalomeApp_VisualState.h
 )
 
+IF(SALOME_USE_PYCONSOLE)
+  LIST(APPEND _other_HEADERS SalomeApp_PyInterp.h)
+ENDIF()
+
 # header files / to install
 SET(SalomeApp_HEADERS ${_moc_HEADERS} ${_other_HEADERS})
 
@@ -123,17 +175,17 @@ SET(_ts_RESOURCES
 
 # resource files / static
 SET(_other_RESOURCES
-  resources/SalomeApp.ini
   resources/SalomeApp.xml
 )
 
 # --- sources ---
 
 # sources / moc wrappings
-QT4_WRAP_CPP(_moc_SOURCES ${_moc_HEADERS})
+QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS})
 
 # sources / static
 SET(_other_SOURCES
+  SalomeApp_Application_SL.cxx
   SalomeApp_Application.cxx
   SalomeApp_CheckFileDlg.cxx
   SalomeApp_DataModel.cxx
@@ -148,8 +200,6 @@ SET(_other_SOURCES
   SalomeApp_ListView.cxx
   SalomeApp_LoadStudiesDlg.cxx
   SalomeApp_Module.cxx
-  SalomeApp_NoteBook.cxx
-  SalomeApp_PyInterp.cxx
   SalomeApp_Study.cxx
   SalomeApp_StudyPropertiesDlg.cxx
   SalomeApp_Tools.cxx
@@ -157,6 +207,10 @@ SET(_other_SOURCES
   SalomeApp_VisualState.cxx
 )
 
+IF(SALOME_USE_PYCONSOLE)
+  LIST(APPEND _other_SOURCES SalomeApp_PyInterp.cxx SalomeApp_NoteBook.cxx)
+ENDIF()
+
 # sources / to compile
 SET(SalomeApp_SOURCES ${_other_SOURCES} ${_moc_SOURCES})
 
@@ -174,14 +228,22 @@ SET(_py_SCRIPTS
 
 # --- rules ---
 
-ADD_LIBRARY(SalomeApp ${SalomeApp_SOURCES})
-TARGET_LINK_LIBRARIES(SalomeApp ${_link_LIBRARIES})
-INSTALL(TARGETS SalomeApp EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+ADD_LIBRARY(SalomeAppImpl ${SalomeApp_SOURCES})
+TARGET_LINK_LIBRARIES(SalomeAppImpl ${_link_LIBRARIES})
+
+ADD_LIBRARY(SalomeApp SalomeApp_Application_Entry.cxx)
+TARGET_LINK_LIBRARIES(SalomeApp SalomeAppImpl)
+
+ADD_LIBRARY(SalomeAppSL SalomeApp_Application_SL_Entry.cxx)
+TARGET_LINK_LIBRARIES(SalomeAppSL SalomeAppImpl)
+
+INSTALL(TARGETS SalomeAppImpl SalomeApp SalomeAppSL EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
 
 INSTALL(FILES ${SalomeApp_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
-QT4_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_GUI_INSTALL_RES_DATA}")
+QT_INSTALL_TS_RESOURCES("${_ts_RESOURCES}" "${SALOME_GUI_INSTALL_RES_DATA}")
 
 INSTALL(FILES ${_other_RESOURCES} DESTINATION ${SALOME_GUI_INSTALL_RES_DATA})
+install(FILES ${_other_RESOURCES} RENAME SalomeAppSL.xml DESTINATION ${SALOME_GUI_INSTALL_RES_DATA})
 
 SALOME_INSTALL_SCRIPTS("${_py_SCRIPTS}"  ${SALOME_INSTALL_PYTHON})
 SALOME_INSTALL_SCRIPTS("${_bin_SCRIPTS}" ${SALOME_INSTALL_SCRIPT_PYTHON})