/usr/share/dune/cmake/modules/FindPsurface.cmake is in libdune-grid-dev 2.5.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | # .. cmake_module::
#
# Module that checks whether psurface is available and usable.
#
# Variables used by this module which you may want to set:
#
# :ref:`PSURFACE_ROOT`
# Path list to search for psurface
#
# Sets the follwing variables:
#
# :code:`PSURFACE_FOUND`
# True if PSurface available and usable.
#
# :code:`PSURFACE_INCLUDE_DIRS`
# Path to the PSurface include dirs.
#
# :code:`PSURFACE_LIBRARIES`
# Name to the PSurface library.
#
# .. cmake_variable:: PSURFACE_ROOT
#
# You may set this variable to have :ref:`FindPsurface` look
# for the Psurface package in the given path before inspecting
# system paths.
#
# look for header files, only at positions given by the user
find_path(PSURFACE_INCLUDE_DIR
NAMES "psurface/PSurface.h"
PATHS ${PSURFACE_PREFIX} ${PSURFACE_ROOT}
PATH_SUFFIXES "include"
NO_DEFAULT_PATH
)
# look for header files, including default paths
find_path(PSURFACE_INCLUDE_DIR
NAMES "psurface/PSurface.h"
PATH_SUFFIXES "include"
)
# look for library, only at positions given by the user
find_library(PSURFACE_LIBRARY
NAMES "psurface"
PATHS ${PSURFACE_PREFIX} ${PSURFACE_ROOT}
PATH_SUFFIXES "lib" "lib32" "lib64"
NO_DEFAULT_PATH
)
# look for library files, including default paths
find_library(PSURFACE_LIBRARY
NAMES "psurface"
PATH_SUFFIXES "lib" "lib32" "lib64"
)
# check version specific macros
include(CheckCXXSourceCompiles)
set(PSURFACE_WITH_VERSION "psurface 1.3" CACHE STRING
"Human readable string containing psurface version information.")
# Try to find psurface with pkg-config (for psurface 2.0 or newer)
include(FindPkgConfig)
pkg_search_module(PKG_PSURFACE psurface)
if(NOT PKG_PSURFACE_FOUND)
# first only at positions given by the user
find_file(PATH_PKG_PSURFACE
NAMES "psurface.pc"
PATHS ${PSURFACE_ROOT}
PATH_SUFFIXES lib/pkgconfig lib32/pkgconfig lib64/pkgconfig
NO_DEFAULT_PATH)
# including default paths
find_file(PATH_PKG_PSURFACE
NAMES "psurface.pc"
PATH_SUFFIXES lib/pkgconfig lib32/pkgconfig lib64/pkgconfig)
# try again with path temporarilly added to PKG_CONFIG_PATH
set(REM_PKG_CONFIG_PATH "$ENV{PKG_CONFIG_PATH}")
get_filename_component(DIR_PKG_PSURFACE "${PATH_PKG_PSURFACE}" PATH)
set(ENV{PKG_CONFIG_PATH} "${PSURFACE_ROOT}:${DIR_PKG_PSURFACE}:${PKG_CONFIG_PATH}")
pkg_check_modules(PKG_PSURFACE psurface)
set(ENV{PKG_CONFIG_PATH} REM_PKG_CONFIG_PATH)
endif()
if(PKG_PSURFACE_FOUND)
set(HAVE_PSURFACE_2_0 1)
set(PSURFACE_WITH_VERSION "psurface >= 2.0" CACHE STRING
"Human readable string containing psurface version information.")
endif()
# re-set PKG_CONFIG_PATH
set(PKG_CONFIG_PATH ${PKG_CONFIG_PATH_STORE})
# behave like a CMake module is supposed to behave
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
"psurface"
DEFAULT_MSG
PSURFACE_INCLUDE_DIR
PSURFACE_LIBRARY
)
mark_as_advanced(PSURFACE_INCLUDE_DIR PSURFACE_LIBRARY PKG_PSURFACE_FOUND)
# if both headers and library are found, store results
if(PSURFACE_FOUND)
set(PSURFACE_INCLUDE_DIRS ${PSURFACE_INCLUDE_DIR})
set(PSURFACE_LIBRARIES ${PSURFACE_LIBRARY})
# log result
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
"Determining location of ${PSURFACE_WITH_VERSION} succeeded:\n"
"Include directory: ${PSURFACE_INCLUDE_DIRS}\n"
"Library directory: ${PSURFACE_LIBRARIES}\n\n")
set(PSURFACE_DUNE_COMPILE_FLAGS "-I${PSURFACE_INCLUDE_DIRS}"
CACHE STRING "Compile flags used by DUNE when compiling psurface programs")
set(PSURFACE_DUNE_LIBRARIES ${PSURFACE_LIBRARIES}
CACHE STRING "Libraries used by DUNE when linking psurface programs")
else(PSURFACE_FOUND)
# log errornous result
file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
"Determining location of psurface failed:\n"
"Include directory: ${PSURFACE_INCLUDE_DIRS}\n"
"Library directory: ${PSURFACE_LIBRARIES}\n\n")
endif(PSURFACE_FOUND)
# set HAVE_PSURFACE for config.h
set(HAVE_PSURFACE ${PSURFACE_FOUND})
# register all psurface related flags
if(PSURFACE_FOUND)
dune_register_package_flags(INCLUDE_DIRS "${PSURFACE_INCLUDE_DIRS}"
LIBRARIES "${PSURFACE_LIBRARIES}")
endif()
|