X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=salome_adm%2Fcmake_files%2Fam2cmake.py;h=8e0774b1542b157557921752a3344e37889acdd3;hb=5428fce2741a9883edf2a2bee798429b390a7412;hp=80e1d96e95b76a7d39768a948bf4beeac681fb2e;hpb=f7e0d83099c0b073e3955165a74afe7bf4881f36;p=modules%2Fkernel.git diff --git a/salome_adm/cmake_files/am2cmake.py b/salome_adm/cmake_files/am2cmake.py index 80e1d96e9..8e0774b15 100644 --- a/salome_adm/cmake_files/am2cmake.py +++ b/salome_adm/cmake_files/am2cmake.py @@ -1,8 +1,5 @@ # -*- coding: iso-8859-1 -*- -# Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE -# -# Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS +# Copyright (C) 2007-2010 CEA/DEN, EDF R&D, OPEN CASCADE # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public @@ -20,6 +17,7 @@ # # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com # + import re # ---- @@ -54,7 +52,7 @@ p_if = re.compile(r""" if # an if \s+ # 1 or more space (?P # open the group val -[^\s]+ # the group contain 1 or more non space characters +.+ # the group contain 1 or more non space characters ) # close the group """, re.VERBOSE) @@ -325,6 +323,7 @@ class CMakeFile(object): "SalomeIDLMED", ] smesh_list = [ + "GeomSelectionTools", "MEFISTO2D", "MeshDriverDAT", "MeshDriverMED", @@ -440,23 +439,48 @@ class CMakeFile(object): INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindSWIG.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake) INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake) + INCLUDE(${CMAKE_SOURCE_DIR}/salome_adm/cmake_files/FindMPI.cmake) """) pass else: - newlines.append(""" - SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR}) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake) - INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake) - """) + if self.module == "med": + newlines.append(""" + SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR}) + IF(KERNEL_ROOT_DIR) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake) + ELSE(KERNEL_ROOT_DIR) + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local_without_kernel/cmake_files/FindPLATFORM.cmake) + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local_without_kernel/cmake_files/FindMPI.cmake) + ENDIF(KERNEL_ROOT_DIR) + """) + else: + newlines.append(""" + SET(KERNEL_ROOT_DIR $ENV{KERNEL_ROOT_DIR}) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPLATFORM.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPYTHON.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindOMNIORB.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindPTHREADS.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindHDF5.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindBOOST.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindLIBXML2.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindSWIG.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindCPPUNIT.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindDOXYGEN.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindMPI.cmake) + INCLUDE(${KERNEL_ROOT_DIR}/salome_adm/cmake_files/FindKERNEL.cmake) + """) + pass if self.module == "gui": newlines.append(""" INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindCAS.cmake) @@ -469,6 +493,7 @@ class CMakeFile(object): else: newlines.append(""" SET(GUI_ROOT_DIR $ENV{GUI_ROOT_DIR}) + IF(GUI_ROOT_DIR) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindCAS.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindQT4.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindOPENGL.cmake) @@ -476,10 +501,14 @@ class CMakeFile(object): INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindQWT.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindSIPPYQT.cmake) INCLUDE(${GUI_ROOT_DIR}/adm_local/cmake_files/FindGUI.cmake) + ENDIF(GUI_ROOT_DIR) """) if self.module == "med": newlines.append(""" INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindMEDFILE.cmake) + IF(WINDOWS) + INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindXDR.cmake) + ENDIF(WINDOWS) """) pass if self.module == "smesh": @@ -513,7 +542,7 @@ class CMakeFile(object): INCLUDE(${CMAKE_SOURCE_DIR}/adm_local/cmake_files/FindBLSURF.cmake) """) pass - if self.module == "hexoticplugin": + if self.module in ["ghs3dplugin", "hexoticplugin"]: newlines.append(""" SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR}) SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) @@ -523,12 +552,13 @@ class CMakeFile(object): INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake) """) pass - if self.module == "ghs3dplugin": + if self.module == "ghs3dprlplugin": newlines.append(""" SET(GEOM_ROOT_DIR $ENV{GEOM_ROOT_DIR}) SET(MED_ROOT_DIR $ENV{MED_ROOT_DIR}) SET(SMESH_ROOT_DIR $ENV{SMESH_ROOT_DIR}) INCLUDE(${GEOM_ROOT_DIR}/adm_local/cmake_files/FindGEOM.cmake) + INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMEDFILE.cmake) INCLUDE(${MED_ROOT_DIR}/adm_local/cmake_files/FindMED.cmake) INCLUDE(${SMESH_ROOT_DIR}/adm_local/cmake_files/FindSMESH.cmake) """) @@ -563,8 +593,8 @@ class CMakeFile(object): newlines.append(""" SET(WITH_LOCAL 1) SET(WITH_BATCH 1) - set(VERSION 5.1.2) - set(XVERSION 0x050102) + set(VERSION 5.1.4) + set(XVERSION 0x050104) SET(CALCIUM_IDL_INT_F77 long) SET(CALCIUM_CORBA_INT_F77 CORBA::Long) SET(LONG_OR_INT int) @@ -580,13 +610,15 @@ class CMakeFile(object): SET(ENABLE_PYCONSOLE ON) SET(ENABLE_SUPERVGRAPHVIEWER ON) SET(ENABLE_QXGRAPHVIEWER ON) - set(VERSION 5.1.2) - set(XVERSION 0x050102) + set(VERSION 5.1.4) + set(XVERSION 0x050104) """) pass elif self.module == "geom": newlines.append(""" + IF(GUI_ROOT_DIR) SET(GEOM_ENABLE_GUI ON) + ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "medfile": @@ -602,37 +634,64 @@ class CMakeFile(object): pass elif self.module == "med": newlines.append(""" + IF(KERNEL_ROOT_DIR) SET(MED_ENABLE_KERNEL ON) IF(NOT WINDOWS) SET(MED_ENABLE_SPLITTER ON) ENDIF(NOT WINDOWS) + ENDIF(KERNEL_ROOT_DIR) + IF(GUI_ROOT_DIR) SET(MED_ENABLE_GUI ON) + ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "smesh": newlines.append(""" + IF(GUI_ROOT_DIR) SET(SMESH_ENABLE_GUI ON) + ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "netgenplugin": newlines.append(""" + IF(GUI_ROOT_DIR) SET(NETGENPLUGIN_ENABLE_GUI ON) + ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "blsurfplugin": newlines.append(""" + IF(GUI_ROOT_DIR) SET(BLSURFPLUGIN_ENABLE_GUI ON) + ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "ghs3dplugin": newlines.append(""" + IF(GUI_ROOT_DIR) SET(GHS3DPLUGIN_ENABLE_GUI ON) + ENDIF(GUI_ROOT_DIR) + """) + pass + elif self.module == "hexoticplugin": + newlines.append(""" + IF(GUI_ROOT_DIR) + SET(HEXOTICPLUGIN_ENABLE_GUI ON) + ENDIF(GUI_ROOT_DIR) + """) + pass + elif self.module == "ghs3dprlplugin": + newlines.append(""" + IF(GUI_ROOT_DIR) + SET(GHS3DPRLPLUGIN_ENABLE_GUI ON) + ENDIF(GUI_ROOT_DIR) """) pass elif self.module == "yacs": newlines.append(""" SET(SALOME_KERNEL ON) SET(HAS_GUI ON) + SET(WITH_QT4 ON) """) pass # -- @@ -654,8 +713,10 @@ class CMakeFile(object): else: if self.module not in ["yacs"]: newlines.append(r''' + IF(KERNEL_ROOT_DIR) SET(AM_CPPFLAGS ${AM_CPPFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h) SET(AM_CXXFLAGS ${AM_CXXFLAGS} -DHAVE_SALOME_CONFIG -I${KERNEL_ROOT_DIR}/include/salome -include SALOMEconfig.h) + ENDIF(KERNEL_ROOT_DIR) ''') pass pass @@ -957,9 +1018,17 @@ class CMakeFile(object): COMMAND ${OMNIORB_IDL} ${flags} ${input} MAIN_DEPENDENCY ${input} ) + ''') + newlines.append(''' install(FILES ${input} DESTINATION idl/salome) - SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh) - install(FILES ${IDL_HEADER} DESTINATION include/salome) + ''') + if self.module not in ["pyhello"]: + newlines.append(''' + SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh) + install(FILES ${IDL_HEADER} DESTINATION include/salome) + ''') + pass + newlines.append(''' INSTALL(CODE "SET(IDL_FILE ${input})") INSTALL(CODE "SET(DIR lib/python${PYTHON_VERSION}/site-packages/salome)") INSTALL(CODE "SET(CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})") @@ -1013,9 +1082,22 @@ class CMakeFile(object): ELSE(SWIG_SOURCES MATCHES ";") SET(SWIG_SOURCES_FIRST "${SWIG_SOURCES}") ENDIF(SWIG_SOURCES MATCHES ";") + SET(flags) + FOREACH(f ${SWIG_FLAGS} ${MY_SWIG_FLAGS}) + SET(test ON) + IF(flags) + LIST(FIND flags ${f} index) + IF(NOT index EQUAL -1) + SET(test OFF) + ENDIF(NOT index EQUAL -1) + ENDIF(flags) + IF(test) + SET(flags ${flags} ${f}) + ENDIF(test) + ENDFOREACH(f ${SWIG_FLAGS} ${MY_SWIG_FLAGS}) ADD_CUSTOM_COMMAND( OUTPUT ${build_srcs} - COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${MY_SWIG_FLAGS} -o ${build_srcs} ${CMAKE_CURRENT_SOURCE_DIR}/${SWIG_SOURCES_FIRST} + COMMAND ${SWIG_EXECUTABLE} ${flags} -o ${build_srcs} ${CMAKE_CURRENT_SOURCE_DIR}/${SWIG_SOURCES_FIRST} MAIN_DEPENDENCY ${SWIG_SOURCES} ) ''') @@ -1389,6 +1471,15 @@ class CMakeFile(object): SET(type SHARED) ENDIF(ISIDL) ''') + if key == "noinst_LTLIBRARIES": + newlines.append(r''' + IF(WINDOWS) + SET(type STATIC) + ELSE(WINDOWS) + SET(type STATIC) + ENDIF(WINDOWS) + ''') + pass # -- # Set sources for the library # -- @@ -1462,7 +1553,7 @@ class CMakeFile(object): # -- self.setLibAdd(key, newlines) # -- - if 1: # key != "noinst_LTLIBRARIES": + if key != "noinst_LTLIBRARIES": if self.module == "medfile": newlines.append(r''' SET(DEST lib) @@ -1551,7 +1642,24 @@ class CMakeFile(object): def addBinTarget(self, key, newlines): # -- newlines.append(r''' - FOREACH(amname ${bin_PROGRAMS} ${check_PROGRAMS}) + FOREACH(amname ${%s}) + '''%(key)) + # -- + newlines.append(r''' + SET(test ON) + ''') + if key == "check_PROGRAMS": + newlines.append(r''' + IF(bin_PROGRAMS) + STRING(REGEX MATCH ${amname} is_present ${bin_PROGRAMS}) + IF(is_present) + SET(test OFF) + ENDIF(is_present) + ENDIF(bin_PROGRAMS) + ''') + pass + newlines.append(r''' + IF(test) ''') # -- newlines.append(r''' @@ -1602,8 +1710,11 @@ class CMakeFile(object): ''') # -- newlines.append(r''' - ENDFOREACH(amname ${bin_PROGRAMS} ${check_PROGRAMS}) + ENDIF(test) ''') + newlines.append(r''' + ENDFOREACH(amname ${%s}) + '''%(key)) # -- return @@ -1764,9 +1875,13 @@ if __name__ == "__main__": pass pass # -- + from sys import stdout for f in files: if f in ["Makefile.am", "Makefile.am.cmake"]: + stdout.write("Scanning %s %s ..."%(root, f)) + stdout.flush() convertAmFile(the_root, root, dirs, files, f, module) + stdout.write(" done.\n") pass pass pass