Salome HOME
Merge from V6_main 01/04/2013
[modules/med.git] / adm_local / cmake_files / FindXDR.cmake
1 # Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
2 #
3 # This library is free software; you can redistribute it and/or
4 # modify it under the terms of the GNU Lesser General Public
5 # License as published by the Free Software Foundation; either
6 # version 2.1 of the License.
7 #
8 # This library is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 # Lesser General Public License for more details.
12 #
13 # You should have received a copy of the GNU Lesser General Public
14 # License along with this library; if not, write to the Free Software
15 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 #
17 # See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 #
19
20 # ------
21 #
22 MESSAGE(STATUS "Check for xdr ...")
23
24 # ------
25
26 IF(XDR_IS_MANDATORY STREQUAL 0)
27   SET(XDR_IS_MANDATORY 0)
28   SET(XDR_IS_OPTIONAL 1)
29 ENDIF(XDR_IS_MANDATORY STREQUAL 0)
30 IF(XDR_IS_OPTIONAL STREQUAL 0)
31   SET(XDR_IS_MANDATORY 1)
32   SET(XDR_IS_OPTIONAL 0)
33 ENDIF(XDR_IS_OPTIONAL STREQUAL 0)
34 IF(NOT XDR_IS_MANDATORY AND NOT XDR_IS_OPTIONAL)
35   SET(XDR_IS_MANDATORY 0)
36   SET(XDR_IS_OPTIONAL 1)
37 ENDIF(NOT XDR_IS_MANDATORY AND NOT XDR_IS_OPTIONAL)
38
39 # ------
40
41 SET(XDR_STATUS 1)
42 IF(WITHOUT_XDR OR WITH_XDR STREQUAL 0)
43   SET(XDR_STATUS 0)
44   MESSAGE(STATUS "xdr disabled from command line.")
45 ENDIF(WITHOUT_XDR OR WITH_XDR STREQUAL 0)
46
47 # ------
48
49 IF(XDR_STATUS)
50   IF(WITH_XDR)
51     SET(XDR_ROOT_USER ${WITH_XDR})
52   ELSE(WITH_XDR)
53     SET(XDR_ROOT_USER $ENV{XDR_ROOT})
54   ENDIF(WITH_XDR)
55 ENDIF(XDR_STATUS)
56
57 # -----
58
59 IF(XDR_STATUS)
60   IF(XDR_ROOT_USER)
61     SET(XDR_FIND_PATHS_OPTION NO_DEFAULT_PATH)
62   ELSE(XDR_ROOT_USER)
63     SET(XDR_FIND_PATHS_OPTION)
64   ENDIF(XDR_ROOT_USER)
65 ENDIF(XDR_STATUS)
66
67 # -----
68
69 IF(XDR_STATUS)
70   IF(XDR_ROOT_USER)
71     SET(XDR_INCLUDE_PATHS ${XDR_ROOT_USER} ${XDR_ROOT_USER}/include)
72   ELSE(XDR_ROOT_USER)
73     SET(XDR_INCLUDE_PATHS)
74   ENDIF(XDR_ROOT_USER)
75   SET(XDR_INCLUDE_TO_FIND rpc/xdr.h)
76   FIND_PATH(XDR_INCLUDE_DIR ${XDR_INCLUDE_TO_FIND} PATHS ${XDR_INCLUDE_PATHS} ${XDR_FIND_PATHS_OPTION})
77   IF(XDR_INCLUDE_DIR)
78     IF(XDR_ROOT_USER)
79       SET(XDR_INCLUDES -I${XDR_INCLUDE_DIR} -I${XDR_INCLUDE_DIR}/src/msvc)# to remove
80       SET(XDR_INCLUDE_DIRS ${XDR_INCLUDE_DIR} ${XDR_INCLUDE_DIR}/src/msvc)
81     ENDIF(XDR_ROOT_USER)
82     MESSAGE(STATUS "${XDR_INCLUDE_TO_FIND} found in ${XDR_INCLUDE_DIR}")
83   ELSE(XDR_INCLUDE_DIR)
84     SET(XDR_STATUS 0)
85     IF(XDR_ROOT_USER)
86       MESSAGE(STATUS "${XDR_INCLUDE_TO_FIND} not found in ${XDR_INCLUDE_PATHS}, check your XDR installation.")
87     ELSE(XDR_ROOT_USER)
88       MESSAGE(STATUS "${XDR_INCLUDE_TO_FIND} not found on system, try to use WITH_XDR option or XDR_ROOT environment variable.")
89     ENDIF(XDR_ROOT_USER)
90   ENDIF(XDR_INCLUDE_DIR)
91 ENDIF(XDR_STATUS)
92
93 # ----
94
95 IF(XDR_STATUS)
96   IF(XDR_ROOT_USER)
97     SET(XDR_LIB_PATHS ${XDR_ROOT_USER}/lib)
98   ELSE(XDR_ROOT_USER)
99     SET(XDR_LIB_PATHS)
100   ENDIF(XDR_ROOT_USER)
101 ENDIF(XDR_STATUS)
102
103 IF(XDR_STATUS)
104   FIND_LIBRARY(XDR_LIB xdr PATHS ${XDR_LIB_PATHS} ${XDR_FIND_PATHS_OPTION})
105   SET(XDR_LIBS)
106   IF(XDR_LIB)
107     SET(XDR_LIBS ${XDR_LIBS} ${XDR_LIB})
108     MESSAGE(STATUS "xdr lib found: ${XDR_LIB}")
109   ELSE(XDR_LIB)
110     SET(XDR_STATUS 0)
111     IF(XDR_ROOT_USER)
112       MESSAGE(STATUS "xdr lib not found in ${XDR_LIB_PATHS}, check your XDR installation.")
113     ELSE(XDR_ROOT_USER)
114       MESSAGE(STATUS "xdr lib not found on system, try to use WITH_XDR option or XDR_ROOT environment variable.")
115     ENDIF(XDR_ROOT_USER)
116   ENDIF(XDR_LIB)
117 ENDIF(XDR_STATUS)
118
119 # ----
120
121 IF(XDR_STATUS)
122   SET(XDR_IS_OK 1)
123   SET(XDR_CPPFLAGS -DHAS_XDR ${XDR_INCLUDES})# to remove
124   SET(XDR_DEFINITIONS "-DHAS_XDR")
125 ELSE(XDR_STATUS)
126   IF(XDR_IS_MANDATORY)
127     MESSAGE(FATAL_ERROR "xdr not found ... mandatory ... abort")
128   ELSE(XDR_IS_MANDATORY)
129     MESSAGE(STATUS "xdr not found ... optional ... disabled")
130   ENDIF(XDR_IS_MANDATORY)
131 ENDIF(XDR_STATUS)
132
133 # ------