2 # Copyright (c) 2006, Peter Kümmel, <syntheticpp@gmx.net>
3 # 2012, Kornel Benko, <kornel@lyx.org>
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # 1. Redistributions of source code must retain the copyright
10 # notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 # 3. The name of the author may not be used to endorse or promote products
15 # derived from this software without specific prior written permission.
17 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
31 include(CheckFunctionExists)
32 macro(check_magic_functions_exists _varname)
35 set(CMAKE_REQUIRED_LIBRARIES ${Magic_LIBRARY})
37 foreach(fkt file open load close error)
38 check_function_exists(magic_${fkt} HAS_function_magic_${fkt})
39 if (NOT HAS_function_magic_${fkt})
41 message(STATUS "Function magic_${fkt} not found")
45 if (Magic_INCLUDE_DIR)
46 # Already in cache, be silent
47 set(Magic_FIND_QUIETLY TRUE)
50 find_path(Magic_INCLUDE_DIR magic.h PATHS
54 find_library(Magic_LIBRARY NAMES "magic")
56 check_magic_functions_exists(HAS_MAGIC_FUNCTIONS)
58 # handle the QUIET and REQUIRED arguments and DEFAULT_MSG
59 # set Magic_FOUND to TRUE if all listed variables are TRUE
61 include(FindPackageHandleStandardArgs)
62 find_package_handle_standard_args(Magic DEFAULT_MSG Magic_INCLUDE_DIR Magic_LIBRARY HAS_MAGIC_FUNCTIONS)