Commit: f2bb125a6a0255366aeb2d41208714aef45cceab Author: Kévin Dietrich Date: Fri Jul 1 12:07:35 2016 +0200 Branches: alembic_basic_io https://developer.blender.org/rBf2bb125a6a0255366aeb2d41208714aef45cceab
Update Alembic library to version 1.6, remove support for HDF5. ALthough the FindHDF5 cmake module is still present for people to use, HDF5 is removed from install_deps.sh. From now on, Alembic built with HDF5 support is considered legacy and not "officially" supported. =================================================================== M CMakeLists.txt M build_files/build_environment/install_deps.sh M build_files/cmake/Modules/FindAlembic.cmake M source/blender/alembic/CMakeLists.txt M source/blender/alembic/intern/abc_exporter.cc M source/blender/alembic/intern/alembic_capi.cc M source/blender/editors/io/CMakeLists.txt M source/blender/editors/io/io_alembic.c =================================================================== diff --git a/CMakeLists.txt b/CMakeLists.txt index d4aaaee..874ed17 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -325,14 +325,19 @@ option(WITH_CODEC_SNDFILE "Enable libsndfile Support (http://www.mega-nerd # Alembic support option(WITH_ALEMBIC "Enable Alembic Support" OFF) +option(WITH_ALEMBIC_HDF5 "Enable Legacy Alembic Support" OFF) # alembic if(WITH_ALEMBIC) find_package(Alembic) - find_package(HDF5) - if(NOT ALEMBIC_FOUND OR NOT HDF5_FOUND) + if(WITH_ALEMBIC_HDF5) + find_package(HDF5) + endif() + + if(NOT ALEMBIC_FOUND OR (WITH_ALEMBIC_HDF5 AND NOT HDF5_FOUND)) set(WITH_ALEMBIC OFF) + set(WITH_ALEMBIC_HDF5 OFF) endif() endif() diff --git a/build_files/build_environment/install_deps.sh b/build_files/build_environment/install_deps.sh index c5cfa87..6f57b51 100755 --- a/build_files/build_environment/install_deps.sh +++ b/build_files/build_environment/install_deps.sh @@ -353,10 +353,7 @@ OPENVDB_FORCE_REBUILD=false OPENVDB_SKIP=false # Alembic needs to be compiled for now -HDF5_VERSION_MIN="1.8.15" -HDF5_VERSION="1.8.17" - -ALEMBIC_VERSION="1.5.8" +ALEMBIC_VERSION="1.6.0" ALEMBIC_VERSION_MIN=$ALEMBIC_VERSION ALEMBIC_FORCE_BUILD=false ALEMBIC_FORCE_REBUILD=false @@ -762,7 +759,6 @@ ALEMBIC_SOURCE=( "https://github.com/alembic/alembic/archive/${ALEMBIC_VERSION}. # ALEMBIC_SOURCE_REPO=( "https://github.com/alembic/alembic.git" ) # ALEMBIC_SOURCE_REPO_UID="e6c90d4faa32c4550adeaaf3f556dad4b73a92bb" # ALEMBIC_SOURCE_REPO_BRANCH="master" -HDF5_SOURCE=("http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.17.tar.gz") # Need to find a better source (inflexible) OPENCOLLADA_SOURCE=( "https://github.com/KhronosGroup/OpenCOLLADA.git" ) OPENCOLLADA_REPO_UID="3335ac164e68b2512a40914b14c74db260e6ff7d" @@ -2176,70 +2172,6 @@ compile_OPENVDB() { run_ldconfig "openvdb" } -#### Build HDF5 #### -_init_hdf5() { - _src=$SRC/hdf5-$HDF5_VERSION - _git=false - _inst=$INST/hdf5-$HDF5_VERSION - _inst_shortcut=$INST/hdf5 -} - -clean_HDF5() { - _init_hdf5 - _clean -} - -compile_HDF5() { - if [ "$NO_BUILD" = true ]; then - WARNING "--no-build enabled, HDF5 will not be compiled!" - return - fi - - hdf5_magic=1 - _init_hdf5 - - # Clean install if needed! - magic_compile_check hdf5-$HDF5_VERSION $hdf5_magic - if [ $? -eq 1 -o "$ALEMBIC_FORCE_REBUILD" = true ]; then - clean_HDF5 - fi - - if [ ! -d $_inst ]; then - INFO "Building HDF5-$HDF5_VERSION" - - prepare_opt - - if [ ! -d $_src -o true ]; then - mkdir -p $SRC - download HDF5_SOURCE[@] "$_src.tar.gz" - - INFO "Unpacking HDF5-$HDF5_VERSION" - tar -C $SRC -xf $_src.tar.gz - fi - - cd $_src - - ./configure --prefix=$_inst --with-pic --disable-shared --enable-production --disable-debug --enable-threadsafe --with-pthread=/usr/include,/usr/lib --enable-unsupported - - make -j$THREADS install - - if [ -d $_inst ]; then - _create_inst_shortcut - else - ERROR "HDF5-$HDF5_VERSION failed to compile, exiting" - exit 1 - fi - - magic_compile_set hdf5-$HDF5_VERSION $hdf5_magic - - cd $CWD - INFO "Done compiling HDF5-$HDF5_VERSION!" - else - INFO "Own HDF5-$HDF5_VERSION is up to date, nothing to do!" - INFO "If you want to force rebuild of this lib, use the --force-hdf5 option." - fi -} - #### Build Alembic #### _init_alembic() { _src=$SRC/alembic-$ALEMBIC_VERSION @@ -2263,7 +2195,7 @@ compile_ALEMBIC() { PRINT "" # To be changed each time we make edits that would modify the compiled result! - alembic_magic=1 + alembic_magic=2 _init_alembic # Clean install if needed! @@ -2295,17 +2227,19 @@ compile_ALEMBIC() { if [ "$_with_built_openexr" = true ]; then cmake_d="$cmake_d -D ILMBASE_ROOT=$INST/openexr" - cmake_d="$cmake_d -D HDF5_ROOT=$INST/hdf5" - cmake_d="$cmake_d -D USE_PRMAN=OFF" - cmake_d="$cmake_d -D USE_MAYA=OFF" cmake_d="$cmake_d -D USE_ARNOLD=OFF" + cmake_d="$cmake_d -D USE_BINARIES=OFF" + cmake_d="$cmake_d -D USE_EXAMPLES=OFF" + cmake_d="$cmake_d -D USE_HDF5=OFF" + cmake_d="$cmake_d -D USE_MAYA=OFF" + cmake_d="$cmake_d -D USE_PRMAN=OFF" cmake_d="$cmake_d -D USE_PYALEMBIC=OFF" - cmake_d="$cmake_d -D USE_PYILMBASE=OFF" cmake_d="$cmake_d -D USE_STATIC_BOOST=ON" - cmake_d="$cmake_d -D USE_STATIC_HDF5=ON" - cmake_d="$cmake_d -D ALEMBIC_NO_TESTS=ON" - cmake_d="$cmake_d -D ALEMBIC_NO_BOOTSTRAP=ON" - cmake_d="$cmake_d -D ALEMBIC_NO_OPENGL=ON" + cmake_d="$cmake_d -D USE_STATIC_HDF5=OFF" + cmake_d="$cmake_d -D ALEMBIC_ILMBASE_LINK_STATIC=OFF" + cmake_d="$cmake_d -D ALEMBIC_SHARED_LIBS=OFF" + cmake_d="$cmake_d -D ALEMBIC_LIB_USES_BOOST=ON" + cmake_d="$cmake_d -D ALEMBIC_LIB_USES_TR1=OFF" INFO "ILMBASE_ROOT=$INST/openexr" fi diff --git a/build_files/cmake/Modules/FindAlembic.cmake b/build_files/cmake/Modules/FindAlembic.cmake index 3e08a42..bce4eba 100644 --- a/build_files/cmake/Modules/FindAlembic.cmake +++ b/build_files/cmake/Modules/FindAlembic.cmake @@ -34,18 +34,6 @@ SET(_alembic_SEARCH_DIRS /opt/lib/alembic ) -SET(_alembic_FIND_COMPONENTS - AlembicAbc - AlembicAbcGeom - AlembicAbcCoreAbstract - AlembicUtil - AlembicAbcCoreHDF5 - AlembicOgawa - AlembicAbcCoreOgawa - AlembicAbcMaterial - AlembicAbcCoreFactory -) - FIND_PATH(ALEMBIC_INCLUDE_DIR NAMES Alembic/Abc/All.h @@ -55,29 +43,22 @@ FIND_PATH(ALEMBIC_INCLUDE_DIR include ) -SET(_alembic_LIBRARIES) -FOREACH(COMPONENT ${_alembic_FIND_COMPONENTS}) - STRING(TOUPPER ${COMPONENT} UPPERCOMPONENT) - - FIND_LIBRARY(${UPPERCOMPONENT}_LIBRARY - NAMES - ${COMPONENT} - HINTS - ${_alembic_SEARCH_DIRS} - PATH_SUFFIXES - lib64 lib lib/static - ) - MARK_AS_ADVANCED(${UPPERCOMPONENT}_LIBRARY) - LIST(APPEND _alembic_LIBRARIES "${${UPPERCOMPONENT}_LIBRARY}") -ENDFOREACH() +FIND_LIBRARY(ALEMBIC_LIBRARY + NAMES + Alembic + HINTS + ${_alembic_SEARCH_DIRS} + PATH_SUFFIXES + lib64 lib lib/static +) # handle the QUIETLY and REQUIRED arguments and set ALEMBIC_FOUND to TRUE if # all listed variables are TRUE INCLUDE(FindPackageHandleStandardArgs) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALEMBIC DEFAULT_MSG _alembic_LIBRARIES ALEMBIC_INCLUDE_DIR) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALEMBIC DEFAULT_MSG ALEMBIC_LIBRARY ALEMBIC_INCLUDE_DIR) IF(ALEMBIC_FOUND) - SET(ALEMBIC_LIBRARIES ${_alembic_LIBRARIES}) + SET(ALEMBIC_LIBRARIES ${ALEMBIC_LIBRARY}) SET(ALEMBIC_INCLUDE_DIRS ${ALEMBIC_INCLUDE_DIR}) ENDIF(ALEMBIC_FOUND) @@ -85,7 +66,3 @@ MARK_AS_ADVANCED( ALEMBIC_INCLUDE_DIR ALEMBIC_LIBRARY ) - -UNSET(COMPONENT) -UNSET(UPPERCOMPONENT) -UNSET(_alembic_LIBRARIES) diff --git a/source/blender/alembic/CMakeLists.txt b/source/blender/alembic/CMakeLists.txt index cf574eb..d0bcf42 100644 --- a/source/blender/alembic/CMakeLists.txt +++ b/source/blender/alembic/CMakeLists.txt @@ -69,4 +69,8 @@ set(SRC intern/abc_util.h ) +if(WITH_ALEMBIC_HDF5) + add_definitions(-DWITH_ALEMBIC_HDF5) +endif() + blender_add_lib(bf_alembic "${SRC}" "${INC}" "${INC_SYS}") diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc index 1225d91..8680450 100644 --- a/source/blender/alembic/intern/abc_exporter.cc +++ b/source/blender/alembic/intern/abc_exporter.cc @@ -24,7 +24,10 @@ #include <cmath> -#include <Alembic/AbcCoreHDF5/All.h> +#ifdef WITH_ALEMBIC_HDF5 +# include <Alembic/AbcCoreHDF5/All.h> +#endif + #include <Alembic/AbcCoreOgawa/All.h> #include "abc_camera.h" @@ -244,14 +247,22 @@ void AbcExporter::operator()(Main *bmain, float &progress, bool &was_canceled) Alembic::Abc::Argument arg(md); +#ifdef WITH_ALEMBIC_HDF5 if (!m_settings.export_ogawa) { - m_archive = Alembic::Abc::CreateArchiveWithInfo(Alembic::AbcCoreHDF5::WriteArchive(), m_filename, "Blender", - scene_name, Alembic::Abc::ErrorHandler::kThrowPolicy, arg); - } - else { - m_archive = Alembic::Abc::CreateArchiveWithInfo(Alembic::AbcCoreOgawa::WriteArchive(), m_filename, "Blender", - scene_name, Alembic::Abc::ErrorHandler::kThrowPolicy, arg); - } + m_archive = Alembic::Abc::CreateArchiveWithInfo(Alembic::AbcCoreHDF5::WriteArchive(), + m_filename, + "Blender", + scene_name, + Alembic::Abc::ErrorHandler::kThrowPolicy, + arg); + } + else +#endif + m_archive = Alembic::Abc::CreateArchiveWithInfo(Alembic::AbcCoreOgawa::WriteArchive(), + m_filename, "Blender", + scene_name, + Alembic::Abc::ErrorHandler::kThrowPolicy, + arg); /* Create time samplings for transforms and shapes. */ diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc index 3353234..15a34db 100644 --- a/source/blender/alembic/intern/alembic_capi.cc +++ b/source/blender/alembic/intern/alembic_capi.cc @@ -22,7 +22,10 @@ #include "../ABC_alembic.h" -#include <Alembic/AbcCoreHDF5/All.h> +#ifdef WITH_ALEMBIC_HDF5 +# include <Alembic/AbcCoreHDF5/All.h> +#endif + #include <Alembic/AbcCoreOgawa/All.h> #include <Alembic/AbcMaterial/IMaterial.h> @@ -121,20 +124,26 @@ static IArchive *open_archive(const std::string &filename) IArchive *archive; try { - archive = new IArchive(Alembic::AbcCoreHDF5::ReadArchive(), + archive = new IArchive(Alembic::AbcCoreOgawa::ReadArchive(), filename.c_str(), ErrorHandler::kThrowPolicy, cache_ptr); } - catch (const Exception &) { + catch (const Exception &e) { + std::cerr << e.what() << '\n'; + +#ifdef WITH_ALEMBIC_HDF5 try { - archive = new IArchive(Alembic::AbcCoreOgawa: @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list [email protected] https://lists.blender.org/mailman/listinfo/bf-blender-cvs
