diff --git a/CMakeLists.txt b/CMakeLists.txt index ae43c8933d..1f6daf3101 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -423,7 +423,10 @@ endif() find_package(Qt4 REQUIRED) - +find_package(Magic) +if(Magic_FOUND) + set(HAVE_MAGIC_H 1) +endif() include_directories(${TOP_BINARY_DIR} ${TOP_SRC_DIR}/src) diff --git a/development/cmake/configCompiler.h.cmake b/development/cmake/configCompiler.h.cmake index c212264071..5af2eee2f7 100644 --- a/development/cmake/configCompiler.h.cmake +++ b/development/cmake/configCompiler.h.cmake @@ -82,6 +82,7 @@ #cmakedefine HAVE_LC_MESSAGES 1 #cmakedefine HAVE_SSTREAM 1 #cmakedefine HAVE_ARGZ_H 1 +#cmakedefine HAVE_MAGIC_H 1 #cmakedefine SIZEOF_WCHAR_T_IS_2 1 #cmakedefine SIZEOF_WCHAR_T_IS_4 1 diff --git a/development/cmake/modules/FindMagic.cmake b/development/cmake/modules/FindMagic.cmake new file mode 100644 index 0000000000..7690fb9839 --- /dev/null +++ b/development/cmake/modules/FindMagic.cmake @@ -0,0 +1,62 @@ +# +# Copyright (c) 2006, Peter Kümmel, +# 2012, Kornel Benko, +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) + +if (Magic_INCLUDE_DIR) + # Already in cache, be silent + set(Magic_FIND_QUIETLY TRUE) +endif() + +find_path(Magic_INCLUDE_DIR magic.h PATHS + /usr/include + /usr/local/include) + +find_library(Magic_LIBRARY NAMES "magic") + +include(CheckFunctionExists) +check_function_exists(magic_open HAVE_HAVE_MAGIC_OPEN) +if(Magic_INCLUDE_DIR AND Magic_LIBRARY) + set(Magic_FOUND TRUE) +endif() + +if(Magic_FOUND) + if(NOT Magic_FIND_QUIETLY) + message(STATUS "Found magic library: ${Magic_LIBRARY}") + endif() +else() + if(Magic_FIND_REQUIRED) + message(STATUS "Looked for magic library named magic.") + message(STATUS "Found no acceptable magic library. This is fatal.") + message(STATUS "magic header: ${Magic_INCLUDE_DIR}") + message(STATUS "magic lib : ${Magic_LIBRARY}") + message(FATAL_ERROR "Could NOT find magic library") + endif() +endif() + +mark_as_advanced(Magic_LIBRARY Magic_INCLUDE_DIR) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 86a7ed4c22..3f3ebe9ac4 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -142,6 +142,9 @@ endif() if(ENCHANT_FOUND) target_link_libraries(${_lyx} ${ENCHANT_LIBRARY}) endif() +if(Magic_FOUND) + target_link_libraries(${_lyx} ${Magic_LIBRARY}) +endif() if(APPLE) target_link_libraries(${_lyx} "-bind_at_load")