Salome HOME
Porting to Paraview 3.98.1
[modules/paravis.git] / idl / CMakeLists.txt
1 # Copyright (C) 2010-2012  CEA/DEN, EDF R&D
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 SET(VERSION_INFO ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MAINTENANCE})
21 SET(SOVERSION_INFO ${VERSION_MAJOR}.${VERSION_MINOR})
22
23 ADD_DEFINITIONS(-DHAVE_SALOME_CONFIG)
24 INCLUDE_DIRECTORIES(${OMNIORB_INCLUDE_DIRS} ${KERNEL_ROOT_DIR}/include/salome ${CMAKE_BINARY_DIR}/idl)
25
26 INCLUDE(wrap.cmake)
27
28
29 SET(BASEIDL_FILES
30   PARAVIS_Gen_Types.idl
31   PARAVIS_Gen.idl
32   )
33
34 SET(BASEIDL_SK_FILES
35   PARAVIS_Gen_TypesSK.cc
36   PARAVIS_GenSK.cc
37   )
38
39 # potential problem on parallel make on the following - multiple outputs
40 SET(SUFFIXES
41   .idl
42   .hh
43   SK.cc
44   )
45
46 SET(srcs)
47 FOREACH(f ${BASEIDL_SK_FILES} ${WRAP_SK_FILES})
48   SET(srcs ${srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f})
49 ENDFOREACH(f ${BASEIDL_SK_FILES} ${WRAP_SK_FILES})
50
51 IF(WINDOWS)
52 ADD_LIBRARY(SalomeIDLPARAVIS STATIC ${srcs})
53 ELSE(WINDOWS)
54 ADD_LIBRARY(SalomeIDLPARAVIS SHARED ${srcs})
55 ENDIF(WINDOWS)
56
57 SET(flags)
58 FOREACH(f ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${OMNIORB_DEFINITIONS} ${KERNEL_CXXFLAGS})
59   SET(flags "${flags} ${f}")
60 ENDFOREACH(f ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${OMNIORB_DEFINITIONS} ${KERNEL_CXXFLAGS})
61
62 SET_TARGET_PROPERTIES(SalomeIDLPARAVIS PROPERTIES COMPILE_FLAGS "${flags}")
63 SET_TARGET_PROPERTIES(SalomeIDLPARAVIS PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
64
65 TARGET_LINK_LIBRARIES(SalomeIDLPARAVIS ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} ${OMNIORB_LIBRARIES})
66 INSTALL(TARGETS SalomeIDLPARAVIS DESTINATION lib/salome)
67   
68 ADD_EXECUTABLE(vtkWrapIDL 
69   ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParse.tab.c 
70   ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParsePreprocess.c
71   ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseHierarchy.c
72   ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseExtras.c
73   ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseMain.c
74   ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseData.c
75   ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseString.c
76   ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrap.c
77 #  ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrapText.c
78   ${CMAKE_CURRENT_SOURCE_DIR}/vtkWrapIDL.c)
79
80 set_property(SOURCE ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseMain.c PROPERTY COMPILE_DEFINITIONS
81   VTK_PARSE_VERSION="${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}")
82
83 ADD_DEPENDENCIES(vtkWrapIDL generate_txt)
84   
85 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/ParaView)
86 SET(flags)
87 FOREACH(f ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${PARAVIEW_INCLUDES} ${VTK_INCLUDES})
88   SET(flags "${flags} ${f}")
89 ENDFOREACH(f ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${PARAVIEW_INCLUDES} ${VTK_INCLUDES})
90
91 #VTN TODO: vtkParseData supports two types of structures for wrapping.
92 #We use old structures currently, but is is not influent for results of wrapping.
93 #It may be necessary to port vtkWrapIDL to new approach in future.
94 #IF(VTK_LEGACY_REMOVE)
95 #  ADD_DEFINITIONS(-DVTK_PARSE_LEGACY_REMOVE)
96 #ENDIF()
97 SET_TARGET_PROPERTIES(vtkWrapIDL PROPERTIES COMPILE_FLAGS "${flags}")
98
99 TARGET_LINK_LIBRARIES(vtkWrapIDL ${PLATFORM_LDFLAGS} ${PLATFORM_LIBADD})
100 SET(vtkWrapIDL_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/vtkWrapIDL)
101 IF(WINDOWS)
102   IF(CMAKE_BUILD_TOOL STREQUAL nmake)
103     SET(vtkWrapIDL_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/vtkWrapIDL.exe)
104   ELSE(CMAKE_BUILD_TOOL STREQUAL nmake)
105     SET(vtkWrapIDL_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/vtkWrapIDL.exe)
106   ENDIF(CMAKE_BUILD_TOOL STREQUAL nmake)
107 ENDIF(WINDOWS)
108 INSTALL(FILES ${vtkWrapIDL_EXEFILE} DESTINATION bin/salome PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
109
110 FOREACH(input ${BASEIDL_FILES} ${WRAP_IDL})
111   STRING(REGEX REPLACE ".idl" "" base ${input})
112   SET(src ${CMAKE_CURRENT_BINARY_DIR}/${base}SK.cc)
113   SET(outputs ${src})
114   SET(dynsrc ${CMAKE_CURRENT_BINARY_DIR}/${base}DynSK.cc)
115   SET(outputs ${outputs} ${dynsrc})
116   SET(inc ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
117   SET(outputs ${outputs} ${inc})
118   LIST(FIND BASEIDL_FILES ${input} BASE_INDEX)
119   IF(${BASE_INDEX} EQUAL -1)
120     SET(input ${CMAKE_CURRENT_BINARY_DIR}/${input})
121   ELSE(${BASE_INDEX} EQUAL -1)
122     SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
123   ENDIF(${BASE_INDEX} EQUAL -1)
124   ADD_CUSTOM_COMMAND(
125     OUTPUT ${outputs}
126     COMMAND ${OMNIORB_IDL_PYTHON} -bcxx ${IDLCXXFLAGS} -I${CMAKE_CURRENT_SOURCE_DIR} -I${KERNEL_ROOT_DIR}/idl/salome ${OMNIORB_IDLCXXFLAGS} ${input}
127     MAIN_DEPENDENCY ${input}
128     )
129   INSTALL(FILES ${input} DESTINATION idl/salome)
130
131   SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
132   INSTALL(FILES ${IDL_HEADER} DESTINATION include/salome)
133   INSTALL(CODE "SET(IDL_FILE ${input})")
134   INSTALL(CODE "SET(DIR lib/python${PYTHON_VERSION}/site-packages/salome)")
135   INSTALL(CODE "SET(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})")
136   INSTALL(CODE "SET(OMNIORB_IDL_PYTHON ${OMNIORB_IDL_PYTHON})")
137   INSTALL(CODE "SET(IDLPYFLAGS -bpythonIDL -p${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR} -I${KERNEL_ROOT_DIR}/idl/salome)")
138   INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/deprecated/install_python_from_idl.cmake)
139
140 ENDFOREACH(input ${IDL_FILES})