-# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2023 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_ROOT_DIR}/include/salome
+ ${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)
-
-IF(SALOME_USE_CORBA)
- INCLUDE_DIRECTORIES(
- ${CMAKE_CURRENT_SOURCE_DIR}/../../SalomeApp
- ${OMNIORB_INCLUDE_DIR}
- )
- SET(COMMON_LIBS ${COMMON_LIBS} SalomeApp ${SalomeContainer})
-ELSE(SALOME_USE_CORBA)
- SET(COMMON_FLAGS "${COMMON_FLAGS} -DGUI_DISABLE_CORBA")
-ENDIF(SALOME_USE_CORBA)
-
-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
-)
-# Sip definition file
-SET(SIP_FILES
- SALOME_PYQT_GUILight.sip
-)
-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
- SALOME_PYQT_DataModelLight.cxx
- SALOME_PYQT_PyInterp.cxx
+# additional preprocessor / compiler flags
+ADD_DEFINITIONS(
+ ${QT_DEFINITIONS}
+ ${OpenCASCADE_DEFINITIONS}
+ ${PYTHON_DEFINITIONS}
)
-ADD_DEFINITIONS( "-DHAVE_CONFIG_H -DCALL_OLD_METHODS ${QT_DEFINITIONS} ${CAS_DEFINITIONS} ${BOOST_DEFINITIONS} ${PYTHON_DEFINITIONS}")
+# libraries to link to
+SET(_link_LIBRARIES
+ ${PYTHON_LIBRARIES}
+ ${OPENGL_LIBRARIES}
+ LightApp
+)
+IF(NOT SALOME_LIGHT_ONLY)
+ LIST(APPEND _link_LIBRARIES ${KERNEL_SalomeContainer})
+ENDIF()
-ADD_LIBRARY(SalomePyQtGUILight ${SalomePyQtGUI_SOURCES} ${GUI_HEADERS_MOC} ${SIP_SRC})
-TARGET_LINK_LIBRARIES(SalomePyQtGUILight ${COMMON_LIBS})
-INSTALL(TARGETS SalomePyQtGUILight DESTINATION ${GUI_salomelib_LIBS})
+# --- headers ---
-SET(COMMON_HEADERS_H
- SALOME_PYQT_GUILight.h
+# 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
+)
+
+# header files / no moc processing
+SET(_other_HEADERS
SALOME_PYQT_DataObjectLight.h
- SALOME_PYQT_DataModelLight.h
+ SALOME_PYQT_BorrowedDataObjectLight.h
+ SALOME_PYQT_GUILight.h
SALOME_PYQT_PyInterp.h
)
-INSTALL(FILES ${COMMON_HEADERS_H} DESTINATION ${GUI_salomeinclude_HEADERS})
+
+# 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})
+
+# --- rules ---
+
+ADD_LIBRARY(SalomePyQtGUILight ${SalomePyQtGUILight_SOURCES})
+TARGET_LINK_LIBRARIES(SalomePyQtGUILight ${_link_LIBRARIES})
+INSTALL(TARGETS SalomePyQtGUILight DESTINATION ${SALOME_INSTALL_LIBS})
+
+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}")