Salome HOME
Copyright update 2022
[modules/gui.git] / src / SALOME_PYQT / SALOME_PYQT_GUILight / CMakeLists.txt
old mode 100755 (executable)
new mode 100644 (file)
index 52467a6..a607320
@@ -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
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-INCLUDE(${VTK_USE_FILE})
+INCLUDE(UseQtExt)
+INCLUDE(UsePyQt)
 
+# --- options ---
+
+# additional include directories
 INCLUDE_DIRECTORIES(
-  ${CAS_INCLUDE_DIRS}
+  ${OpenCASCADE_INCLUDE_DIR}
   ${QT_INCLUDES}
-  ${SIP_INCLUDE_DIR}
-  ${Boost_INCLUDE_DIRS}
   ${PYTHON_INCLUDE_DIRS}
-  ${PTHREAD_INCLUDE_DIRS}
-  ${KERNEL_INCLUDE_DIRS}
+  ${SIP_INCLUDE_DIR}
+  ${PTHREAD_INCLUDE_DIR}
   ${CMAKE_CURRENT_BINARY_DIR}
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../PyInterp
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../PyConsole
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../SUIT
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../Qtx
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../LightApp
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../Plot2d
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../OCCViewer
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../CAM
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../STD
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../SUITApp
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../CAM
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../STD
-  ${CMAKE_CURRENT_SOURCE_DIR}/../../Event
+  ${PROJECT_SOURCE_DIR}/src/CAM
+  ${PROJECT_SOURCE_DIR}/src/Event
+  ${PROJECT_SOURCE_DIR}/src/LightApp
+  ${PROJECT_SOURCE_DIR}/src/OCCViewer
+  ${PROJECT_SOURCE_DIR}/src/Plot2d
+  ${PROJECT_SOURCE_DIR}/src/Qtx
+  ${PROJECT_SOURCE_DIR}/src/STD
+  ${PROJECT_SOURCE_DIR}/src/SUIT
+  ${PROJECT_SOURCE_DIR}/src/SUITApp
+  ${PROJECT_SOURCE_DIR}/src/ObjBrowser
+  ${PROJECT_SOURCE_DIR}/tools/PyConsole/src
+  ${PROJECT_SOURCE_DIR}/tools/PyInterp/src
 )
+IF(SALOME_USE_SALOMEOBJECT)
+  INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/OBJECT)
+ENDIF()
 
-SET(COMMON_LIBS ${PYTHON_LIBRARIES} ${PYQT_LIBRARIES} ${VTK_LIBRARIES} ${OPENGL_LIBRARIES} PyInterp LightApp) 
+# additional preprocessor / compiler flags
+ADD_DEFINITIONS(
+  ${QT_DEFINITIONS}
+  ${OpenCASCADE_DEFINITIONS}
+  ${PYTHON_DEFINITIONS}
+)
 
+# libraries to link to
+SET(_link_LIBRARIES
+  ${PYTHON_LIBRARIES}
+  ${OPENGL_LIBRARIES}
+  LightApp
+)
 IF(NOT SALOME_LIGHT_ONLY)
-  INCLUDE_DIRECTORIES(
-    ${CMAKE_CURRENT_SOURCE_DIR}/../../SalomeApp
-    ${OMNIORB_INCLUDE_DIR}
-  )
-  SET(COMMON_LIBS ${COMMON_LIBS} SalomeApp ${SalomeContainer})
-ELSE(NOT SALOME_LIGHT_ONLY)
-   SET(COMMON_FLAGS "${COMMON_FLAGS} -DGUI_DISABLE_CORBA")
-ENDIF(NOT SALOME_LIGHT_ONLY)
-
-SET(GUI_HEADERS SALOME_PYQT_PyModule.h SALOME_PYQT_ModuleLight.h SALOME_PYQT_DataModelLight.h)
-QT4_WRAP_CPP(GUI_HEADERS_MOC ${GUI_HEADERS})
-
-# extra source files (generated by sip)
-SET(SIP_SRC
-  sipAPISalomePyQtGUILight.h
-  sipSalomePyQtGUILightcmodule.cc
+  LIST(APPEND _link_LIBRARIES ${KERNEL_SalomeContainer})
+ENDIF()
+
+# --- headers ---
+
+# header files / to be processed by moc
+SET(_moc_HEADERS   
+  SALOME_PYQT_DataModelLight.h
+  SALOME_PYQT_ModuleLight.h
+  SALOME_PYQT_PyModule.h
+  SALOME_PYQT_Selector.h
 )
-# Sip definition file
-SET(SIP_FILES
-  SALOME_PYQT_GUILight.sip
+
+# header files / no moc processing
+SET(_other_HEADERS
+  SALOME_PYQT_DataObjectLight.h
+  SALOME_PYQT_BorrowedDataObjectLight.h
+  SALOME_PYQT_GUILight.h
+  SALOME_PYQT_PyInterp.h
 )
-FOREACH(input ${SIP_FILES})
-  SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
-  SET(output)
-  FOREACH(out ${SIP_SRC})
-    SET(output ${output} ${CMAKE_CURRENT_BINARY_DIR}/${out})
-  ENDFOREACH(out ${SIP_SRC})
-  ADD_CUSTOM_COMMAND(
-    OUTPUT ${output}
-    COMMAND ${SIP_EXECUTABLE} ${PYQT_SIPFLAGS} ${input}
-    MAIN_DEPENDENCY ${input}
-  )
-ENDFOREACH(input ${SIP_FILES})
-
-
-SET(SalomePyQtGUI_SOURCES
-  SALOME_PYQT_PyModule.cxx
-  SALOME_PYQT_ModuleLight.cxx
-  SALOME_PYQT_DataObjectLight.cxx
+
+# header files / to install
+SET(SalomePyQtGUILight_HEADERS ${_moc_HEADERS} ${_other_HEADERS})
+
+# --- resources ---
+
+# sip files / to be processed by sip
+SET(_sip_files SALOME_PYQT_GUILight.sip)
+
+# --- sources ---
+
+# sources / moc wrappings
+QT_WRAP_MOC(_moc_SOURCES ${_moc_HEADERS})
+
+# sources / sip wrappings
+PYQT_WRAP_SIP(_sip_SOURCES ${_sip_files})
+
+# sources / static
+SET(_other_SOURCES
   SALOME_PYQT_DataModelLight.cxx
+  SALOME_PYQT_DataObjectLight.cxx
+  SALOME_PYQT_BorrowedDataObjectLight.cxx
+  SALOME_PYQT_ModuleLight.cxx
   SALOME_PYQT_PyInterp.cxx
+  SALOME_PYQT_PyModule.cxx
+  SALOME_PYQT_Selector.cxx
 )
 
+# sources / to compile
+SET(SalomePyQtGUILight_SOURCES ${_other_SOURCES} ${_moc_SOURCES} ${_sip_SOURCES})
 
-IF(WINDOWS)
- ADD_DEFINITIONS( "-DCALL_OLD_METHODS ${QT_DEFINITIONS} ${CAS_DEFINITIONS} ${BOOST_DEFINITIONS} ${PYTHON_DEFINITIONS}")
-ELSE(WINDOWS)
- ADD_DEFINITIONS( "-DHAVE_CONFIG_H -DCALL_OLD_METHODS ${QT_DEFINITIONS} ${CAS_DEFINITIONS} ${BOOST_DEFINITIONS} ${PYTHON_DEFINITIONS}")
-ENDIF(WINDOWS)
+# --- rules ---
 
-
-ADD_LIBRARY(SalomePyQtGUILight ${SalomePyQtGUI_SOURCES} ${GUI_HEADERS_MOC} ${SIP_SRC})
-TARGET_LINK_LIBRARIES(SalomePyQtGUILight ${COMMON_LIBS})
+ADD_LIBRARY(SalomePyQtGUILight ${SalomePyQtGUILight_SOURCES})
+TARGET_LINK_LIBRARIES(SalomePyQtGUILight ${_link_LIBRARIES})
 INSTALL(TARGETS SalomePyQtGUILight DESTINATION ${SALOME_INSTALL_LIBS})
 
-SET(COMMON_HEADERS_H 
-  SALOME_PYQT_GUILight.h
-  SALOME_PYQT_ModuleLight.h
-  SALOME_PYQT_DataObjectLight.h
-  SALOME_PYQT_DataModelLight.h
-  SALOME_PYQT_PyInterp.h
-)
-INSTALL(FILES ${COMMON_HEADERS_H} DESTINATION ${SALOME_INSTALL_HEADERS})
+INSTALL(FILES ${SalomePyQtGUILight_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS})
+
+FILE(GLOB make_clean_files ${CMAKE_CURRENT_BINARY_DIR}/sip*)
+SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${make_clean_files}")