X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSALOME_PYQT%2FSalomePyQt%2FCMakeLists.txt;h=e77ddf6ae1bc239530fee1bbd4b728f0e2d92ee5;hb=ad6276bbf89c70b93ccef9a82800f18ff5578a00;hp=5d5ab7292f1228d071b47f82cc83bda09f397436;hpb=8c5294030a4c11ca0a18be48fc0165466861adad;p=modules%2Fgui.git diff --git a/src/SALOME_PYQT/SalomePyQt/CMakeLists.txt b/src/SALOME_PYQT/SalomePyQt/CMakeLists.txt index 5d5ab7292..e77ddf6ae 100755 --- a/src/SALOME_PYQT/SalomePyQt/CMakeLists.txt +++ b/src/SALOME_PYQT/SalomePyQt/CMakeLists.txt @@ -1,9 +1,9 @@ -# Copyright (C) 2012 CEA/DEN, EDF R&D, OPEN CASCADE +# Copyright (C) 2012-2015 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 @@ -17,98 +17,115 @@ # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # +INCLUDE(UsePyQt4) +IF(SALOME_USE_VTKVIEWER) + INCLUDE(${VTK_USE_FILE}) +ENDIF() + +# --- options --- + +# additional include directories INCLUDE_DIRECTORIES( ${CAS_INCLUDE_DIRS} - ${QT_INCLUDE_DIRS} - ${QWT_INCLUDE_DIRS} - ${SIP_INCLUDE_DIRS} - ${BOOST_INCLUDE_DIRS} + ${QT_INCLUDES} + ${QWT_INCLUDE_DIR} + ${SIP_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS} - ${PTHREAD_INCLUDE_DIRS} - ${VTK_INCLUDE_DIRS} - ${KERNEL_ROOT_DIR}/include/salome - ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_BINARY_DIR}/idl - ${CMAKE_CURRENT_SOURCE_DIR}/../../SUIT - ${CMAKE_CURRENT_SOURCE_DIR}/../../CAM - ${CMAKE_CURRENT_SOURCE_DIR}/../../STD - ${CMAKE_CURRENT_SOURCE_DIR}/../../Qtx - ${CMAKE_CURRENT_SOURCE_DIR}/../../Event - ${CMAKE_CURRENT_SOURCE_DIR}/../../LogWindow - ${CMAKE_CURRENT_SOURCE_DIR}/../../VTKViewer - ${CMAKE_CURRENT_SOURCE_DIR}/../../OCCViewer - ${CMAKE_CURRENT_SOURCE_DIR}/../../Plot2d - ${CMAKE_CURRENT_SOURCE_DIR}/../SALOME_PYQT_GUILight - ${CMAKE_CURRENT_SOURCE_DIR}/../../PyInterp - ${CMAKE_CURRENT_SOURCE_DIR}/../../LightApp - ${CMAKE_CURRENT_SOURCE_DIR}/../../ObjBrowser - ${CMAKE_CURRENT_SOURCE_DIR}/../../OBJECT + ${PROJECT_SOURCE_DIR}/src/CAM + ${PROJECT_SOURCE_DIR}/src/Event + ${PROJECT_SOURCE_DIR}/src/LightApp + ${PROJECT_SOURCE_DIR}/src/LogWindow + ${PROJECT_SOURCE_DIR}/src/OBJECT + ${PROJECT_SOURCE_DIR}/src/ObjBrowser + ${PROJECT_SOURCE_DIR}/src/PyInterp + ${PROJECT_SOURCE_DIR}/src/PyConsole + ${PROJECT_SOURCE_DIR}/src/Qtx + ${PROJECT_SOURCE_DIR}/src/SALOME_PYQT/SALOME_PYQT_GUILight + ${PROJECT_SOURCE_DIR}/src/STD + ${PROJECT_SOURCE_DIR}/src/SUIT +) + +IF(SALOME_USE_OCCVIEWER) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/OCCViewer) +ENDIF(SALOME_USE_OCCVIEWER) +IF(SALOME_USE_PVVIEWER) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/PVViewer) +ENDIF(SALOME_USE_PVVIEWER) +IF(SALOME_USE_PLOT2DVIEWER) + INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src/Plot2d) +ELSE(SALOME_USE_PLOT2DVIEWER) + #disable 'ENABLE_PLOT2D' feature + SET(PYQT_SIPFLAGS ${PYQT_SIPFLAGS} "-xENABLE_PLOT2D;") +ENDIF(SALOME_USE_PLOT2DVIEWER) + +IF(SALOME_LIGHT_ONLY) + #disable 'ENABLE_CORBA' feature + SET(PYQT_SIPFLAGS ${PYQT_SIPFLAGS} "-xENABLE_CORBA;") +ELSE(SALOME_LIGHT_ONLY) + INCLUDE_DIRECTORIES( + ${PROJECT_SOURCE_DIR}/src/SalomeApp + ) +ENDIF(SALOME_LIGHT_ONLY) + +# additional preprocessor / compiler flags +ADD_DEFINITIONS( + ${QWT_DEFINITIONS} + ${QT_DEFINITIONS} + ${CAS_DEFINITIONS} + ${BOOST_DEFINITIONS} + ${PYTHON_DEFINITIONS} + ${OMNIORB_DEFINITIONS} ) -# -DHAVE_CONFIG_H -SET(COMMON_FLAGS "${QWT_DEFINITIONS} ${QT_DEFINITIONS} ${CAS_DEFINITIONS} ${BOOST_DEFINITIONS} ${VTK_DEFINITIONS} ${PYTHON_DEFINITIONS} ${PLATFORM_DEFINITIONS}") -SET(COMMON_LIBS - ${PYTHON_LIBS} - ${SIP_LIBS} - ${PYQT_LIBS} - ${VTK_LIBS} - ${QWT_LIBS} - ${OGL_LIBS} - suit - CAM - std - qtx - Event - LogWindow - VTKViewer + +# libraries to link to +SET(_link_LIBRARIES + ${PYTHON_LIBRARIES} + ${VTK_LIBRARIES} + ${OPENGL_LIBRARIES} + ${QWT_LIBRARY} SalomePyQtGUILight - OCCViewer - Plot2d ) -SET(GUI_HEADERS SalomePyQt.h) -QT4_WRAP_CPP(GUI_HEADERS_MOC ${GUI_HEADERS}) - -# extra source files (generated by sip) -SET(SIP_SRC - sipAPISalomePyQt.h - sipSalomePyQtSalomePyQt.cc - sipSalomePyQtSALOME_Selection.cc - sipSalomePyQtQtxAction.cc - sipSalomePyQtQtxActionGroup.cc - sipSalomePyQtQtxActionSet.cc - sipSalomePyQtcmodule.cc -) -# Sip definition file -SET(SIP_FILES - SalomePyQt.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(SalomePyQt_SOURCES SalomePyQt.cxx) - -ADD_LIBRARY(SalomePyQt SHARED ${SalomePyQt_SOURCES} ${GUI_HEADERS_MOC} ${SIP_SRC}) -SET_TARGET_PROPERTIES(SalomePyQt PROPERTIES COMPILE_FLAGS "${COMMON_FLAGS}") -TARGET_LINK_LIBRARIES(SalomePyQt ${COMMON_LIBS}) -INSTALL(TARGETS SalomePyQt DESTINATION ${GUI_salomelib_LIBS}) - -IF(WINDOWS) - IF(CMAKE_BUILD_TYPE STREQUAL Release) - INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${GUI_salomelib_LIBS}/SalomePyQt.dll DESTINATION ${GUI_salomelib_LIBS} RENAME SalomePyQt.pyd) - ELSE(CMAKE_BUILD_TYPE STREQUAL Release) - INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${GUI_salomelib_LIBS}/SalomePyQt.dll DESTINATION ${GUI_salomelib_LIBS} RENAME SalomePyQt_d.pyd) - ENDIF(CMAKE_BUILD_TYPE STREQUAL Release) -ELSE(WINDOWS) - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libSalomePyQt.so DESTINATION ${GUI_salomelib_LIBS} RENAME SalomePyQt.so) -ENDIF(WINDOWS) +# --- headers --- + +# header files / to be processed by moc +SET(_moc_HEADERS SalomePyQt.h) + +# --- resources --- + +# sip files / to be processed by sip +SET(_sip_files SalomePyQt.sip) +IF(SALOME_USE_PLOT2DVIEWER) + LIST(APPEND _sip_files SalomePyQt_Plot2d.sip) +ENDIF(SALOME_USE_PLOT2DVIEWER) + +# --- sources --- + +# sources / moc wrappings +QT4_WRAP_CPP(_moc_SOURCES ${_moc_HEADERS}) + +# sources / sip wrappings +PYQT4_WRAP_SIP(_sip_SOURCES ${_sip_files}) + +# sources / static +SET(_other_SOURCES SalomePyQt.cxx) + +# sources / to compile +SET(SalomePyQt_SOURCES ${_other_SOURCES} ${_moc_SOURCES} ${_sip_SOURCES}) + +# --- rules --- + +ADD_LIBRARY(SalomePyQt ${SalomePyQt_SOURCES}) +TARGET_LINK_LIBRARIES(SalomePyQt ${_link_LIBRARIES}) +INSTALL(TARGETS SalomePyQt DESTINATION ${SALOME_INSTALL_LIBS}) + +IF(WIN32) + SET_TARGET_PROPERTIES(SalomePyQt PROPERTIES SUFFIX ".pyd" DEBUG_OUTPUT_NAME SalomePyQt_d RELEASE_OUTPUT_NAME SalomePyQt) +ELSE() + SET_TARGET_PROPERTIES(SalomePyQt PROPERTIES PREFIX "") +ENDIF() + +FILE(GLOB make_clean_files ${CMAKE_CURRENT_BINARY_DIR}/sip*) +SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${make_clean_files}")