From bb825d02f8570c408f4266dfa4eff53d2d0bf4f6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 13 Mar 2015 22:33:31 +1100 Subject: CMake: unbundle LZO library Patch T41989 by @hasufell --- build_files/cmake/Modules/FindLZO.cmake | 68 +++++++++++++++++++++++++++++++++ build_files/cmake/macros.cmake | 8 +++- 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 build_files/cmake/Modules/FindLZO.cmake (limited to 'build_files') diff --git a/build_files/cmake/Modules/FindLZO.cmake b/build_files/cmake/Modules/FindLZO.cmake new file mode 100644 index 00000000000..a21aa0a03bb --- /dev/null +++ b/build_files/cmake/Modules/FindLZO.cmake @@ -0,0 +1,68 @@ +# - Find LZO library +# Find the native LZO includes and library +# This module defines +# LZO_INCLUDE_DIRS, where to find lzo1x.h, Set when +# LZO_INCLUDE_DIR is found. +# LZO_LIBRARIES, libraries to link against to use LZO. +# LZO_ROOT_DIR, The base directory to search for LZO. +# This can also be an environment variable. +# LZO_FOUND, If false, do not try to use LZO. +# +# also defined, but not for general use are +# LZO_LIBRARY, where to find the LZO library. + +#============================================================================= +# Copyright 2015 Blender Foundation. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= + +# If LZO_ROOT_DIR was defined in the environment, use it. +IF(NOT LZO_ROOT_DIR AND NOT $ENV{LZO_ROOT_DIR} STREQUAL "") + SET(LZO_ROOT_DIR $ENV{LZO_ROOT_DIR}) +ENDIF() + +SET(_lzo_SEARCH_DIRS + ${LZO_ROOT_DIR} + /usr/local + /sw # Fink + /opt/local # DarwinPorts + /opt/csw # Blastwave +) + +FIND_PATH(LZO_INCLUDE_DIR lzo/lzo1x.h + HINTS + ${_lzo_SEARCH_DIRS} + PATH_SUFFIXES + include +) + +FIND_LIBRARY(LZO_LIBRARY + NAMES + lzo2 + HINTS + ${_lzo_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib + ) + +# handle the QUIETLY and REQUIRED arguments and set LZO_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LZO DEFAULT_MSG + LZO_LIBRARY LZO_INCLUDE_DIR) + +IF(LZO_FOUND) + SET(LZO_LIBRARIES ${LZO_LIBRARY}) + SET(LZO_INCLUDE_DIRS ${LZO_INCLUDE_DIR}) +ENDIF(LZO_FOUND) + +MARK_AS_ADVANCED( + LZO_INCLUDE_DIR + LZO_LIBRARY +) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 33c764402a2..b266602fa63 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -321,6 +321,9 @@ macro(setup_liblinks endif() endif() + if(WITH_LZO AND WITH_SYSTEM_LZO) + target_link_libraries(${target} ${LZO_LIBRARIES}) + endif() if(WITH_SYSTEM_GLEW) target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES}) endif() @@ -539,7 +542,6 @@ macro(SETUP_BLENDER_SORTED_LIBS) ge_phys_dummy ge_phys_bullet bf_intern_smoke - extern_minilzo extern_lzma extern_colamd ge_logic_ketsji @@ -593,6 +595,10 @@ macro(SETUP_BLENDER_SORTED_LIBS) list(APPEND BLENDER_SORTED_LIBS extern_eltopo) endif() + if(NOT WITH_SYSTEM_LZO) + list(APPEND BLENDER_SORTED_LIBS extern_minilzo) + endif() + if(NOT WITH_SYSTEM_GLEW) list(APPEND BLENDER_SORTED_LIBS ${BLENDER_GLEW_LIBRARIES}) endif() -- cgit v1.2.3