From f1e6838376a0a07b5ce45d70ad18357c7c6cc2eb Mon Sep 17 00:00:00 2001 From: Stefan Werner Date: Tue, 24 Apr 2018 13:26:54 +0200 Subject: Build: Added explicit search for Blosc in CMake files. Unix build will now disable WITH_OPENVDB_BLOSC if Blosc libraries cannot be found. --- build_files/cmake/Modules/FindBlosc.cmake | 72 ++++++++++++++++++++++++++ build_files/cmake/macros.cmake | 2 +- build_files/cmake/platform/platform_unix.cmake | 4 ++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 build_files/cmake/Modules/FindBlosc.cmake (limited to 'build_files') diff --git a/build_files/cmake/Modules/FindBlosc.cmake b/build_files/cmake/Modules/FindBlosc.cmake new file mode 100644 index 00000000000..79590f11c4f --- /dev/null +++ b/build_files/cmake/Modules/FindBlosc.cmake @@ -0,0 +1,72 @@ +# - Find Blosc library +# Find the native Blosc includes and library +# This module defines +# BLOSC_INCLUDE_DIRS, where to find blosc.h, Set when +# Blosc is found. +# BLOSC_LIBRARIES, libraries to link against to use Blosc. +# BLOSC_ROOT_DIR, The base directory to search for Blosc. +# This can also be an environment variable. +# BLOSC_FOUND, If false, do not try to use Blosc. +# +# also defined, but not for general use are +# BLOSC_LIBRARY, where to find the Blosc library. + +#============================================================================= +# Copyright 2018 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 BLOSC_ROOT_DIR was defined in the environment, use it. +IF(NOT BLOSC_ROOT_DIR AND NOT $ENV{BLOSC_ROOT_DIR} STREQUAL "") + SET(BLOSC_ROOT_DIR $ENV{BLOSC_ROOT_DIR}) +ENDIF() + +SET(_blosc_SEARCH_DIRS + ${BLOSC_ROOT_DIR} + /usr/local + /sw # Fink + /opt/local # DarwinPorts + /opt/lib/blosc +) + +FIND_PATH(BLOSC_INCLUDE_DIR + NAMES + blosc.h + HINTS + ${_blosc_SEARCH_DIRS} + PATH_SUFFIXES + include +) + +FIND_LIBRARY(BLOSC_LIBRARY + NAMES + blosc + HINTS + ${_blosc_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib + ) + +# handle the QUIETLY and REQUIRED arguments and set BLOSC_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(BLOSC DEFAULT_MSG + BLOSC_LIBRARY BLOSC_INCLUDE_DIR) + +IF(BLOSC_FOUND) + SET(BLOSC_LIBRARIES ${BLOSC_LIBRARY}) + SET(BLOSC_INCLUDE_DIRS ${BLOSC_INCLUDE_DIR}) +ELSE() + SET(BLOSC_BLOSC_FOUND FALSE) +ENDIF() + +MARK_AS_ADVANCED( + BLOSC_INCLUDE_DIR + BLOSC_LIBRARY +) diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 107b29e0cc8..abf8da11c8e 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -425,7 +425,7 @@ function(setup_liblinks target_link_libraries(${target} ${OPENSUBDIV_LIBRARIES}) endif() if(WITH_OPENVDB) - target_link_libraries(${target} ${OPENVDB_LIBRARIES} ${TBB_LIBRARIES}) + target_link_libraries(${target} ${OPENVDB_LIBRARIES} ${TBB_LIBRARIES} ${BLOSC_LIBRARIES}) endif() if(WITH_CYCLES_OSL) target_link_libraries(${target} ${OSL_LIBRARIES}) diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 6796e254c27..75222b6663f 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -237,10 +237,14 @@ endif() if(WITH_OPENVDB) find_package_wrapper(OpenVDB) find_package_wrapper(TBB) + find_package_wrapper(Blosc) if(NOT OPENVDB_FOUND OR NOT TBB_FOUND) set(WITH_OPENVDB OFF) set(WITH_OPENVDB_BLOSC OFF) message(STATUS "OpenVDB not found, disabling it") + elseif(NOT BLOSC_FOUND) + set(WITH_OPENVDB_BLOSC OFF) + message(STATUS "Blosc not found, disabling it") endif() endif() -- cgit v1.2.3