2 SET(VERSION_INFO 0.0.0)
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)
13 # Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
15 # Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
16 # CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
32 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
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.
39 # include $(top_srcdir)/adm_local/unix/make_common_starter.am
47 # @$(srcdir)/create_header.sh $(top_srcdir)
49 # $(srcdir)/vtkWrapIDL.c: vtkWrapIDL.h;
51 SET(dist_vtkWrapIDL_SOURCES
52 ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParse.tab.c
53 ${CMAKE_CURRENT_SOURCE_DIR}/vtkWrapIDL.c
56 SET(vtkWrapIDL_CPPFLAGS
57 -I${CMAKE_SOURCE_DIR}/src/ParaView
58 -I${CMAKE_BINARY_DIR}/idl
63 # hints: $(PVHOME)/lib/paraview-$(PVVERSION)/hints $(srcdir)/hints_paravis
64 # @$(srcdir)/create_hints.sh $(PVHOME)/lib/paraview-$(PVVERSION)
66 # $(srcdir)/wrap.am: $(top_srcdir)/wrapfiles.txt
67 # @cd $(srcdir) && $(srcdir)/create_wrap.sh
69 # include $(srcdir)/wrap.am
77 PARAVIS_Gen_TypesSK.cc
86 # This variable defines the files to be installed
87 SET(dist_salomeidl_DATA
91 # PARAVIS idl common library
93 libSalomeIDLPARAVIS.la
96 # Sources built from idl files
97 SET(nodist_libSalomeIDLPARAVIS_la_SOURCES
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}
108 SET(libSalomeIDLPARAVIS_la_CPPFLAGS
109 -I${CMAKE_BINARY_DIR}/salome_adm/unix
110 -I${CMAKE_BINARY_DIR}/idl
115 SET(VERSION_INFO 0.0.0)
116 SET(SOVERSION_INFO 0)
117 SET(libSalomeIDLPARAVIS_la_LDFLAGS
120 SET(libSalomeIDLPARAVIS_la_LIBADD
124 # These variables defines the building process of CORBA files
128 SET(OMNIORB_IDLCXXFLAGS
129 ${OMNIORB_IDLCXXFLAGS}
131 SET(OMNIORB_IDLPYFLAGS
132 ${OMNIORB_IDLPYFLAGS}
133 -I${KERNEL_ROOT_DIR}/idl/salome
138 -I${CMAKE_CURRENT_SOURCE_DIR}
139 -I${KERNEL_ROOT_DIR}/idl/salome
140 -I${CMAKE_BINARY_DIR}/salome_adm/unix
145 -p${CMAKE_CURRENT_SOURCE_DIR}
146 -I${CMAKE_CURRENT_SOURCE_DIR}
147 -I${KERNEL_ROOT_DIR}/idl/salome
150 # potential problem on parallel make on the following - multiple outputs
157 # $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
159 # $(OMNIORB_IDL) $(IDLCXXFLAGS) $(OMNIORB_IDLCXXFLAGS) $<
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
165 # uninstall-local removes too much, but it works in distcheck
167 # rm -rf $(DESTDIR)$(salomepythondir)/*
169 # mostlyclean-local: clean-idls
172 # @find . \( -name "*.hh" -or -name "*.cc" -or -name ".depidl" -or -name "*.idl" \) -exec rm -f {} \;
173 # -rm -f hints vtkWrapIDL.h
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
179 # .depidl: $(BASEIDL_FILES)
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 ;
186 FOREACH(dir ${SUBDIRS})
187 IF(NOT dir STREQUAL .)
188 ADD_SUBDIRECTORY(${dir})
189 ENDIF(NOT dir STREQUAL .)
190 ENDFOREACH(dir ${SUBDIRS})
193 FOREACH(amname ${lib_LTLIBRARIES})
196 STRING(REPLACE .la _la amname ${amname})
199 STRING(LENGTH ${amname} len)
200 MATH(EXPR newlen "${len}-3")
201 STRING(SUBSTRING ${amname} 0 ${newlen} name)
204 STRING(REGEX MATCH "^lib" BEGIN_WITH_lib ${name})
206 STRING(LENGTH ${name} len)
207 MATH(EXPR newlen "${len}-3")
208 STRING(SUBSTRING ${name} 3 ${newlen} name)
209 ENDIF(BEGIN_WITH_lib)
212 STRING(REGEX MATCH "IDL" ISIDL ${name})
227 FOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
228 GET_FILENAME_COMPONENT(ext ${src} EXT)
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})
238 MAIN_DEPENDENCY ${input}
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})
252 COMMAND ${F77} -c -o ${output} ${input}
253 MAIN_DEPENDENCY ${input}
255 ENDIF(src STREQUAL trte.f)
256 ENDIF(ext STREQUAL .f)
257 SET(srcs ${srcs} ${src})
258 ENDFOREACH(src ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
261 SET(l ${nodist_${amname}_SOURCES} ${UIC_FILES})
263 SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
264 SET(srcs ${srcs} ${src})
269 SET(l ${nodist_${amname}_SOURCES} ${BUILT_SOURCES})
271 GET_FILENAME_COMPONENT(ext ${f} EXT)
273 ELSE(ext STREQUAL .py)
274 SET(build_srcs ${build_srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f})
275 ENDIF(ext STREQUAL .py)
279 ADD_LIBRARY(${name} ${type} ${srcs})
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})
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})
316 SET(var ${var} ${AM_CPPFLAGS})
317 SET(var ${var} ${AM_CXXFLAGS})
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})
327 SET(vars ${vars} -include SALOMEconfig.h)
328 SET(vars ${vars} -ftemplate-depth-32)
329 SET(vars ${vars} -fPIC)
338 ENDFOREACH(v ${vars})
339 SET(flags "${flags} ${f}")
341 SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
344 SET_TARGET_PROPERTIES(${name} PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
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})
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)
373 GET_FILENAME_COMPONENT(ext ${lib} EXT)
375 GET_FILENAME_COMPONENT(lib ${lib} NAME_WE)
376 STRING(REGEX REPLACE "^lib" "" lib ${lib})
377 ENDIF(ext STREQUAL .la)
379 SET(vars ${vars} -no-undefined)
380 SET(vars ${vars} -lvtkWidgets)
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)
394 ENDIF(lib STREQUAL v)
395 ENDFOREACH(v ${vars})
396 SET(libadd ${libadd} ${lib})
397 ENDFOREACH(lib ${libs})
398 TARGET_LINK_LIBRARIES(${name} ${libadd})
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})
418 INSTALL(TARGETS ${name} DESTINATION ${DEST})
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)
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)
440 ENDIF(BEGIN_WITH_lib)
443 ENDFOREACH(amname ${lib_LTLIBRARIES})
446 FOREACH(amname ${bin_PROGRAMS} ${check_PROGRAMS})
449 SET(name "${amname}_exe")
450 SET(srcs ${${amname}_SOURCES} ${dist_${amname}_SOURCES})
451 SET(l ${nodist_${amname}_SOURCES})
453 SET(src ${CMAKE_CURRENT_BINARY_DIR}/${f})
454 SET(srcs ${srcs} ${src})
458 ADD_EXECUTABLE(${name} ${srcs})
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})
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})
495 SET(var ${var} ${AM_CPPFLAGS})
496 SET(var ${var} ${AM_CXXFLAGS})
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})
506 SET(vars ${vars} -include SALOMEconfig.h)
507 SET(vars ${vars} -ftemplate-depth-32)
508 SET(vars ${vars} -fPIC)
517 ENDFOREACH(v ${vars})
518 SET(flags "${flags} ${f}")
520 SET_TARGET_PROPERTIES(${name} PROPERTIES COMPILE_FLAGS "${flags}")
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})
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)
548 SET(libs ${libs} ${LDADD})
552 GET_FILENAME_COMPONENT(ext ${lib} EXT)
554 GET_FILENAME_COMPONENT(lib ${lib} NAME_WE)
555 STRING(REGEX REPLACE "^lib" "" lib ${lib})
556 ENDIF(ext STREQUAL .la)
558 SET(vars ${vars} -no-undefined)
559 SET(vars ${vars} -lvtkWidgets)
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)
573 ENDIF(lib STREQUAL v)
574 ENDFOREACH(v ${vars})
575 SET(libadd ${libadd} ${lib})
576 ENDFOREACH(lib ${libs})
577 TARGET_LINK_LIBRARIES(${name} ${libadd})
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})
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)")
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})
612 ENDFOREACH(amname ${bin_PROGRAMS} ${check_PROGRAMS})
615 FOREACH(input ${IDL_FILES})
616 STRING(REGEX REPLACE ".idl" "" base ${input})
617 SET(src ${CMAKE_CURRENT_BINARY_DIR}/${base}SK.cc)
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})
631 SET(flags -bcxx ${flags})
635 COMMAND ${OMNIORB_IDL} ${flags} ${input}
636 MAIN_DEPENDENCY ${input}
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})")
647 FOREACH(f ${IDLPYFLAGS})
648 SET(flags "${flags} ${f}")
649 ENDFOREACH(f ${IDLPYFLAGS})
650 STRING(REGEX MATCH "-bpython" ISBPYTHON ${flags})
652 SET(flags "-bpython ${flags}")
654 SET(IDLPYFLAGS ${flags})
655 STRING(REPLACE "\\" "/" IDLPYFLAGS ${IDLPYFLAGS})
656 INSTALL(CODE "SET(IDLPYFLAGS ${IDLPYFLAGS})")
660 STRING(REPLACE "\\" "/" KERNEL_ROOT_DIR ${KERNEL_ROOT_DIR})
661 INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake)
664 ENDFOREACH(input ${IDL_FILES})