Salome HOME
CMake improvement: usage of SALOME_GUI_MODE() macro
[modules/paravis.git] / idl / CMakeLists.txt
index 1c116faefcc49354573f794eead35c617e6e475e..4e31c6b0110bf99f570b948c5364d23616db231f 100644 (file)
@@ -1,9 +1,9 @@
-# Copyright (C) 2010-2012  CEA/DEN, EDF R&D
+# Copyright (C) 2010-2015  CEA/DEN, EDF R&D
 #
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Lesser General Public
 # License as published by the Free Software Foundation; either
-# version 2.1 of the License.
+# version 2.1 of the License, or (at your option) any later version.
 #
 # This library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
 
-SET(VERSION_INFO ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_MAINTENANCE})
-SET(SOVERSION_INFO ${VERSION_MAJOR}.${VERSION_MINOR})
+INCLUDE(UseOmniORB)  # Provided by KERNEL
 
-ADD_DEFINITIONS(-DHAVE_SALOME_CONFIG)
-INCLUDE_DIRECTORIES(${KERNEL_ROOT_DIR}/include/salome ${CMAKE_BINARY_DIR}/idl)
+INCLUDE_DIRECTORIES(
+  ${OMNIORB_INCLUDE_DIR}
+  ${PROJECT_BINARY_DIR}/idl
+)
 
-#INCLUDE(vtkWrapHierarchy.cmake)
-#SET(VTK_WRAP_HIERARCHY_EXE vtkWrapHierarchy)
+ADD_DEFINITIONS(${OMNIORB_DEFINITIONS})
 
-INCLUDE(wrap.cmake)
-
-
-SET(BASEIDL_FILES
-  PARAVIS_Gen_Types.idl
-  PARAVIS_Gen.idl
+SET(SalomeIDLPARAVIS_IDLSOURCES
+    ${CMAKE_CURRENT_SOURCE_DIR}/PVSERVER_Gen.idl
   )
-
-SET(BASEIDL_SK_FILES
-  PARAVIS_Gen_TypesSK.cc
-  PARAVIS_GenSK.cc
-  )
-
-# potential problem on parallel make on the following - multiple outputs
-SET(SUFFIXES
-  .idl
-  .hh
-  SK.cc
-  )
-
-SET(srcs)
-FOREACH(f ${BASEIDL_SK_FILES} ${WRAP_SK_FILES})
-  SET(srcs ${srcs} ${CMAKE_CURRENT_BINARY_DIR}/${f})
-ENDFOREACH(f ${BASEIDL_SK_FILES} ${WRAP_SK_FILES})
-
-IF(WINDOWS)
-ADD_LIBRARY(SalomeIDLPARAVIS STATIC ${srcs})
-ELSE(WINDOWS)
-ADD_LIBRARY(SalomeIDLPARAVIS SHARED ${srcs})
-ENDIF(WINDOWS)
-
-SET(flags)
-FOREACH(f ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${CORBA_INCLUDES} ${CORBA_CXXFLAGS} ${KERNEL_CXXFLAGS})
-  SET(flags "${flags} ${f}")
-ENDFOREACH(f ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${CORBA_INCLUDES} ${CORBA_CXXFLAGS} ${KERNEL_CXXFLAGS})
-
-SET_TARGET_PROPERTIES(SalomeIDLPARAVIS PROPERTIES COMPILE_FLAGS "${flags}")
-SET_TARGET_PROPERTIES(SalomeIDLPARAVIS PROPERTIES VERSION ${VERSION_INFO} SOVERSION ${SOVERSION_INFO})
-
-TARGET_LINK_LIBRARIES(SalomeIDLPARAVIS ${PLATFORM_LIBADD} ${PLATFORM_LDFLAGS} ${CORBA_LIBS})
-INSTALL(TARGETS SalomeIDLPARAVIS DESTINATION lib/salome)
-  
-ADD_EXECUTABLE(vtkWrapIDL 
-  ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParse.tab.c 
-  ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParsePreprocess.c
-  ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseHierarchy.c
-  ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseExtras.c
-  ${CMAKE_SOURCE_DIR}/src/ParaView/vtkParseMain.c
-  ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrap.c
-  ${CMAKE_SOURCE_DIR}/src/ParaView/vtkWrapText.c
-  ${CMAKE_CURRENT_SOURCE_DIR}/vtkWrapIDL.c)
-
-ADD_DEPENDENCIES(vtkWrapIDL generate_txt)
-  
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src/ParaView)
-SET(flags)
-FOREACH(f ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${PARAVIEW_INCLUDES} ${VTK_INCLUDES})
-  SET(flags "${flags} ${f}")
-ENDFOREACH(f ${PLATFORM_CPPFLAGS} ${PTHREAD_CFLAGS} ${PARAVIEW_INCLUDES} ${VTK_INCLUDES})
-
-SET_TARGET_PROPERTIES(vtkWrapIDL PROPERTIES COMPILE_FLAGS "${flags}")
-
-TARGET_LINK_LIBRARIES(vtkWrapIDL ${PLATFORM_LDFLAGS} ${PLATFORM_LIBADD})
-SET(vtkWrapIDL_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/vtkWrapIDL)
-IF(WINDOWS)
-  IF(CMAKE_BUILD_TOOL STREQUAL nmake)
-    SET(vtkWrapIDL_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/vtkWrapIDL.exe)
-  ELSE(CMAKE_BUILD_TOOL STREQUAL nmake)
-    SET(vtkWrapIDL_EXEFILE ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/vtkWrapIDL.exe)
-  ENDIF(CMAKE_BUILD_TOOL STREQUAL nmake)
-ENDIF(WINDOWS)
-INSTALL(FILES ${vtkWrapIDL_EXEFILE} DESTINATION bin/salome PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
-
-FOREACH(input ${BASEIDL_FILES} ${WRAP_IDL})
-  STRING(REGEX REPLACE ".idl" "" base ${input})
-  SET(src ${CMAKE_CURRENT_BINARY_DIR}/${base}SK.cc)
-  SET(outputs ${src})
-  SET(dynsrc ${CMAKE_CURRENT_BINARY_DIR}/${base}DynSK.cc)
-  SET(outputs ${outputs} ${dynsrc})
-  SET(inc ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
-  SET(outputs ${outputs} ${inc})
-  LIST(FIND BASEIDL_FILES ${input} BASE_INDEX)
-  IF(${BASE_INDEX} EQUAL -1)
-    SET(input ${CMAKE_CURRENT_BINARY_DIR}/${input})
-  ELSE(${BASE_INDEX} EQUAL -1)
-    SET(input ${CMAKE_CURRENT_SOURCE_DIR}/${input})
-  ENDIF(${BASE_INDEX} EQUAL -1)
-  ADD_CUSTOM_COMMAND(
-    OUTPUT ${outputs}
-    COMMAND ${OMNIORB_IDL} -bcxx ${IDLCXXFLAGS} -I${CMAKE_CURRENT_SOURCE_DIR} -I${KERNEL_ROOT_DIR}/idl/salome ${OMNIORB_IDLCXXFLAGS} ${input}
-    MAIN_DEPENDENCY ${input}
-    )
-  INSTALL(FILES ${input} DESTINATION idl/salome)
-
-  SET(IDL_HEADER ${CMAKE_CURRENT_BINARY_DIR}/${base}.hh)
-  INSTALL(FILES ${IDL_HEADER} DESTINATION include/salome)
-  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})")
-  INSTALL(CODE "SET(OMNIORB_IDL_PYTHON ${OMNIORB_IDL_PYTHON})")
-  INSTALL(CODE "SET(IDLPYFLAGS -bpythonIDL -p${CMAKE_CURRENT_SOURCE_DIR} -I${CMAKE_CURRENT_SOURCE_DIR} -I${KERNEL_ROOT_DIR}/idl/salome)")
-  INSTALL(SCRIPT ${KERNEL_ROOT_DIR}/salome_adm/cmake_files/install_python_from_idl.cmake)
-
-ENDFOREACH(input ${IDL_FILES})
+SET(_idl_include_dirs
+    ${CMAKE_CURRENT_SOURCE_DIR}
+    ${KERNEL_ROOT_DIR}/idl/salome
+  )  
+SET(_idl_link_flags
+  ${KERNEL_SalomeIDLKernel}
+)
+
+# Demand Python generation:
+SET(OMNIORB_PYTHON_BACKEND 1)
+OMNIORB_ADD_MODULE(SalomeIDLPVServer "${SalomeIDLPARAVIS_IDLSOURCES}" "${_idl_include_dirs}" "${_idl_link_flags}")
+INSTALL(TARGETS SalomeIDLPVServer EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})