Salome HOME
Small fix for check_openmpi.m4
[modules/kernel.git] / salome_adm / cmake_files / FindOMNIORB.cmake
index f9cd2d6185e1ad61ad0b0ece2bb599802df1b19a..fba31d1811898d0d47b4e2384afff9c62437cda3 100644 (file)
@@ -1,4 +1,4 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+#  Copyright (C) 2007-2010  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
 #
 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-# -----
 
-FIND_PROGRAM(OMNIORB_IDL omniidl)
-
-# -----
-
-IF(OMNIORB_IDL)
-  SET(CORBA_GEN 1)
-ELSE(OMNIORB_IDL)
-  SET(CORBA_GEN 0)
-ENDIF(OMNIORB_IDL)
-
-# -----
-
-SET(OMNIORB_ROOT ${OMNIORB_IDL})
-GET_FILENAME_COMPONENT(OMNIORB_ROOT ${OMNIORB_ROOT} PATH)
-IF(WINDOWS)
-  GET_FILENAME_COMPONENT(OMNIORB_ROOT ${OMNIORB_ROOT} PATH)
-ENDIF(WINDOWS)
-GET_FILENAME_COMPONENT(OMNIORB_ROOT ${OMNIORB_ROOT} PATH)
-
-# ----
-
-FIND_PATH(OMNIORB_INC1
-  NAMES omniORB4/CORBA.h
-  PATHS ${OMNIORB_ROOT}/include
-  )
-FIND_PATH(OMNIORB_INC2
-  NAMES CORBA.h
-  PATHS ${OMNIORB_ROOT}/include/omniORB4
-  )
-
-SET(OMNIORB_INCLUDES -I${OMNIORB_INC1} -I${OMNIORB_INC2})
-SET(CORBA_INCLUDES ${OMNIORB_INCLUDES})
+# ------
+
+MESSAGE(STATUS "Check for omniorb ...")
+
+# ------
+
+IF(OMNIORB_IS_MANDATORY STREQUAL 0)
+  SET(OMNIORB_IS_MANDATORY 0)
+  SET(OMNIORB_IS_OPTIONAL 1)
+ENDIF(OMNIORB_IS_MANDATORY STREQUAL 0)
+IF(OMNIORB_IS_OPTIONAL STREQUAL 0)
+  SET(OMNIORB_IS_MANDATORY 1)
+  SET(OMNIORB_IS_OPTIONAL 0)
+ENDIF(OMNIORB_IS_OPTIONAL STREQUAL 0)
+IF(NOT OMNIORB_IS_MANDATORY AND NOT OMNIORB_IS_OPTIONAL)
+  SET(OMNIORB_IS_MANDATORY 1)
+  SET(OMNIORB_IS_OPTIONAL 0)
+ENDIF(NOT OMNIORB_IS_MANDATORY AND NOT OMNIORB_IS_OPTIONAL)
+
+# ------
+
+SET(OMNIORB_STATUS 1)
+IF(WITHOUT_OMNIORB OR WITH_OMNIORB STREQUAL 0)
+  SET(OMNIORB_STATUS 0)
+  MESSAGE(STATUS "omniorb disabled from command line.")
+ENDIF(WITHOUT_OMNIORB OR WITH_OMNIORB STREQUAL 0)
+
+# ------
+
+IF(OMNIORB_STATUS)
+  IF(WITH_OMNIORB)
+    SET(OMNIORB_ROOT_USER ${WITH_OMNIORB})
+  ENDIF(WITH_OMNIORB)
+  IF(NOT OMNIORB_ROOT_USER)
+    SET(OMNIORB_ROOT_USER $ENV{OMNIORB_ROOT})
+  ENDIF(NOT OMNIORB_ROOT_USER)
+  IF(NOT OMNIORB_ROOT_USER)
+    SET(OMNIORB_ROOT_USER $ENV{OMNIORBHOME})
+  ENDIF(NOT OMNIORB_ROOT_USER)
+ENDIF(OMNIORB_STATUS)
+
+# ------
+
+IF(OMNIORB_STATUS)
+  SET(OMNIIDL_EXECUTABLE_TO_FIND omniidl)
+  IF(OMNIORB_ROOT_USER)
+    FIND_PROGRAM(OMNIIDL_EXECUTABLE ${OMNIIDL_EXECUTABLE_TO_FIND} PATHS ${OMNIORB_ROOT_USER}/bin)
+  ELSE(OMNIORB_ROOT_USER)
+    FIND_PROGRAM(OMNIIDL_EXECUTABLE ${OMNIIDL_EXECUTABLE_TO_FIND})
+  ENDIF(OMNIORB_ROOT_USER)
+  IF(OMNIIDL_EXECUTABLE)
+    MESSAGE(STATUS "${OMNIIDL_EXECUTABLE_TO_FIND} found: ${OMNIIDL_EXECUTABLE}")
+    IF(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND})
+    ELSE(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND})
+      SET(OMNIORB_ROOT_USER ${OMNIIDL_EXECUTABLE})
+      GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH)
+      IF(WINDOWS)
+       GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH)
+      ENDIF(WINDOWS)
+      GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH)
+    ENDIF(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND})
+  ELSE(OMNIIDL_EXECUTABLE)
+    MESSAGE(STATUS "${OMNIIDL_EXECUTABLE_TO_FIND} not found, try to use WITH_OMNIORB option or OMNIORBHOME environment variable")
+    SET(OMNIORB_STATUS 0)
+  ENDIF(OMNIIDL_EXECUTABLE)
+ENDIF(OMNIORB_STATUS)
+
+# ------
+
+IF(OMNIORB_STATUS)
+  IF(OMNIORB_ROOT_USER)
+    SET(OMNIORB_FIND_PATHS_OPTION NO_DEFAULT_PATH)
+  ELSE(OMNIORB_ROOT_USER)
+    SET(OMNIORB_FIND_PATHS_OPTION)
+  ENDIF(OMNIORB_ROOT_USER)
+ENDIF(OMNIORB_STATUS)
+
+# ------
+
+IF(OMNIORB_STATUS)
+  SET(OMNIORB_INCLUDES)
+ENDIF(OMNIORB_STATUS)
+IF(OMNIORB_STATUS)
+  IF(OMNIORB_ROOT_USER)
+    SET(OMNIORB_INCLUDE_PATHS ${OMNIORB_ROOT_USER}/include)
+  ELSE(OMNIORB_ROOT_USER)
+    SET(OMNIORB_INCLUDE_PATHS)
+  ENDIF(OMNIORB_ROOT_USER)
+  SET(OMNIORB_INCLUDE_TO_FIND omniORB4/CORBA.h)
+  FIND_PATH(OMNIORB_INCLUDE_DIR1 ${OMNIORB_INCLUDE_TO_FIND} PATHS ${OMNIORB_INCLUDE_PATHS} ${OMNIORB_FIND_PATHS_OPTION})
+  IF(OMNIORB_INCLUDE_DIR1)
+    SET(OMNIORB_INCLUDES ${OMNIORB_INCLUDES} -I${OMNIORB_INCLUDE_DIR1})
+    MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} found in ${OMNIORB_INCLUDE_DIR1}")
+  ELSE(OMNIORB_INCLUDE_DIR1)
+    SET(OMNIORB_STATUS 0)
+    IF(OMNIORB_ROOT_USER)
+      MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found in ${OMNIORB_INCLUDE_PATHS}, check your OMNIORB installation.")
+    ELSE(OMNIORB_ROOT_USER)
+      MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found on system, try to use WITH_OMNIORB option or OMNIORB_ROOT environment variable.")
+    ENDIF(OMNIORB_ROOT_USER)
+  ENDIF(OMNIORB_INCLUDE_DIR1)
+ENDIF(OMNIORB_STATUS)
+IF(OMNIORB_STATUS)
+  IF(OMNIORB_ROOT_USER)
+    SET(OMNIORB_INCLUDE_PATHS ${OMNIORB_ROOT_USER}/include/omniORB4)
+  ELSE(OMNIORB_ROOT_USER)
+    SET(OMNIORB_INCLUDE_PATHS /usr/include/omniORB4)
+  ENDIF(OMNIORB_ROOT_USER)
+  SET(OMNIORB_INCLUDE_TO_FIND CORBA.h)
+  FIND_PATH(OMNIORB_INCLUDE_DIR2 ${OMNIORB_INCLUDE_TO_FIND} PATHS ${OMNIORB_INCLUDE_PATHS} ${OMNIORB_FIND_PATHS_OPTION})
+  IF(OMNIORB_INCLUDE_DIR2)
+    SET(OMNIORB_INCLUDES ${OMNIORB_INCLUDES} -I${OMNIORB_INCLUDE_DIR2})
+    MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} found in ${OMNIORB_INCLUDE_DIR2}")
+  ELSE(OMNIORB_INCLUDE_DIR2)
+    SET(OMNIORB_STATUS 0)
+    MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found in ${OMNIORB_INCLUDE_PATHS}, check your OMNIORB installation.")
+  ENDIF(OMNIORB_INCLUDE_DIR2)
+ENDIF(OMNIORB_STATUS)
+
+# ------
+
+IF(OMNIORB_STATUS)
+  SET(OMNIORB_CXXFLAGS)
+  # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DOMNIORB_VERSION=4)
+  SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__x86__)
+  SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DCOMP_CORBA_DOUBLE)
+  SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DCOMP_CORBA_LONG)
+  IF(WINDOWS)
+    SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__WIN32__)
+    #    #  #  # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D_WIN32_WINNT=0x0400)
+    #    SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__NT__)
+    #    SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__OSVERSION__=4)
+    #  ELSE(WINDOWS)
+    #    SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__linux__)
+  ENDIF(WINDOWS)
+  #  IF(WINDOWS)
+  #    SET(OMNIORB_LIBS ws2_32.lib mswsock.lib advapi32.lib ${OMNIORB_LIBS})
+  #  ENDIF(WINDOWS)
+ENDIF(OMNIORB_STATUS)
 
 # ----
 
-SET(OMNIORB_CXXFLAGS)
-SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DOMNIORB_VERSION=4)
-SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__x86__)
-
-IF(WINDOWS)
-  SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__WIN32__)
-  #  #  # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D_WIN32_WINNT=0x0400)
-  SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__NT__)
-  SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__OSVERSION__=4)
-ELSE(WINDOWS)
-  SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__linux__)
-ENDIF(WINDOWS)
-
-SET(CORBA_CXXFLAGS ${OMNIORB_CXXFLAGS})
-
-# ----
-
-IF(WINDOWS)
-  FIND_LIBRARY(lib_omniORB4       omniORB4_rtd        ${OMNIORB_ROOT}/lib/x86_win32)
-  FIND_LIBRARY(lib_omniDynamic4   omniDynamic4_rtd    ${OMNIORB_ROOT}/lib/x86_win32)
-  FIND_LIBRARY(lib_COS4           COS4_rtd            ${OMNIORB_ROOT}/lib/x86_win32)
-  FIND_LIBRARY(lib_COSDynamic4    COSDynamic4_rtd     ${OMNIORB_ROOT}/lib/x86_win32)
-  FIND_LIBRARY(lib_omnithread     omnithread_rtd      ${OMNIORB_ROOT}/lib/x86_win32)
-ELSE(WINDOWS)
-  FIND_LIBRARY(lib_omniORB4       omniORB4           ${OMNIORB_ROOT}/lib)
-  FIND_LIBRARY(lib_omniDynamic4   omniDynamic4       ${OMNIORB_ROOT}/lib)
-  FIND_LIBRARY(lib_COS4           COS4               ${OMNIORB_ROOT}/lib)
-  FIND_LIBRARY(lib_COSDynamic4    COSDynamic4        ${OMNIORB_ROOT}/lib)
-  FIND_LIBRARY(lib_omnithread     omnithread         ${OMNIORB_ROOT}/lib)
-ENDIF(WINDOWS)
-
-SET(OMNIORB_LIBS ${lib_omniORB4} ${lib_omniDynamic4} ${lib_COS4} ${lib_COSDynamic4} ${lib_omnithread})
-IF(WINDOWS)
-  SET(OMNIORB_LIBS ws2_32.lib mswsock.lib advapi32.lib ${OMNIORB_LIBS})
-ENDIF(WINDOWS)
-
-SET(CORBA_LIBS ${OMNIORB_LIBS})
+IF(OMNIORB_STATUS)
+  IF(OMNIORB_ROOT_USER)
+    IF(WINDOWS)
+      SET(OMNIORB_LIB_PATHS ${OMNIORB_ROOT_USER}/lib/x86_win32)
+    ELSE(WINDOWS)
+      SET(OMNIORB_LIB_PATHS ${OMNIORB_ROOT_USER}/lib)
+    ENDIF(WINDOWS)
+  ELSE(OMNIORB_ROOT_USER)
+    SET(OMNIORB_LIB_PATHS)
+  ENDIF(OMNIORB_ROOT_USER)
+ENDIF(OMNIORB_STATUS)
+
+IF(OMNIORB_STATUS)
+  IF(WINDOWS)
+    IF(CMAKE_BUILD_TYPE STREQUAL Release)
+      SET(OMNIORB_LIB_SUFFIX _rt)
+    ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
+      SET(OMNIORB_LIB_SUFFIX _rtd)
+    ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
+  ELSE(WINDOWS)
+    SET(OMNIORB_LIB_SUFFIX)
+  ENDIF(WINDOWS)
+ENDIF(OMNIORB_STATUS)
+
+SET(OMNIORB_LIBS)
+FOREACH(lib omniORB4 omniDynamic4 COS4 COSDynamic4 omnithread)
+  IF(OMNIORB_STATUS)
+    FIND_LIBRARY(${lib}${OMNIORB_LIB_SUFFIX} ${lib}${OMNIORB_LIB_SUFFIX} PATHS ${OMNIORB_LIB_PATHS} ${OMNIORB_FIND_PATHS_OPTION})
+    IF(${lib}${OMNIORB_LIB_SUFFIX})
+      SET(OMNIORB_LIBS ${OMNIORB_LIBS} ${${lib}${OMNIORB_LIB_SUFFIX}})
+      MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib found: ${${lib}${OMNIORB_LIB_SUFFIX}}")
+    ELSE(${lib}${OMNIORB_LIB_SUFFIX})
+      SET(OMNIORB_STATUS 0)
+      IF(OMNIORB_ROOT_USER)
+       MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib not found in ${OMNIORB_LIB_PATHS}, check your OMNIORB installation.")
+      ELSE(OMNIORB_ROOT_USER)
+       MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib not found on system, try to use WITH_OMNIORB option or OMNIORB_ROOT environment variable.")
+      ENDIF(OMNIORB_ROOT_USER)
+    ENDIF(${lib}${OMNIORB_LIB_SUFFIX})
+  ENDIF(OMNIORB_STATUS)
+ENDFOREACH(lib omniORB4 omniDynamic4 COS4 COSDynamic4 omnithread)
 
 # ----------------
 
-SET(OMNIORB_IDL_PYTHON $ENV{OMNIIDL_PYTHON})
-IF(NOT OMNIORB_IDL_PYTHON)
-  SET(OMNIORB_IDL_PYTHON ${OMNIORB_IDL})
-ENDIF(NOT OMNIORB_IDL_PYTHON)
+IF(OMNIORB_STATUS)
+  SET(OMNIORB_IDL_PYTHON $ENV{OMNIIDL_PYTHON})
+  IF(NOT OMNIORB_IDL_PYTHON)
+    SET(OMNIORB_IDL_PYTHON ${OMNIIDL_EXECUTABLE})
+  ENDIF(NOT OMNIORB_IDL_PYTHON)
+ENDIF(OMNIORB_STATUS)
 
-# ----------------
+# ----
 
-SET(IDL_CLN_H .hh)
-SET(IDL_SRV_H .hh)
+IF(OMNIORB_STATUS)
+  SET(CORBA_GEN 1)
+  SET(OMNIORB_IDL ${OMNIIDL_EXECUTABLE})
+  SET(CORBA_INCLUDES ${OMNIORB_INCLUDES})
+  SET(CORBA_CXXFLAGS ${OMNIORB_CXXFLAGS})
+  SET(CORBA_LIBS ${OMNIORB_LIBS})
+  SET(OMNIORB_IDLCXXFLAGS -Wba -nf)
+  SET(OMNIORB_IDLPYFLAGS -bpython)
+  SET(IDLCXXFLAGS ${OMNIORB_IDLCXXFLAGS})
+  SET(IDLPYFLAGS ${OMNIORB_IDLPYFLAGS})
+  SET(IDL_CLN_H .hh)
+  SET(IDL_SRV_H .hh)
+ELSE(OMNIORB_STATUS)
+  SET(CORBA_GEN 0)
+  IF(OMNIORB_IS_MANDATORY)
+    MESSAGE(FATAL_ERROR "omniorb not found ... mandatory ... abort")
+  ELSE(OMNIORB_IS_MANDATORY)
+    MESSAGE(STATUS "omniorb not found ... optional ... disabled")
+  ENDIF(OMNIORB_IS_MANDATORY)
+ENDIF(OMNIORB_STATUS)
 
-# SET(OMNIORB_IDLCXXFLAGS -Wba -nf)
-# SET(OMNIORB_IDLPYFLAGS -bpython)
-SET(IDLCXXFLAGS -Wba -nf)
-SET(IDLPYFLAGS -bpython)
+# ----