1 # - Find OmniORB4 cmake module and Pyhon backends
3 # Sets the following variables:
4 # OMNIORB_FOUND - TRUE if OmniORB4 installation has been found
5 # OMNIORB_INCLUDE_DIR - OmniORB4 headers path
6 # OMNIORB_LIBRARIES - OmniORB4 libraries
7 # OMNIORB_VERSION - OmniORB4 version
8 # OMNIORB_IDL_COMPILER - OmniORB4 idl compiler command (omniidl)
9 # OMNIORB_NAMESERVER - OmniORB4 CORBA naming service (omniNames)
10 # OMNIORB_PYTHON_BACKEND
11 # and many other mainly used in UseOmniORB.cmake
13 # Detection is made through calls to
14 # find_library, find_program, find_path
15 # and can be guided by extending CMAKE_PREFIX_PATH. Given the CMake precedence
16 # rule this will take precedence over the standard system paths.
17 # See for example doc of find_library().
20 ################################################################
21 # Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
23 # This library is free software; you can redistribute it and/or
24 # modify it under the terms of the GNU Lesser General Public
25 # License as published by the Free Software Foundation; either
26 # version 2.1 of the License.
28 # This library is distributed in the hope that it will be useful,
29 # but WITHOUT ANY WARRANTY; without even the implied warranty of
30 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
31 # Lesser General Public License for more details.
33 # You should have received a copy of the GNU Lesser General Public
34 # License along with this library; if not, write to the Free Software
35 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
37 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
39 ################################################################
41 # minimum OmniORB4 supported version
42 # 4.0.6 has known bug float/double marshalling using CORBA::Any
43 SET(OmniORB_MINIMUM_VERSION "4.1.2")
46 # Guide the FIND_LIBRARY command towards the correct directory <...>/lib/x86_win32:
47 SET(CMAKE_LIBRARY_ARCHITECTURE x86_win32)
50 ##############################################################################
52 ##############################################################################
53 FIND_PATH(OMNIORB_INCLUDE_DIR omniORB4/CORBA.h)
55 ##############################################################################
57 ##############################################################################
59 FIND_LIBRARY(OMNIORB_LIBRARY_omniORB4
60 NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}omniORB4${CMAKE_STATIC_LIBRARY_SUFFIX})
61 FIND_LIBRARY( OMNIORB_LIBRARY_omnithread
62 NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}omnithread${CMAKE_STATIC_LIBRARY_SUFFIX})
63 FIND_LIBRARY( OMNIORB_LIBRARY_omniDynamic4
64 NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}omniDynamic4${CMAKE_STATIC_LIBRARY_SUFFIX})
66 FIND_LIBRARY(OMNIORB_LIBRARY_omniORB4 NAMES omniORB4)
67 FIND_LIBRARY(OMNIORB_LIBRARY_omnithread NAMES omnithread)
68 FIND_LIBRARY(OMNIORB_LIBRARY_omniDynamic4 NAMES omniDynamic4)
74 FIND_LIBRARY( OMNIORB_LIBRARY_COS4
75 NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}COS4${CMAKE_STATIC_LIBRARY_SUFFIX})
76 FIND_LIBRARY( OMNIORB_LIBRARY_COSDynamic4
77 NAMES ${CMAKE_STATIC_LIBRARY_PREFIX}COSDynamic4${CMAKE_STATIC_LIBRARY_SUFFIX})
79 FIND_LIBRARY(OMNIORB_LIBRARY_COS4 NAMES COS4)
80 FIND_LIBRARY(OMNIORB_LIBRARY_COSDynamic4 NAMES COSDynamic4)
83 ##############################################################################
84 # find command line tools
85 ##############################################################################
87 FIND_PROGRAM( OMNIORB_IDL_COMPILER
88 NAMES omniidl PATHS bin/x86_win32
89 DOC "What is the path where omniidl (the idl compiler) can be found")
90 FIND_PROGRAM( OMNIORB_OMNINAMES_COMMAND
91 NAMES omniNames PATHS bin/x86_win32
92 DOC "What is the path where omniNames (the ORB server) can be found")
94 FIND_PROGRAM(OMNIORB_IDL_COMPILER NAMES omniidl)
95 FIND_PROGRAM(OMNIORB_NAMESERVER NAMES omniNames)
98 ##############################################################################
99 # find python back-end
100 ##############################################################################
102 SET(_py_version "${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
103 SET(CMAKE_FIND_ROOT_PATH ${CMAKE_PREFIX_PATH})
104 SET(_doc "Path to python-backend directory (omniidl_be) including python.py file")
106 FIND_PATH(OMNIORB_PYTHON_BACKEND
107 NAMES python.py PATHS "/lib/python/omniidl_be" DOC ${_doc})
109 FIND_PATH(OMNIORB_PYTHON_BACKEND
111 PATHS "/lib/python${_py_version}/site-packages/omniidl_be" "/usr/lib/omniidl/omniidl_be"
115 ##############################################################################
117 ##############################################################################
119 MARK_AS_ADVANCED(OMNIORB_DIR OMNIORB_INCLUDE_DIR)
120 MARK_AS_ADVANCED(OMNIORB_LIBRARY_omniORB4 OMNIORB_LIBRARY_omnithread OMNIORB_LIBRARY_omniDynamic4)
121 MARK_AS_ADVANCED(OMNIORB_IDL_COMPILER OMNIORB_NAMESERVER OMNIORB_VERSION)
122 MARK_AS_ADVANCED(OMNIORB_LIBRARY_COS4 OMNIORB_LIBRARY_COSDynamic4 OMNIORB_PYTHON_BACKEND)
124 SET(OMNIORB_LIBRARIES
125 ${OMNIORB_LIBRARY_omniORB4}
126 ${OMNIORB_LIBRARY_omnithread}
127 ${OMNIORB_LIBRARY_omniDynamic4})
129 IF(OMNIORB_LIBRARY_COS4)
130 LIST(APPEND OMNIORB_LIBRARIES ${OMNIORB_LIBRARY_COS4})
132 IF(OMNIORB_LIBRARY_COSDynamic4)
133 LIST(APPEND OMNIORB_LIBRARIES ${OMNIORB_LIBRARY_COSDynamic4})
136 # Optionaly, extract the the version number from the acconfig.h file:
137 # The version check is done at the very bottom of this file.
138 IF( EXISTS ${OMNIORB_INCLUDE_DIR}/omniORB4/acconfig.h )
139 FILE( READ ${OMNIORB_INCLUDE_DIR}/omniORB4/acconfig.h OMNIORB_ACCONFIG_H )
140 STRING( REGEX MATCH "#define[\t ]+PACKAGE_VERSION[\t ]+\"([0-9]+.[0-9]+.[0-9]+)\"" OMNIORB_ACCONFIG_H "${OMNIORB_ACCONFIG_H}" )
141 STRING( REGEX REPLACE ".*\"([0-9]+.[0-9]+.[0-9]+)\".*" "\\1" OMNIORB_VERSION "${OMNIORB_ACCONFIG_H}" )
143 SET( OMNIORB_VERSION "NOT-FOUND" )
144 ENDIF( EXISTS ${OMNIORB_INCLUDE_DIR}/omniORB4/acconfig.h )
146 SET(OMNIORB_IDLCXXFLAGS -Wba -nf)
147 SET(OMNIORB_IDLPYFLAGS -bpython)
148 IF (OMNIORB_PYTHON_BACKEND)
149 SET(OMNIORB_IDLPYFLAGS "-p ${OMNIORB_PYTHON_BACKEND} ${OMNIORB_IDLPYFLAGS}")
151 SET(IDLCXXFLAGS ${OMNIORB_IDLCXXFLAGS})
152 SET(IDLPYFLAGS ${OMNIORB_IDLPYFLAGS})
155 SET(OMNIORB_DEFINITIONS "-D__x86__ -DCOMP_CORBA_DOUBLE -DCOMP_CORBA_LONG")
157 SET(OMNIORB_DEFINITIONS "${OMNIORB_DEFINITIONS} -D__WIN32__")
160 SET(OMNIORB_DEFINITIONS "${OMNIORB_DEFINITIONS} -D__macos__")#for omnithread.h to be checked...
163 # Handle standard arguments:
164 INCLUDE(FindPackageHandleStandardArgs)
166 FIND_PACKAGE_HANDLE_STANDARD_ARGS(OmniORB
167 REQUIRED_VARS OMNIORB_INCLUDE_DIR OMNIORB_LIBRARY_omniORB4 OMNIORB_LIBRARY_omnithread
168 OMNIORB_LIBRARY_omniDynamic4 OMNIORB_IDL_COMPILER OMNIORB_PYTHON_BACKEND
169 VERSION_VAR OMNIORB_VERSION )
171 FIND_PACKAGE_HANDLE_STANDARD_ARGS(OmniORB
172 REQUIRED_VARS OMNIORB_INCLUDE_DIR OMNIORB_LIBRARY_omniORB4 OMNIORB_LIBRARY_omnithread
173 OMNIORB_LIBRARY_omniDynamic4 OMNIORB_IDL_COMPILER OMNIORB_PYTHON_BACKEND)