Salome HOME
*** empty log message ***
[modules/kernel.git] / salome_adm / cmake_files / FindOMNIORB.cmake
1 #  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 #  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 #  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 #
6 #  This library is free software; you can redistribute it and/or
7 #  modify it under the terms of the GNU Lesser General Public
8 #  License as published by the Free Software Foundation; either
9 #  version 2.1 of the License.
10 #
11 #  This library is distributed in the hope that it will be useful,
12 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 #  Lesser General Public License for more details.
15 #
16 #  You should have received a copy of the GNU Lesser General Public
17 #  License along with this library; if not, write to the Free Software
18 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 #
20 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 #
22 # ------
23
24 MESSAGE(STATUS "Check for omniorb ...")
25
26 # ------
27
28 IF(OMNIORB_IS_MANDATORY STREQUAL 0)
29   SET(OMNIORB_IS_MANDATORY 0)
30   SET(OMNIORB_IS_OPTIONAL 1)
31 ENDIF(OMNIORB_IS_MANDATORY STREQUAL 0)
32 IF(OMNIORB_IS_OPTIONAL STREQUAL 0)
33   SET(OMNIORB_IS_MANDATORY 1)
34   SET(OMNIORB_IS_OPTIONAL 0)
35 ENDIF(OMNIORB_IS_OPTIONAL STREQUAL 0)
36 IF(NOT OMNIORB_IS_MANDATORY AND NOT OMNIORB_IS_OPTIONAL)
37   SET(OMNIORB_IS_MANDATORY 1)
38   SET(OMNIORB_IS_OPTIONAL 0)
39 ENDIF(NOT OMNIORB_IS_MANDATORY AND NOT OMNIORB_IS_OPTIONAL)
40
41 # ------
42
43 SET(OMNIORB_STATUS 1)
44 IF(WITHOUT_OMNIORB OR WITH_OMNIORB STREQUAL 0)
45   SET(OMNIORB_STATUS 0)
46   MESSAGE(STATUS "omniorb disabled from command line.")
47 ENDIF(WITHOUT_OMNIORB OR WITH_OMNIORB STREQUAL 0)
48
49 # ------
50
51 IF(OMNIORB_STATUS)
52   IF(WITH_OMNIORB)
53     SET(OMNIORB_ROOT_USER ${WITH_OMNIORB})
54   ENDIF(WITH_OMNIORB)
55   IF(NOT OMNIORB_ROOT_USER)
56     SET(OMNIORB_ROOT_USER $ENV{OMNIORB_ROOT})
57   ENDIF(NOT OMNIORB_ROOT_USER)
58   IF(NOT OMNIORB_ROOT_USER)
59     SET(OMNIORB_ROOT_USER $ENV{OMNIORBHOME})
60   ENDIF(NOT OMNIORB_ROOT_USER)
61 ENDIF(OMNIORB_STATUS)
62
63 # ------
64
65 IF(OMNIORB_STATUS)
66   SET(OMNIIDL_EXECUTABLE_TO_FIND omniidl)
67   IF(OMNIORB_ROOT_USER)
68     FIND_PROGRAM(OMNIIDL_EXECUTABLE ${OMNIIDL_EXECUTABLE_TO_FIND} PATHS ${OMNIORB_ROOT_USER}/bin)
69   ELSE(OMNIORB_ROOT_USER)
70     FIND_PROGRAM(OMNIIDL_EXECUTABLE ${OMNIIDL_EXECUTABLE_TO_FIND})
71   ENDIF(OMNIORB_ROOT_USER)
72   IF(OMNIIDL_EXECUTABLE)
73     MESSAGE(STATUS "${OMNIIDL_EXECUTABLE_TO_FIND} found: ${OMNIIDL_EXECUTABLE}")
74     IF(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND})
75     ELSE(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND})
76       SET(OMNIORB_ROOT_USER ${OMNIIDL_EXECUTABLE})
77       GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH)
78       IF(WINDOWS)
79         GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH)
80       ENDIF(WINDOWS)
81       GET_FILENAME_COMPONENT(OMNIORB_ROOT_USER ${OMNIORB_ROOT_USER} PATH)
82     ENDIF(OMNIORB_EXECUTABLE STREQUAL /usr/bin/${OMNIIDL_EXECUTABLE_TO_FIND})
83   ELSE(OMNIIDL_EXECUTABLE)
84     MESSAGE(STATUS "${OMNIIDL_EXECUTABLE_TO_FIND} not found, try to use WITH_OMNIORB option or OMNIORBHOME environment variable")
85     SET(OMNIORB_STATUS 0)
86   ENDIF(OMNIIDL_EXECUTABLE)
87 ENDIF(OMNIORB_STATUS)
88
89 # ------
90
91 IF(OMNIORB_STATUS)
92   IF(OMNIORB_ROOT_USER)
93     SET(OMNIORB_FIND_PATHS_OPTION NO_DEFAULT_PATH)
94   ELSE(OMNIORB_ROOT_USER)
95     SET(OMNIORB_FIND_PATHS_OPTION)
96   ENDIF(OMNIORB_ROOT_USER)
97 ENDIF(OMNIORB_STATUS)
98
99 # ------
100
101 IF(OMNIORB_STATUS)
102   SET(OMNIORB_INCLUDES)
103 ENDIF(OMNIORB_STATUS)
104 IF(OMNIORB_STATUS)
105   IF(OMNIORB_ROOT_USER)
106     SET(OMNIORB_INCLUDE_PATHS ${OMNIORB_ROOT_USER}/include)
107   ELSE(OMNIORB_ROOT_USER)
108     SET(OMNIORB_INCLUDE_PATHS)
109   ENDIF(OMNIORB_ROOT_USER)
110   SET(OMNIORB_INCLUDE_TO_FIND omniORB4/CORBA.h)
111   FIND_PATH(OMNIORB_INCLUDE_DIR1 ${OMNIORB_INCLUDE_TO_FIND} PATHS ${OMNIORB_INCLUDE_PATHS} ${OMNIORB_FIND_PATHS_OPTION})
112   IF(OMNIORB_INCLUDE_DIR1)
113     SET(OMNIORB_INCLUDES ${OMNIORB_INCLUDES} -I${OMNIORB_INCLUDE_DIR1})
114     MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} found in ${OMNIORB_INCLUDE_DIR1}")
115   ELSE(OMNIORB_INCLUDE_DIR1)
116     SET(OMNIORB_STATUS 0)
117     IF(OMNIORB_ROOT_USER)
118       MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found in ${OMNIORB_INCLUDE_PATHS}, check your OMNIORB installation.")
119     ELSE(OMNIORB_ROOT_USER)
120       MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found on system, try to use WITH_OMNIORB option or OMNIORB_ROOT environment variable.")
121     ENDIF(OMNIORB_ROOT_USER)
122   ENDIF(OMNIORB_INCLUDE_DIR1)
123 ENDIF(OMNIORB_STATUS)
124 IF(OMNIORB_STATUS)
125   IF(OMNIORB_ROOT_USER)
126     SET(OMNIORB_INCLUDE_PATHS ${OMNIORB_ROOT_USER}/include/omniORB4)
127   ELSE(OMNIORB_ROOT_USER)
128     SET(OMNIORB_INCLUDE_PATHS /usr/include/omniORB4)
129   ENDIF(OMNIORB_ROOT_USER)
130   SET(OMNIORB_INCLUDE_TO_FIND CORBA.h)
131   FIND_PATH(OMNIORB_INCLUDE_DIR2 ${OMNIORB_INCLUDE_TO_FIND} PATHS ${OMNIORB_INCLUDE_PATHS} ${OMNIORB_FIND_PATHS_OPTION})
132   IF(OMNIORB_INCLUDE_DIR2)
133     SET(OMNIORB_INCLUDES ${OMNIORB_INCLUDES} -I${OMNIORB_INCLUDE_DIR2})
134     MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} found in ${OMNIORB_INCLUDE_DIR2}")
135   ELSE(OMNIORB_INCLUDE_DIR2)
136     SET(OMNIORB_STATUS 0)
137     MESSAGE(STATUS "${OMNIORB_INCLUDE_TO_FIND} not found in ${OMNIORB_INCLUDE_PATHS}, check your OMNIORB installation.")
138   ENDIF(OMNIORB_INCLUDE_DIR2)
139 ENDIF(OMNIORB_STATUS)
140
141 # ------
142
143 IF(OMNIORB_STATUS)
144   SET(OMNIORB_CXXFLAGS)
145   # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DOMNIORB_VERSION=4)
146   SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__x86__)
147   SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DCOMP_CORBA_DOUBLE)
148   SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -DCOMP_CORBA_LONG)
149   IF(WINDOWS)
150     SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__WIN32__)
151     #    #  #  # SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D_WIN32_WINNT=0x0400)
152     #    SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__NT__)
153     #    SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__OSVERSION__=4)
154     #  ELSE(WINDOWS)
155     #    SET(OMNIORB_CXXFLAGS ${OMNIORB_CXXFLAGS} -D__linux__)
156   ENDIF(WINDOWS)
157   #  IF(WINDOWS)
158   #    SET(OMNIORB_LIBS ws2_32.lib mswsock.lib advapi32.lib ${OMNIORB_LIBS})
159   #  ENDIF(WINDOWS)
160 ENDIF(OMNIORB_STATUS)
161
162 # ----
163
164 IF(OMNIORB_STATUS)
165   IF(OMNIORB_ROOT_USER)
166     IF(WINDOWS)
167       SET(OMNIORB_LIB_PATHS ${OMNIORB_ROOT_USER}/lib/x86_win32)
168     ELSE(WINDOWS)
169       SET(OMNIORB_LIB_PATHS ${OMNIORB_ROOT_USER}/lib)
170     ENDIF(WINDOWS)
171   ELSE(OMNIORB_ROOT_USER)
172     SET(OMNIORB_LIB_PATHS)
173   ENDIF(OMNIORB_ROOT_USER)
174 ENDIF(OMNIORB_STATUS)
175
176 IF(OMNIORB_STATUS)
177   IF(WINDOWS)
178     IF(CMAKE_BUILD_TYPE STREQUAL Release)
179       SET(OMNIORB_LIB_SUFFIX _rt)
180     ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
181       SET(OMNIORB_LIB_SUFFIX _rtd)
182     ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
183   ELSE(WINDOWS)
184     SET(OMNIORB_LIB_SUFFIX)
185   ENDIF(WINDOWS)
186 ENDIF(OMNIORB_STATUS)
187
188 SET(OMNIORB_LIBS)
189 FOREACH(lib omniORB4 omniDynamic4 COS4 COSDynamic4 omnithread)
190   IF(OMNIORB_STATUS)
191     FIND_LIBRARY(${lib}${OMNIORB_LIB_SUFFIX} ${lib}${OMNIORB_LIB_SUFFIX} PATHS ${OMNIORB_LIB_PATHS} ${OMNIORB_FIND_PATHS_OPTION})
192     IF(${lib}${OMNIORB_LIB_SUFFIX})
193       SET(OMNIORB_LIBS ${OMNIORB_LIBS} ${${lib}${OMNIORB_LIB_SUFFIX}})
194       MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib found: ${${lib}${OMNIORB_LIB_SUFFIX}}")
195     ELSE(${lib}${OMNIORB_LIB_SUFFIX})
196       SET(OMNIORB_STATUS 0)
197       IF(OMNIORB_ROOT_USER)
198         MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib not found in ${OMNIORB_LIB_PATHS}, check your OMNIORB installation.")
199       ELSE(OMNIORB_ROOT_USER)
200         MESSAGE(STATUS "${lib}${OMNIORB_LIB_SUFFIX} lib not found on system, try to use WITH_OMNIORB option or OMNIORB_ROOT environment variable.")
201       ENDIF(OMNIORB_ROOT_USER)
202     ENDIF(${lib}${OMNIORB_LIB_SUFFIX})
203   ENDIF(OMNIORB_STATUS)
204 ENDFOREACH(lib omniORB4 omniDynamic4 COS4 COSDynamic4 omnithread)
205
206 # ----------------
207
208 IF(OMNIORB_STATUS)
209   SET(OMNIORB_IDL_PYTHON $ENV{OMNIIDL_PYTHON})
210   IF(NOT OMNIORB_IDL_PYTHON)
211     SET(OMNIORB_IDL_PYTHON ${OMNIIDL_EXECUTABLE})
212   ENDIF(NOT OMNIORB_IDL_PYTHON)
213 ENDIF(OMNIORB_STATUS)
214
215 # ----
216
217 IF(OMNIORB_STATUS)
218   SET(CORBA_GEN 1)
219   SET(OMNIORB_IDL ${OMNIIDL_EXECUTABLE})
220   SET(CORBA_INCLUDES ${OMNIORB_INCLUDES})
221   SET(CORBA_CXXFLAGS ${OMNIORB_CXXFLAGS})
222   SET(CORBA_LIBS ${OMNIORB_LIBS})
223   SET(OMNIORB_IDLCXXFLAGS -Wba -nf)
224   SET(OMNIORB_IDLPYFLAGS -bpython)
225   SET(IDLCXXFLAGS ${OMNIORB_IDLCXXFLAGS})
226   SET(IDLPYFLAGS ${OMNIORB_IDLPYFLAGS})
227   SET(IDL_CLN_H .hh)
228   SET(IDL_SRV_H .hh)
229 ELSE(OMNIORB_STATUS)
230   SET(CORBA_GEN 0)
231   IF(OMNIORB_IS_MANDATORY)
232     MESSAGE(FATAL_ERROR "omniorb not found ... mandatory ... abort")
233   ELSE(OMNIORB_IS_MANDATORY)
234     MESSAGE(STATUS "omniorb not found ... optional ... disabled")
235   ENDIF(OMNIORB_IS_MANDATORY)
236 ENDIF(OMNIORB_STATUS)
237
238 # ----