Salome HOME
export preselected_id to client
[modules/paravis.git] / VTKWrapping / wrap.cmake
1 # Copyright (C) 2010-2014  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, or (at your option) any later version.
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 LIST(GET PARAVIEW_INCLUDE_DIRS 0 PARAVIEW_INCLUDE_DIR0)
21
22 SET(WRAP_IDL_I_HH)
23 SET(WRAP_IDL_I_CC)
24
25 IF(EXISTS ${CMAKE_BINARY_DIR}/wrapfiles.txt)
26  EXECUTE_PROCESS(
27   COMMAND ${PYTHON_EXECUTABLE} -c "f = open('${CMAKE_BINARY_DIR}/wrapfiles.txt') ; print f.read(), ; f.close()"
28   OUTPUT_VARIABLE WRAP_LIST_FULL
29  )
30
31  STRING(REGEX  MATCHALL "[^\n]+" WRAP_LIST_REG ${WRAP_LIST_FULL})
32  FOREACH(_str ${WRAP_LIST_REG})
33
34   SEPARATE_ARGUMENTS(_str)
35   LIST(LENGTH _str WRAP_LEN)
36   SET(DEP_HH)
37   SET(DEP_CC)
38  
39   LIST(GET _str 0 VAL)
40
41   IF(WRAP_LEN GREATER 1)
42    MATH(EXPR WRAP_LEN1 "${WRAP_LEN} - 1" )
43
44    FOREACH(IND RANGE 1 ${WRAP_LEN1})
45     LIST(GET _str ${IND} DEP_VAL)
46     SET(DEP_HH ${DEP_HH} PARAVIS_Gen_${DEP_VAL}_i.hh)
47     SET(DEP_CC ${DEP_CC} PARAVIS_Gen_${DEP_VAL}_i.cc)
48    ENDFOREACH(IND RANGE 1 ${WRAP_LEN1})
49
50   ENDIF(WRAP_LEN GREATER 1)
51
52   LIST(APPEND WRAP_IDL_I_HH PARAVIS_Gen_${VAL}_i.hh)
53   LIST(APPEND WRAP_IDL_I_CC PARAVIS_Gen_${VAL}_i.cc)
54
55   SET(vtkWrapIDL_HH_EXEFILE ${CMAKE_BINARY_DIR}/src/VTKWrapping/vtkWrapIDL_HH)
56   IF(WIN32)
57     IF(CMAKE_BUILD_TOOL STREQUAL nmake)
58       SET(vtkWrapIDL_HH_EXEFILE ${CMAKE_BINARY_DIR}/src/VTKWrapping/vtkWrapIDL_HH.exe)
59     ELSE(CMAKE_BUILD_TOOL STREQUAL nmake)
60       SET(vtkWrapIDL_HH_EXEFILE ${CMAKE_BINARY_DIR}/src/VTKWrapping/${CMAKE_BUILD_TYPE}/vtkWrapIDL_HH.exe)
61     ENDIF(CMAKE_BUILD_TOOL STREQUAL nmake)
62   ENDIF(WIN32)
63
64   ADD_CUSTOM_COMMAND(
65    OUTPUT PARAVIS_Gen_${VAL}_i.hh
66    COMMAND ${vtkWrapIDL_HH_EXEFILE} -o PARAVIS_Gen_${VAL}_i.hh --hints ${CMAKE_BINARY_DIR}/idl/hints ${PARAVIEW_INCLUDE_DIR0}/${VAL}.h
67    DEPENDS vtkWrapIDL_HH ${PARAVIEW_INCLUDE_DIR0}/${VAL}.h ${CMAKE_BINARY_DIR}/idl/hints ${DEP_HH}
68   ) 
69
70   SET(vtkWrapIDL_CC_EXEFILE ${CMAKE_BINARY_DIR}/src/VTKWrapping/vtkWrapIDL_CC)
71   IF(WIN32)
72     IF(CMAKE_BUILD_TOOL STREQUAL nmake)
73       SET(vtkWrapIDL_CC_EXEFILE ${CMAKE_BINARY_DIR}/src/VTKWrapping/vtkWrapIDL_CC.exe)
74     ELSE(CMAKE_BUILD_TOOL STREQUAL nmake)
75       SET(vtkWrapIDL_CC_EXEFILE ${CMAKE_BINARY_DIR}/src/VTKWrapping/${CMAKE_BUILD_TYPE}/vtkWrapIDL_CC.exe)
76     ENDIF(CMAKE_BUILD_TOOL STREQUAL nmake)
77   ENDIF(WIN32)
78
79   ADD_CUSTOM_COMMAND(
80    OUTPUT PARAVIS_Gen_${VAL}_i.cc
81    COMMAND ${vtkWrapIDL_CC_EXEFILE} -o PARAVIS_Gen_${VAL}_i.cc --hints ${CMAKE_BINARY_DIR}/idl/hints ${PARAVIEW_INCLUDE_DIR0}/${VAL}.h
82    DEPENDS PARAVIS_Gen_${VAL}_i.hh vtkWrapIDL_CC ${PARAVIEW_INCLUDE_DIR0}/${VAL}.h ${CMAKE_BINARY_DIR}/idl/hints ${DEP_CC}
83   )
84
85  ENDFOREACH(_str ${WRAP_LIST_REG})
86 ENDIF(EXISTS ${CMAKE_BINARY_DIR}/wrapfiles.txt)
87
88 ADD_CUSTOM_TARGET(generate_implements ALL DEPENDS ${CMAKE_BINARY_DIR}/wrapfiles.txt ${WRAP_IDL_I_HH} ${WRAP_IDL_I_CC})