Salome HOME
c0535dd4552d7ec426a585a13b53d336c92563c7
[modules/paravis.git] / idl / CMakeLists.txt
1
2         SET(VERSION_INFO 0.0.0)
3         SET(SOVERSION_INFO 0)
4         SET(SUBDIRS)
5         SET(AM_CPPFLAGS)
6         SET(AM_CXXFLAGS)
7         SET(LDADD)
8         
9
10                 SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h)
11                 SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h)
12                 
13 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
14 #
15 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
16 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
17 #
18 #  This library is free software; you can redistribute it and/or
19 #  modify it under the terms of the GNU Lesser General Public
20 #  License as published by the Free Software Foundation; either
21 #  version 2.1 of the License.
22 #
23 #  This library is distributed in the hope that it will be useful,
24 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
25 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
26 #  Lesser General Public License for more details.
27 #
28 #  You should have received a copy of the GNU Lesser General Public
29 #  License along with this library; if not, write to the Free Software
30 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
31 #
32 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
33 #
34 # This Makefile is responsible of generating the client and server
35 # implementation of IDL interfaces for both C++ and python usage.
36 # The building process of the C++ files is in charge of each source
37 # package and then is not manage here.
38 #
39 # include $(top_srcdir)/adm_local/unix/make_common_starter.am
40
41 #Executable
42 SET(bin_PROGRAMS
43     vtkWrapIDL
44 )
45
46 # vtkWrapIDL.h:
47 #       @$(srcdir)/create_header.sh $(top_srcdir)
48
49 # $(srcdir)/vtkWrapIDL.c: vtkWrapIDL.h;
50
51 SET(dist_vtkWrapIDL_SOURCES
52     ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParse.tab.c
53     ${CMAKE_CURRENT_SOURCE_DIR}/vtkWrapIDL.c
54 )
55
56 SET(vtkWrapIDL_CPPFLAGS
57     -I${CMAKE_SOURCE_DIR}/src/ParaView
58     -I${CMAKE_BINARY_DIR}/idl
59     ${PARAVIEW_INCLUDES}
60     ${VTK_INCLUDES}
61 )
62
63 # hints: $(PVHOME)/lib/paraview-$(PVVERSION)/hints $(srcdir)/hints_paravis
64 #       @$(srcdir)/create_hints.sh $(PVHOME)/lib/paraview-$(PVVERSION)
65
66 # $(srcdir)/wrap.am: $(top_srcdir)/wrapfiles.txt
67 #       @cd $(srcdir) && $(srcdir)/create_wrap.sh
68
69 # include $(srcdir)/wrap.am
70 INCLUDE(wrap.cmake)
71
72 SET(BASEIDL_FILES
73     PARAVIS_Gen_Types.idl
74     PARAVIS_Gen.idl
75 )
76 SET(BASEIDL_SK_FILES
77     PARAVIS_Gen_TypesSK.cc
78     PARAVIS_GenSK.cc
79 )
80
81 SET(IDL_FILES
82     ${BASEIDL_FILES}
83     ${WRAP_IDL}
84 )
85
86 # This variable defines the files to be installed
87 SET(dist_salomeidl_DATA
88     ${IDL_FILES}
89 )
90
91 # PARAVIS idl common library
92 SET(lib_LTLIBRARIES
93     libSalomeIDLPARAVIS.la
94 )
95
96 # Sources built from idl files
97 SET(nodist_libSalomeIDLPARAVIS_la_SOURCES
98     ${BASEIDL_SK_FILES}
99     ${WRAP_SK_FILES}
100 )
101
102 # header files must be exported: other modules have to use this library
103 SET(nodist_salomeinclude_HEADERS
104 #    ${BASEIDL_FILES:%.idl=%.hh}
105 #    ${WRAP_IDL:%.idl=%.hh}
106 )
107
108 SET(libSalomeIDLPARAVIS_la_CPPFLAGS
109     -I${CMAKE_BINARY_DIR}/salome_adm/unix
110     -I${CMAKE_BINARY_DIR}/idl
111     ${CORBA_CXXFLAGS}
112     ${CORBA_INCLUDES}
113     ${KERNEL_CXXFLAGS}
114 )
115 SET(VERSION_INFO 0.0.0)
116 SET(SOVERSION_INFO 0)
117 SET(libSalomeIDLPARAVIS_la_LDFLAGS
118     -no-undefined
119 )
120 SET(libSalomeIDLPARAVIS_la_LIBADD
121     ${CORBA_LIBS}
122 )
123
124 # These variables defines the building process of CORBA files
125 SET(OMNIORB_IDL
126     ${OMNIORB_IDL}
127 )
128 SET(OMNIORB_IDLCXXFLAGS
129     ${OMNIORB_IDLCXXFLAGS}
130 )
131 SET(OMNIORB_IDLPYFLAGS
132     ${OMNIORB_IDLPYFLAGS}
133     -I${KERNEL_ROOT_DIR}/idl/salome
134 )
135 SET(IDLCXXFLAGS
136     -bcxx
137     ${IDLCXXFLAGS}
138     -I${CMAKE_CURRENT_SOURCE_DIR}
139     -I${KERNEL_ROOT_DIR}/idl/salome
140     -I${CMAKE_BINARY_DIR}/salome_adm/unix
141 )
142 SET(IDLPYFLAGS
143     -bpythonIDL
144     -nf
145     -p${CMAKE_CURRENT_SOURCE_DIR}
146     -I${CMAKE_CURRENT_SOURCE_DIR}
147     -I${KERNEL_ROOT_DIR}/idl/salome
148 )
149
150 # potential problem on parallel make on the following - multiple outputs
151 SET(SUFFIXES
152     .idl
153     .hh
154     SK.cc
155 )
156 # .idlSK.cc:
157 #       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
158 # .idl.hh:
159 #       $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
160
161 # install-exec-local: $(BASEIDL_FILES:%=$(top_srcdir)/idl/%) $(WRAP_IDL)
162 #       $(INSTALL) -d  $(DESTDIR)$(salomepythondir)
163 #       ls $^ | while read file; do       $(OMNIORB_IDL) $(IDLPYFLAGS) -C$(DESTDIR)$(salomepythondir) $$file ;          done
164
165 # uninstall-local removes too much, but it works in distcheck
166 # uninstall-local:
167 #       rm -rf $(DESTDIR)$(salomepythondir)/*
168
169 # mostlyclean-local: clean-idls
170
171 # clean-idls:
172 #       @find . \( -name "*.hh" -or -name "*.cc" -or -name ".depidl" -or -name "*.idl" \) -exec rm -f {} \;
173 #       -rm -f hints vtkWrapIDL.h
174
175 # we use cpp to generate dependencies between idl files.
176 # option x c tells the preprocessor to consider idl as a c file.
177 # if an idl is modified, all idl dependencies are rebuilt
178
179 # .depidl: $(BASEIDL_FILES)
180 #       @echo "" > $@
181 #       @for dep in $^ dummy; do          if [ $$dep != "dummy" ]; then             echo Building dependencies for $$dep;           $(CPP) $(C_DEPEND_FLAG) $(C_WRAP_IDL_FLAG) -x c -I$(srcdir) -I$(KERNEL_ROOT_DIR)/idl/salome $$dep 2>/dev/null |         sed 's/\.o/\SK.cc/' >>$@;     fi;   done ;
182
183 # -include .depidl
184
185
186             FOREACH(dir ${SUBDIRS})
187             IF(NOT dir STREQUAL .)
188             ADD_SUBDIRECTORY(${dir})
189             ENDIF(NOT dir STREQUAL .)
190             ENDFOREACH(dir ${SUBDIRS})
191             
192
193         FOREACH(amname ${lib_LTLIBRARIES})
194         
195
196         STRING(REPLACE .la _la amname ${amname})
197         
198
199         STRING(LENGTH ${amname} len)
200         MATH(EXPR newlen "${len}-3")
201         STRING(SUBSTRING ${amname} 0 ${newlen} name)
202         
203
204         STRING(REGEX MATCH "^lib" BEGIN_WITH_lib ${name})
205         IF(BEGIN_WITH_lib)
206         STRING(LENGTH ${name} len)
207         MATH(EXPR newlen "${len}-3")
208         STRING(SUBSTRING ${name} 3 ${newlen} name)
209         ENDIF(BEGIN_WITH_lib)
210         
211
212         STRING(REGEX MATCH "IDL" ISIDL ${name})
213         
214
215         IF(ISIDL)
216         IF(WINDOWS)
217         SET(type STATIC)
218         ELSE(WINDOWS)
219         SET(type SHARED)
220         ENDIF(WINDOWS)
221         ELSE(ISIDL)
222         SET(type SHARED)
223         ENDIF(ISIDL)
224         
225
226         SET(srcs)
227         FOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
228         GET_FILENAME_COMPONENT(ext ${src} EXT)
229         IF(ext STREQUAL .f)
230         IF(src STREQUAL trte.f)
231         SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src})
232         STRING(REPLACE ".f" ".c" src ${src})
233         SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src})
234         SET(output ${src})
235         ADD_CUSTOM_COMMAND(
236         OUTPUT ${output}
237         COMMAND f2c ${input}
238         MAIN_DEPENDENCY ${input}
239         )
240         ELSE(src STREQUAL trte.f)
241         SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${src})
242         STRING(REPLACE ".f" ".o" src ${src})
243         SET(src ${CMAKE_CURRENT_BINARY_DIR}/${src})
244         SET(output ${src})
245         IF(WINDOWS)
246         SET(F77 g77)
247         ELSE(WINDOWS)
248         SET(F77 gfortran)
249         ENDIF(WINDOWS)
250         ADD_CUSTOM_COMMAND(
251         OUTPUT ${output}
252         COMMAND ${F77} -c -o ${output} ${input}
253         MAIN_DEPENDENCY ${input}
254         )
255         ENDIF(src STREQUAL trte.f)
256         ENDIF(ext STREQUAL .f)
257         SET(srcs ${srcs} ${src})
258         ENDFOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
259         
260
261         SET(l ${nodist_${amname}_SOURCES} ${UIC_FILES})
262         FOREACH(f ${l})
263         SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
264         SET(srcs ${srcs} ${src})
265         ENDFOREACH(f ${l})
266         
267
268         SET(build_srcs)
269         SET(l ${nodist_${amname}_SOURCES} ${BUILT_SOURCES})
270         FOREACH(f ${l})
271         GET_FILENAME_COMPONENT(ext ${f} EXT)
272         IF(ext STREQUAL .py)
273         ELSE(ext STREQUAL .py)
274         SET(build_srcs ${build_srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f})
275         ENDIF(ext STREQUAL .py)
276         ENDFOREACH(f ${l})
277         
278
279         ADD_LIBRARY(${name} ${type} ${srcs})
280         
281
282         SET(var)
283         IF(WINDOWS)
284         SET(targets)
285         SET(targets ${targets} SalomeIDLKernel)
286         SET(targets ${targets} SalomeDS)
287         SET(targets ${targets} SALOMEDSTest)
288         SET(targets ${targets} SALOMEDS_Client_exe)
289         SET(targets ${targets} SalomeIDLGEOM)
290         SET(targets ${targets} GEOMEngine)
291         SET(targets ${targets} MEDEngine)
292         SET(targets ${targets} SMESHEngine)
293         SET(targets ${targets} SMESH)
294         FOREACH(target ${targets})
295         IF(name STREQUAL ${target})
296         SET(var ${var} -DNOGDI)
297         ENDIF(name STREQUAL ${target})
298         ENDFOREACH(target ${targets})
299         ENDIF(WINDOWS)
300         
301
302         IF(WINDOWS)
303         SET(targets)
304         SET(targets ${targets} MEFISTO2D)
305         FOREACH(target ${targets})
306         IF(name STREQUAL ${target})
307         SET(dir $ENV{F2CHOME})
308         STRING(REPLACE "\\\\" "/" dir ${dir})
309         SET(var ${var} -I${dir})
310         SET(var ${var} -DF2C_BUILD)
311         ENDIF(name STREQUAL ${target})
312         ENDFOREACH(target ${targets})
313         ENDIF(WINDOWS)
314         
315
316         SET(var ${var} ${AM_CPPFLAGS})
317         SET(var ${var} ${AM_CXXFLAGS})
318         
319
320         SET(var ${var} ${PLATFORM_CPPFLAGS})
321         SET(var ${var} ${PTHREAD_CFLAGS})
322         SET(var ${var} ${${amname}_CPPFLAGS})
323         SET(var ${var} ${${amname}_CXXFLAGS})
324         SET(var ${var} ${${amname}_CFLAGS})
325         SET(vars)
326         IF(WINDOWS)
327         SET(vars ${vars} -include SALOMEconfig.h)
328         SET(vars ${vars} -ftemplate-depth-32)
329         SET(vars ${vars} -fPIC)
330         SET(vars ${vars} -g)
331         ENDIF(WINDOWS)
332         SET(flags)
333         FOREACH(f ${var})
334         FOREACH(v ${vars})
335         IF(f STREQUAL v)
336         SET(f)
337         ENDIF(f STREQUAL v)
338         ENDFOREACH(v ${vars})
339         SET(flags "${flags} ${f}")
340         ENDFOREACH(f ${var})
341         SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
342         
343
344         SET_TARGET_PROPERTIES(${name} PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
345         
346
347         SET(libadd)
348         
349
350         IF(WINDOWS)
351         SET(targets)
352         SET(targets ${targets} MEFISTO2D)
353         FOREACH(target ${targets})
354         IF(name STREQUAL ${target})
355         SET(dir $ENV{F2CHOME})
356         STRING(REPLACE "\\\\" "/" dir ${dir})
357         SET(libadd ${libadd} ${dir}/LIBF77.lib)
358         SET(libadd ${libadd} ${dir}/LIBI77.lib)
359         ENDIF(name STREQUAL ${target})
360         ENDFOREACH(target ${targets})
361         ENDIF(WINDOWS)
362         
363
364         SET(libs ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} ${${amname}_LIBADD} ${${amname}_LDADD} ${${amname}_LDFLAGS})
365         FOREACH(lib SALOMEBasics SalomeBatch)
366         IF(name STREQUAL lib)
367         SET(libs ${libs} ${PTHREAD_LIBS})
368         ENDIF(name STREQUAL lib)
369         ENDFOREACH(lib SALOMEBasics SalomeBatch)
370         
371
372         FOREACH(lib ${libs})
373         GET_FILENAME_COMPONENT(ext ${lib} EXT)
374         IF(ext STREQUAL .la)
375         GET_FILENAME_COMPONENT(lib ${lib} NAME_WE)
376         STRING(REGEX REPLACE "^lib" "" lib ${lib})
377         ENDIF(ext STREQUAL .la)
378         SET(vars)
379         SET(vars ${vars} -no-undefined)
380         SET(vars ${vars} -lvtkWidgets)
381         IF(WINDOWS)
382         SET(vars ${vars} -module)
383         SET(vars ${vars} -Wl,-E)
384         SET(vars ${vars} -Xlinker)
385         SET(vars ${vars} -export-dynamic)
386         SET(vars ${vars} -lm)
387         SET(vars ${vars} -lboost_thread)
388         SET(vars ${vars} -lboost_signals)
389         SET(vars ${vars} -pthread -lpthread -ldl)
390         ENDIF(WINDOWS)
391         FOREACH(v ${vars})
392         IF(lib STREQUAL v)
393         SET(lib)
394         ENDIF(lib STREQUAL v)
395         ENDFOREACH(v ${vars})
396         SET(libadd ${libadd} ${lib})
397         ENDFOREACH(lib ${libs})
398         TARGET_LINK_LIBRARIES(${name} ${libadd})
399         
400
401         IF(WINDOWS)
402         SET(targets)
403         SET(targets ${targets} MEFISTO2D)
404         FOREACH(target ${targets})
405         IF(name STREQUAL ${target})
406         IF(CMAKE_BUILD_TYPE STREQUAL Debug)
407         SET_TARGET_PROPERTIES(${name} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
408         ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
409         ENDIF(name STREQUAL ${target})
410         ENDFOREACH(target ${targets})
411         ENDIF(WINDOWS)
412         
413
414                 SET(DEST lib/salome)
415                 
416
417             IF(BEGIN_WITH_lib)
418             INSTALL(TARGETS ${name} DESTINATION ${DEST})
419             
420
421             ELSE(BEGIN_WITH_lib)
422             
423
424             IF(WINDOWS)
425             INSTALL(TARGETS ${name} DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome)
426             IF(CMAKE_BUILD_TYPE STREQUAL Release)
427             INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION}/site-packages/salome/${name}.dll DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}.pyd)
428             ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
429             INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/lib/python${PYTHON_VERSION}/site-packages/salome/${name}.dll DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}_d.pyd)
430             ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
431             ELSE(WINDOWS)
432             GET_TARGET_PROPERTY(version ${name} VERSION)
433             GET_TARGET_PROPERTY(soversion ${name} SOVERSION)
434             INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}.so.${version})
435             INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}.so.${soversion})
436             INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib${name}.so.${version} DESTINATION lib/python${PYTHON_VERSION}/site-packages/salome RENAME ${name}.so)
437             ENDIF(WINDOWS)
438             
439
440             ENDIF(BEGIN_WITH_lib)
441             
442
443         ENDFOREACH(amname ${lib_LTLIBRARIES})
444         
445
446         FOREACH(amname ${bin_PROGRAMS} ${check_PROGRAMS})
447         
448
449         SET(name "${amname}_exe")
450         SET(srcs ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
451         SET(l ${nodist_${amname}_SOURCES})
452         FOREACH(f ${l})
453         SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
454         SET(srcs ${srcs} ${src})
455         ENDFOREACH(f ${l})
456         LIST(LENGTH srcs nb)
457         IF(nb)
458         ADD_EXECUTABLE(${name} ${srcs})
459         
460
461         SET(var)
462         IF(WINDOWS)
463         SET(targets)
464         SET(targets ${targets} SalomeIDLKernel)
465         SET(targets ${targets} SalomeDS)
466         SET(targets ${targets} SALOMEDSTest)
467         SET(targets ${targets} SALOMEDS_Client_exe)
468         SET(targets ${targets} SalomeIDLGEOM)
469         SET(targets ${targets} GEOMEngine)
470         SET(targets ${targets} MEDEngine)
471         SET(targets ${targets} SMESHEngine)
472         SET(targets ${targets} SMESH)
473         FOREACH(target ${targets})
474         IF(name STREQUAL ${target})
475         SET(var ${var} -DNOGDI)
476         ENDIF(name STREQUAL ${target})
477         ENDFOREACH(target ${targets})
478         ENDIF(WINDOWS)
479         
480
481         IF(WINDOWS)
482         SET(targets)
483         SET(targets ${targets} MEFISTO2D)
484         FOREACH(target ${targets})
485         IF(name STREQUAL ${target})
486         SET(dir $ENV{F2CHOME})
487         STRING(REPLACE "\\\\" "/" dir ${dir})
488         SET(var ${var} -I${dir})
489         SET(var ${var} -DF2C_BUILD)
490         ENDIF(name STREQUAL ${target})
491         ENDFOREACH(target ${targets})
492         ENDIF(WINDOWS)
493         
494
495         SET(var ${var} ${AM_CPPFLAGS})
496         SET(var ${var} ${AM_CXXFLAGS})
497         
498
499         SET(var ${var} ${PLATFORM_CPPFLAGS})
500         SET(var ${var} ${PTHREAD_CFLAGS})
501         SET(var ${var} ${${amname}_CPPFLAGS})
502         SET(var ${var} ${${amname}_CXXFLAGS})
503         SET(var ${var} ${${amname}_CFLAGS})
504         SET(vars)
505         IF(WINDOWS)
506         SET(vars ${vars} -include SALOMEconfig.h)
507         SET(vars ${vars} -ftemplate-depth-32)
508         SET(vars ${vars} -fPIC)
509         SET(vars ${vars} -g)
510         ENDIF(WINDOWS)
511         SET(flags)
512         FOREACH(f ${var})
513         FOREACH(v ${vars})
514         IF(f STREQUAL v)
515         SET(f)
516         ENDIF(f STREQUAL v)
517         ENDFOREACH(v ${vars})
518         SET(flags "${flags} ${f}")
519         ENDFOREACH(f ${var})
520         SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
521         
522
523         SET(libadd)
524         
525
526         IF(WINDOWS)
527         SET(targets)
528         SET(targets ${targets} MEFISTO2D)
529         FOREACH(target ${targets})
530         IF(name STREQUAL ${target})
531         SET(dir $ENV{F2CHOME})
532         STRING(REPLACE "\\\\" "/" dir ${dir})
533         SET(libadd ${libadd} ${dir}/LIBF77.lib)
534         SET(libadd ${libadd} ${dir}/LIBI77.lib)
535         ENDIF(name STREQUAL ${target})
536         ENDFOREACH(target ${targets})
537         ENDIF(WINDOWS)
538         
539
540         SET(libs ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} ${${amname}_LIBADD} ${${amname}_LDADD} ${${amname}_LDFLAGS})
541         FOREACH(lib SALOMEBasics SalomeBatch)
542         IF(name STREQUAL lib)
543         SET(libs ${libs} ${PTHREAD_LIBS})
544         ENDIF(name STREQUAL lib)
545         ENDFOREACH(lib SALOMEBasics SalomeBatch)
546         
547
548             SET(libs ${libs} ${LDADD})
549             
550
551         FOREACH(lib ${libs})
552         GET_FILENAME_COMPONENT(ext ${lib} EXT)
553         IF(ext STREQUAL .la)
554         GET_FILENAME_COMPONENT(lib ${lib} NAME_WE)
555         STRING(REGEX REPLACE "^lib" "" lib ${lib})
556         ENDIF(ext STREQUAL .la)
557         SET(vars)
558         SET(vars ${vars} -no-undefined)
559         SET(vars ${vars} -lvtkWidgets)
560         IF(WINDOWS)
561         SET(vars ${vars} -module)
562         SET(vars ${vars} -Wl,-E)
563         SET(vars ${vars} -Xlinker)
564         SET(vars ${vars} -export-dynamic)
565         SET(vars ${vars} -lm)
566         SET(vars ${vars} -lboost_thread)
567         SET(vars ${vars} -lboost_signals)
568         SET(vars ${vars} -pthread -lpthread -ldl)
569         ENDIF(WINDOWS)
570         FOREACH(v ${vars})
571         IF(lib STREQUAL v)
572         SET(lib)
573         ENDIF(lib STREQUAL v)
574         ENDFOREACH(v ${vars})
575         SET(libadd ${libadd} ${lib})
576         ENDFOREACH(lib ${libs})
577         TARGET_LINK_LIBRARIES(${name} ${libadd})
578         
579
580         IF(WINDOWS)
581         SET(targets)
582         SET(targets ${targets} MEFISTO2D)
583         FOREACH(target ${targets})
584         IF(name STREQUAL ${target})
585         IF(CMAKE_BUILD_TYPE STREQUAL Debug)
586         SET_TARGET_PROPERTIES(${name} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT")
587         ENDIF(CMAKE_BUILD_TYPE STREQUAL Debug)
588         ENDIF(name STREQUAL ${target})
589         ENDFOREACH(target ${targets})
590         ENDIF(WINDOWS)
591         
592
593             SET(DEST bin/salome)
594             
595
596             IF(WINDOWS)
597             INSTALL(TARGETS ${name} DESTINATION ${DEST})
598             INSTALL(FILES ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.exe DESTINATION ${DEST} RENAME ${amname}.exe)
599             INSTALL(CODE "FILE(REMOVE ${CMAKE_INSTALL_PREFIX}/${DEST}/${name}.exe)")
600             ELSE(WINDOWS)
601             SET(PERMS)
602             SET(PERMS ${PERMS} OWNER_READ OWNER_WRITE OWNER_EXECUTE)
603             SET(PERMS ${PERMS} GROUP_READ GROUP_EXECUTE)
604             SET(PERMS ${PERMS} WORLD_READ WORLD_EXECUTE)
605             INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name} DESTINATION ${DEST} PERMISSIONS ${PERMS} RENAME ${amname})
606             ENDIF(WINDOWS)
607             
608
609         ENDIF(nb)
610         
611
612         ENDFOREACH(amname ${bin_PROGRAMS} ${check_PROGRAMS})
613         
614
615             FOREACH(input ${IDL_FILES})
616             STRING(REGEX REPLACE ".idl" "" base ${input})
617             SET(src ${CMAKE_CURRENT_BINARY_DIR}/${base}SK.cc)
618             SET(outputs ${src})
619             SET(dynsrc ${CMAKE_CURRENT_BINARY_DIR}/${base}DynSK.cc)
620             SET(outputs ${outputs} ${dynsrc})
621             SET(inc ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
622             SET(outputs ${outputs} ${inc})
623             IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${input})
624             SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
625             ELSE(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${input})
626             SET(input ${CMAKE_CURRENT_BINARY_DIR}/${input})
627             ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${input})
628             SET(flags ${IDLCXXFLAGS} ${OMNIORB_IDLCXXFLAGS})
629             STRING(REGEX MATCH "-bcxx" ISBCXX ${flags})
630             IF(NOT ISBCXX)
631             SET(flags -bcxx ${flags})
632             ENDIF(NOT ISBCXX)
633             ADD_CUSTOM_COMMAND(
634             OUTPUT ${outputs}
635             COMMAND ${OMNIORB_IDL} ${flags} ${input}
636             MAIN_DEPENDENCY ${input}
637             )
638             install(FILES ${input} DESTINATION idl/salome)
639             SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
640             install(FILES ${IDL_HEADER} DESTINATION include/salome)
641             INSTALL(CODE "SET(IDL_FILE ${input})")
642             INSTALL(CODE "SET(DIR lib/python${PYTHON_VERSION}/site-packages/salome)")
643             INSTALL(CODE "SET(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})")
644             INSTALL(CODE "SET(OMNIORB_IDL_PYTHON ${OMNIORB_IDL_PYTHON})")
645             # --
646             SET(flags)
647             FOREACH(f ${IDLPYFLAGS})
648             SET(flags "${flags} ${f}")
649             ENDFOREACH(f ${IDLPYFLAGS})
650             STRING(REGEX MATCH "-bpython" ISBPYTHON ${flags})
651             IF(NOT ISBPYTHON)
652             SET(flags "-bpython ${flags}")
653             ENDIF(NOT ISBPYTHON)
654             SET(IDLPYFLAGS ${flags})
655             STRING(REPLACE "\\" "/" IDLPYFLAGS ${IDLPYFLAGS})
656             INSTALL(CODE "SET(IDLPYFLAGS ${IDLPYFLAGS})")
657             # --
658             
659
660                 STRING(REPLACE "\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR})
661                 INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake)
662                 
663
664             ENDFOREACH(input ${IDL_FILES})
665