CMake: unbundle LZO library
Patch T41989 by @hasufell
This commit is contained in:
parent
61eab743f1
commit
bb825d02f8
@ -309,6 +309,9 @@ endif()
|
|||||||
# Compression
|
# Compression
|
||||||
option(WITH_LZO "Enable fast LZO compression (used for pointcache)" ON)
|
option(WITH_LZO "Enable fast LZO compression (used for pointcache)" ON)
|
||||||
option(WITH_LZMA "Enable best LZMA compression, (used for pointcache)" ON)
|
option(WITH_LZMA "Enable best LZMA compression, (used for pointcache)" ON)
|
||||||
|
if(UNIX AND NOT APPLE)
|
||||||
|
option(WITH_SYSTEM_LZO "Use the system LZO library" ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Camera/motion tracking
|
# Camera/motion tracking
|
||||||
option(WITH_LIBMV "Enable libmv structure from motion library" ON)
|
option(WITH_LIBMV "Enable libmv structure from motion library" ON)
|
||||||
@ -797,6 +800,13 @@ if(UNIX AND NOT APPLE)
|
|||||||
find_package_wrapper(ZLIB REQUIRED)
|
find_package_wrapper(ZLIB REQUIRED)
|
||||||
find_package_wrapper(Freetype REQUIRED)
|
find_package_wrapper(Freetype REQUIRED)
|
||||||
|
|
||||||
|
if(WITH_LZO AND WITH_SYSTEM_LZO)
|
||||||
|
find_package_wrapper(LZO)
|
||||||
|
if(NOT LZO_FOUND)
|
||||||
|
message(FATAL_ERROR "Failed finding system LZO version!")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(WITH_PYTHON)
|
if(WITH_PYTHON)
|
||||||
# No way to set py34. remove for now.
|
# No way to set py34. remove for now.
|
||||||
# find_package(PythonLibs)
|
# find_package(PythonLibs)
|
||||||
|
68
build_files/cmake/Modules/FindLZO.cmake
Normal file
68
build_files/cmake/Modules/FindLZO.cmake
Normal file
@ -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
|
||||||
|
)
|
@ -321,6 +321,9 @@ macro(setup_liblinks
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(WITH_LZO AND WITH_SYSTEM_LZO)
|
||||||
|
target_link_libraries(${target} ${LZO_LIBRARIES})
|
||||||
|
endif()
|
||||||
if(WITH_SYSTEM_GLEW)
|
if(WITH_SYSTEM_GLEW)
|
||||||
target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES})
|
target_link_libraries(${target} ${BLENDER_GLEW_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
@ -539,7 +542,6 @@ macro(SETUP_BLENDER_SORTED_LIBS)
|
|||||||
ge_phys_dummy
|
ge_phys_dummy
|
||||||
ge_phys_bullet
|
ge_phys_bullet
|
||||||
bf_intern_smoke
|
bf_intern_smoke
|
||||||
extern_minilzo
|
|
||||||
extern_lzma
|
extern_lzma
|
||||||
extern_colamd
|
extern_colamd
|
||||||
ge_logic_ketsji
|
ge_logic_ketsji
|
||||||
@ -593,6 +595,10 @@ macro(SETUP_BLENDER_SORTED_LIBS)
|
|||||||
list(APPEND BLENDER_SORTED_LIBS extern_eltopo)
|
list(APPEND BLENDER_SORTED_LIBS extern_eltopo)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT WITH_SYSTEM_LZO)
|
||||||
|
list(APPEND BLENDER_SORTED_LIBS extern_minilzo)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT WITH_SYSTEM_GLEW)
|
if(NOT WITH_SYSTEM_GLEW)
|
||||||
list(APPEND BLENDER_SORTED_LIBS ${BLENDER_GLEW_LIBRARIES})
|
list(APPEND BLENDER_SORTED_LIBS ${BLENDER_GLEW_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
2
extern/CMakeLists.txt
vendored
2
extern/CMakeLists.txt
vendored
@ -66,7 +66,7 @@ if(WITH_IMAGE_REDCODE)
|
|||||||
add_subdirectory(libredcode)
|
add_subdirectory(libredcode)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_LZO)
|
if(WITH_LZO AND NOT WITH_SYSTEM_LZO)
|
||||||
add_subdirectory(lzo)
|
add_subdirectory(lzo)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -422,9 +422,16 @@ if(WITH_JACK)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(WITH_LZO)
|
if(WITH_LZO)
|
||||||
list(APPEND INC_SYS
|
if(WITH_SYSTEM_LZO)
|
||||||
../../../extern/lzo/minilzo
|
list(APPEND INC_SYS
|
||||||
)
|
${LZO_INCLUDE_DIR}
|
||||||
|
)
|
||||||
|
add_definitions(-DWITH_SYSTEM_LZO)
|
||||||
|
else()
|
||||||
|
list(APPEND INC_SYS
|
||||||
|
../../../extern/lzo/minilzo
|
||||||
|
)
|
||||||
|
endif()
|
||||||
add_definitions(-DWITH_LZO)
|
add_definitions(-DWITH_LZO)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -84,8 +84,12 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WITH_LZO
|
#ifdef WITH_LZO
|
||||||
#include "minilzo.h"
|
# ifdef WITH_SYSTEM_LZO
|
||||||
#define LZO_HEAP_ALLOC(var,size) \
|
# include <lzo/lzo1x.h>
|
||||||
|
# else
|
||||||
|
# include "minilzo.h"
|
||||||
|
# endif
|
||||||
|
# define LZO_HEAP_ALLOC(var,size) \
|
||||||
lzo_align_t __LZO_MMODEL var [ ((size) + (sizeof(lzo_align_t) - 1)) / sizeof(lzo_align_t) ]
|
lzo_align_t __LZO_MMODEL var [ ((size) + (sizeof(lzo_align_t) - 1)) / sizeof(lzo_align_t) ]
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user