Adding the cmake subdir
[kdeedu-porting.git] / cmake / modules / FindOpenBabel2.cmake
blobc44605debb245b431cbaad25c95c6129b2e236a8
1 # - Try to find OpenBabel2
2 # Once done this will define
4 #  OPENBABEL2_FOUND - system has OpenBabel2
5 #  OPENBABEL2_INCLUDE_DIR - the OpenBabel2 include directory
6 #  OPENBABEL2_LIBRARIES - Link these to use OpenBabel2
7 # Copyright (c) 2006, 2007 Carsten Niehaus, <cniehaus@gmx.de>
8 # Redistribution and use is allowed according to the terms of the BSD license.
9 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
11 if (OPENBABEL2_INCLUDE_DIR AND OPENBABEL2_LIBRARIES AND OPENBABEL_MINI_FOUND)
13   # in cache already
14   set(OPENBABEL2_FOUND TRUE)
16 else (OPENBABEL2_INCLUDE_DIR AND OPENBABEL2_LIBRARIES AND OPENBABEL_MINI_FOUND)
17 if(NOT WIN32)
18   include(UsePkgConfig)
20   pkgconfig(openbabel-2.0 _obIncDir _obLinkDir _obLinkFlags _obCflags)
22   # query pkg-config asking for a openbabel >= 2.2.0
23   exec_program(${PKGCONFIG_EXECUTABLE} ARGS --atleast-version=2.1.0 openbabel-2.0 RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _pkgconfigDevNull )
24   if(_return_VALUE STREQUAL "0")
25         set(OPENBABEL_MINI_FOUND TRUE)
26   endif(_return_VALUE STREQUAL "0")
28   exec_program(${PKGCONFIG_EXECUTABLE} ARGS --variable=pkgincludedir openbabel-2.0 RETURN_VALUE _return_VALUE OUTPUT_VARIABLE _obPkgIncDir )
29   if (_obPkgIncDir)
30     set(_obIncDir "${_obPkgIncDir}")
31   endif (_obPkgIncDir)
32 else(NOT WIN32)
33   set(OPENBABEL_MINI_FOUND TRUE)
34 endif(NOT WIN32)
36   if(OPENBABEL_MINI_FOUND)
38     find_path(OPENBABEL2_INCLUDE_DIR openbabel/obconversion.h
39       PATHS
40       ${_obIncDir}
41       ${GNUWIN32_DIR}/include
42       $ENV{OPENBABEL2_INCLUDE_DIR}
43     )
45     if(WIN32)
46       if(NOT OPENBABEL2_INCLUDE_DIR)
47         find_path(OPENBABEL2_INCLUDE_DIR openbabel-2.0/openbabel/obconversion.h
48           PATHS
49           ${_obIncDir}
50           ${GNUWIN32_DIR}/include
51           $ENV{OPENBABEL2_INCLUDE_DIR}
52         )
53         if(OPENBABEL2_INCLUDE_DIR)
54           set(OPENBABEL2_INCLUDE_DIR ${OPENBABEL2_INCLUDE_DIR}/openbabel-2.0)
55         endif(OPENBABEL2_INCLUDE_DIR)
56       endif(NOT OPENBABEL2_INCLUDE_DIR)
57     endif(WIN32)
59     find_library(OPENBABEL2_LIBRARIES NAMES openbabel
60       PATHS
61       ${_obLinkDir}
62       ${GNUWIN32_DIR}/lib
63       $ENV{OPENBABEL2_LIBRARIES}
64     )
65   endif(OPENBABEL_MINI_FOUND)
67   if(OPENBABEL2_INCLUDE_DIR AND OPENBABEL2_LIBRARIES AND OPENBABEL_MINI_FOUND)
68     set(OPENBABEL2_FOUND TRUE)
69   endif(OPENBABEL2_INCLUDE_DIR AND OPENBABEL2_LIBRARIES AND OPENBABEL_MINI_FOUND)
71   if (OPENBABEL2_FOUND)
72     if (NOT OpenBabel2_FIND_QUIETLY)
73       message(STATUS "Found OpenBabel 2.2 or later: ${OPENBABEL2_LIBRARIES}")
74     endif (NOT OpenBabel2_FIND_QUIETLY)
75   else (OPENBABEL2_FOUND)
76     if (OpenBabel2_FIND_REQUIRED)
77       message(FATAL_ERROR "Could NOT find OpenBabel 2.2 or later ")
78     endif (OpenBabel2_FIND_REQUIRED)
79   endif (OPENBABEL2_FOUND)
81   mark_as_advanced(OPENBABEL2_INCLUDE_DIR OPENBABEL2_LIBRARIES)
83 endif (OPENBABEL2_INCLUDE_DIR AND OPENBABEL2_LIBRARIES AND OPENBABEL_MINI_FOUND)
85 # Search for Open Babel2 executable
86 if(OPENBABEL2_EXECUTABLE)
88   # in cache already
89   set(OPENBABEL2_EXECUTABLE_FOUND TRUE)
91 else(OPENBABEL2_EXECUTABLE)
92   find_program(OPENBABEL2_EXECUTABLE NAMES babel
93     PATHS
94     [HKEY_CURRENT_USER\\SOFTWARE\\OpenBabel\ 2.2.0]
95     $ENV{OPENBABEL2_EXECUTABLE}
96   )
98   if(OPENBABEL2_EXECUTABLE)
99     set(OPENBABEL2_EXECUTABLE_FOUND TRUE)
100   endif(OPENBABEL2_EXECUTABLE)
102   if(OPENBABEL2_EXECUTABLE_FOUND)
103     message(STATUS "Found OpenBabel2 executable: ${OPENBABEL2_EXECUTABLE}")
104   endif(OPENBABEL2_EXECUTABLE_FOUND)
106 endif(OPENBABEL2_EXECUTABLE)