1###############################################################################
2# Find QHULL
3#
4# This sets the following variables:
5# QHULL_FOUND - True if QHULL was found.
6# QHULL_INCLUDE_DIRS - Directories containing the QHULL include files.
7# QHULL_LIBRARIES - Libraries needed to use QHULL.
8# QHULL_DEFINITIONS - Compiler flags for QHULL.
9# If QHULL_USE_STATIC is specified then look for static libraries ONLY else
10# look for shared ones
11
12if(QHULL_USE_STATIC)
13  set(QHULL_RELEASE_NAME qhullstatic_r)
14  set(QHULL_DEBUG_NAME qhullstatic_rd)
15else()
16  set(QHULL_RELEASE_NAME qhull_r qhull)
17  set(QHULL_DEBUG_NAME qhull_rd qhull_d)
18endif()
19
20find_file(QHULL_HEADER
21          NAMES libqhull/libqhull.h qhull.h
22          HINTS "${QHULL_ROOT}" "$ENV{QHULL_ROOT}" "${QHULL_INCLUDE_DIR}"
23          PATHS "$ENV{PROGRAMFILES}/QHull" "$ENV{PROGRAMW6432}/QHull"
24          PATH_SUFFIXES qhull src/libqhull libqhull include)
25
26set(QHULL_HEADER "${QHULL_HEADER}" CACHE INTERNAL "QHull header" FORCE )
27
28if(QHULL_HEADER)
29  get_filename_component(qhull_header ${QHULL_HEADER} NAME_WE)
30  if("${qhull_header}" STREQUAL "qhull")
31    get_filename_component(QHULL_INCLUDE_DIR ${QHULL_HEADER} PATH)
32  elseif("${qhull_header}" STREQUAL "libqhull")
33    get_filename_component(QHULL_INCLUDE_DIR ${QHULL_HEADER} PATH)
34    get_filename_component(QHULL_INCLUDE_DIR ${QHULL_INCLUDE_DIR} PATH)
35  endif()
36else()
37  set(QHULL_INCLUDE_DIR "QHULL_INCLUDE_DIR-NOTFOUND")
38endif()
39
40find_library(QHULL_LIBRARY
41             NAMES ${QHULL_RELEASE_NAME}
42             HINTS "${QHULL_ROOT}" "$ENV{QHULL_ROOT}"
43             PATHS "$ENV{PROGRAMFILES}/QHull" "$ENV{PROGRAMW6432}/QHull"
44             PATH_SUFFIXES project build bin lib)
45
46get_filename_component(QHULL_LIBRARY_NAME "${QHULL_LIBRARY}" NAME)
47
48find_library(QHULL_LIBRARY_DEBUG
49             NAMES ${QHULL_DEBUG_NAME} ${QHULL_RELEASE_NAME}
50             HINTS "${QHULL_ROOT}" "$ENV{QHULL_ROOT}"
51             PATHS "$ENV{PROGRAMFILES}/QHull" "$ENV{PROGRAMW6432}/QHull"
52             PATH_SUFFIXES project build bin lib debug/lib)
53
54if(NOT QHULL_LIBRARY_DEBUG)
55  set(QHULL_LIBRARY_DEBUG ${QHULL_LIBRARY})
56endif()
57
58get_filename_component(QHULL_LIBRARY_DEBUG_NAME "${QHULL_LIBRARY_DEBUG}" NAME)
59
60if(QHULL_INCLUDE_DIR AND QHULL_LIBRARY)
61
62  # Include directories
63  set(QHULL_INCLUDE_DIRS ${QHULL_INCLUDE_DIR})
64  unset(QHULL_INCLUDE_DIR)
65  mark_as_advanced(QHULL_INCLUDE_DIRS)
66
67  # Libraries
68  set(QHULL_LIBRARIES optimized ${QHULL_LIBRARY} debug ${QHULL_LIBRARY_DEBUG})
69  unset(QHULL_LIBRARY)
70  unset(QHULL_LIBRARY_DEBUG)
71  mark_as_advanced(QHULL_LIBRARIES)
72
73endif()
74
75include(FindPackageHandleStandardArgs)
76find_package_handle_standard_args(Qhull
77  FOUND_VAR QHULL_FOUND
78  REQUIRED_VARS QHULL_LIBRARIES QHULL_INCLUDE_DIRS
79)
80
81if(QHULL_FOUND)
82  set(HAVE_QHULL ON)
83  if(NOT QHULL_USE_STATIC)
84    add_definitions("-Dqh_QHpointer")
85    if(MSVC)
86      add_definitions("-Dqh_QHpointer_dllimport")
87    endif()
88  endif()
89  message(STATUS "QHULL found (include: ${QHULL_INCLUDE_DIRS}, lib: ${QHULL_LIBRARIES})")
90endif()
91