Salome HOME
Merge from V6_main 15/03/2013
[modules/gui.git] / src / SALOME_PYQT / SalomePyQt / CMakeLists.txt
1 # Copyright (C) 2012  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 INCLUDE(${VTK_USE_FILE})
21
22 INCLUDE_DIRECTORIES(
23   ${CAS_INCLUDE_DIRS}
24   ${QT_INCLUDES}
25   ${QWT_INCLUDE_DIR}
26   ${SIP_INCLUDE_DIR}
27   ${Boost_INCLUDE_DIRS}
28   ${PYTHON_INCLUDE_DIRS}
29   ${PTHREAD_INCLUDE_DIRS}
30   ${KERNEL_ROOT_DIR}/include/salome
31   ${CMAKE_CURRENT_BINARY_DIR}
32   ${CMAKE_CURRENT_SOURCE_DIR}
33   ${CMAKE_BINARY_DIR}/idl
34   ${CMAKE_CURRENT_SOURCE_DIR}/../../SUIT
35   ${CMAKE_CURRENT_SOURCE_DIR}/../../CAM
36   ${CMAKE_CURRENT_SOURCE_DIR}/../../STD
37   ${CMAKE_CURRENT_SOURCE_DIR}/../../Qtx
38   ${CMAKE_CURRENT_SOURCE_DIR}/../../Event
39   ${CMAKE_CURRENT_SOURCE_DIR}/../../LogWindow
40   ${CMAKE_CURRENT_SOURCE_DIR}/../../VTKViewer
41   ${CMAKE_CURRENT_SOURCE_DIR}/../../OCCViewer
42   ${CMAKE_CURRENT_SOURCE_DIR}/../../Plot2d
43   ${CMAKE_CURRENT_SOURCE_DIR}/../SALOME_PYQT_GUILight
44   ${CMAKE_CURRENT_SOURCE_DIR}/../../PyInterp
45   ${CMAKE_CURRENT_SOURCE_DIR}/../../LightApp
46   ${CMAKE_CURRENT_SOURCE_DIR}/../../ObjBrowser
47   ${CMAKE_CURRENT_SOURCE_DIR}/../../OBJECT
48 )
49 SET(COMMON_LIBS 
50   ${PYTHON_LIBRARIES}
51   ${SIP_LIBS}
52   ${PYQT_LIBRARIES}
53   ${VTK_LIBRARIES}
54   ${QWT_LIBRARY}
55   ${OPENGL_LIBRARIES}
56   suit
57   CAM
58   std
59   qtx
60   Event
61   LogWindow
62   VTKViewer
63   SalomePyQtGUILight
64   OCCViewer
65   Plot2d
66
67
68 SET(GUI_HEADERS SalomePyQt.h)
69 QT4_WRAP_CPP(GUI_HEADERS_MOC ${GUI_HEADERS})
70
71 # extra source files (generated by sip)
72 SET(SIP_SRC
73   sipAPISalomePyQt.h
74   sipSalomePyQtSalomePyQt.cc
75   sipSalomePyQtSALOME_Selection.cc
76   sipSalomePyQtQtxAction.cc
77   sipSalomePyQtQtxActionGroup.cc
78   sipSalomePyQtQtxActionSet.cc
79   sipSalomePyQtcmodule.cc
80 )
81 # Sip definition file
82 SET(SIP_FILES
83   SalomePyQt.sip
84 )
85 FOREACH(input ${SIP_FILES})
86   SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
87   SET(output)
88   FOREACH(out ${SIP_SRC})
89     SET(output ${output} ${CMAKE_CURRENT_BINARY_DIR}/${out})
90   ENDFOREACH(out ${SIP_SRC})
91   ADD_CUSTOM_COMMAND(
92     OUTPUT ${output}
93     COMMAND ${SIP_EXECUTABLE} ${PYQT_SIPFLAGS} ${input}
94     MAIN_DEPENDENCY ${input}
95   )
96 ENDFOREACH(input ${SIP_FILES})
97
98 SET(SalomePyQt_SOURCES SalomePyQt.cxx)
99
100 # -DHAVE_CONFIG_H 
101 ADD_DEFINITIONS("${QWT_DEFINITIONS} ${QT_DEFINITIONS} ${CAS_DEFINITIONS} ${BOOST_DEFINITIONS} ${PYTHON_DEFINITIONS}")
102
103 ADD_LIBRARY(SalomePyQt ${SalomePyQt_SOURCES} ${GUI_HEADERS_MOC} ${SIP_SRC})
104 TARGET_LINK_LIBRARIES(SalomePyQt ${COMMON_LIBS})
105 INSTALL(TARGETS SalomePyQt DESTINATION ${GUI_salomelib_LIBS})
106
107 IF(WINDOWS)
108   IF(CMAKE_BUILD_TYPE STREQUAL Release)
109     INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${GUI_salomelib_LIBS}/SalomePyQt.dll DESTINATION ${GUI_salomelib_LIBS} RENAME SalomePyQt.pyd)
110   ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
111     INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${GUI_salomelib_LIBS}/SalomePyQt.dll DESTINATION ${GUI_salomelib_LIBS} RENAME SalomePyQt_d.pyd)
112   ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
113 ELSE(WINDOWS)
114   INSTALL(CODE "EXECUTE_PROCESS(COMMAND ln -sf libSalomePyQt.so SalomePyQt.so
115                 WORKING_DIRECTORY ${CMAKE_INSTALL_PREFIX}/${GUI_salomelib_LIBS}
116                 OUTPUT_VARIABLE ln_res)" )
117 ENDIF(WINDOWS)