forked from bartvdbraak/blender
Build: Make OpenImageIO a required dependency
During the discussion for #101413 there was consensus that we could make OIIO a mandatory dependency. This patch does just that. The `idiff` testing tool remains optional. Pull Request #105111
This commit is contained in:
parent
d0eeb3d155
commit
a95eaf0ec1
@ -331,7 +331,6 @@ option(WITH_MOD_REMESH "Enable Remesh Modifier" ON)
|
||||
option(WITH_MOD_OCEANSIM "Enable Ocean Modifier" ON)
|
||||
|
||||
# Image format support
|
||||
option(WITH_OPENIMAGEIO "Enable OpenImageIO Support (http://www.openimageio.org)" ON)
|
||||
option(WITH_IMAGE_OPENEXR "Enable OpenEXR Support (http://www.openexr.com)" ON)
|
||||
option(WITH_IMAGE_OPENJPEG "Enable OpenJpeg Support (http://www.openjpeg.org)" ON)
|
||||
option(WITH_IMAGE_TIFF "Enable LibTIFF Support" ON)
|
||||
@ -892,8 +891,6 @@ set_and_warn_dependency(WITH_IMAGE_TIFF WITH_HARU OFF)
|
||||
|
||||
# auto enable openimageio for cycles
|
||||
if(WITH_CYCLES)
|
||||
set(WITH_OPENIMAGEIO ON)
|
||||
|
||||
# auto enable llvm for cycles_osl
|
||||
if(WITH_CYCLES_OSL)
|
||||
set(WITH_LLVM ON CACHE BOOL "" FORCE)
|
||||
@ -1085,13 +1082,6 @@ if(NOT WITH_FFTW3 AND WITH_MOD_OCEANSIM)
|
||||
endif()
|
||||
|
||||
if(WITH_CYCLES)
|
||||
if(NOT WITH_OPENIMAGEIO)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"Cycles requires WITH_OPENIMAGEIO, the library may not have been found. "
|
||||
"Configure OIIO or disable WITH_CYCLES"
|
||||
)
|
||||
endif()
|
||||
if(WITH_CYCLES_OSL)
|
||||
if(NOT WITH_LLVM)
|
||||
message(
|
||||
@ -1942,7 +1932,6 @@ if(FIRST_RUN)
|
||||
info_cfg_option(WITH_IMAGE_OPENEXR)
|
||||
info_cfg_option(WITH_IMAGE_OPENJPEG)
|
||||
info_cfg_option(WITH_IMAGE_TIFF)
|
||||
info_cfg_option(WITH_OPENIMAGEIO)
|
||||
|
||||
info_cfg_text("Audio:")
|
||||
info_cfg_option(WITH_CODEC_AVI)
|
||||
|
@ -6615,11 +6615,9 @@ print_info() {
|
||||
fi
|
||||
|
||||
if [ -d $INST/oiio ]; then
|
||||
_1="-D WITH_OPENIMAGEIO=ON"
|
||||
_2="-D OPENIMAGEIO_ROOT_DIR=$INST/oiio"
|
||||
_1="-D OPENIMAGEIO_ROOT_DIR=$INST/oiio"
|
||||
PRINT " $_1"
|
||||
PRINT " $_2"
|
||||
_buildargs="$_buildargs $_1 $_2"
|
||||
_buildargs="$_buildargs $_1"
|
||||
fi
|
||||
|
||||
if [ "$OSL_SKIP" = false ]; then
|
||||
|
@ -52,7 +52,6 @@ set(WITH_OPENAL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_OPENCOLLADA OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_OPENCOLORIO OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_OPENIMAGEDENOISE OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_OPENIMAGEIO OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_OPENMP OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_OPENSUBDIV OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_OPENVDB OFF CACHE BOOL "" FORCE)
|
||||
|
@ -270,19 +270,7 @@ if(WITH_PUGIXML)
|
||||
find_package(PugiXML REQUIRED)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
find_package(OpenImageIO)
|
||||
list(APPEND OPENIMAGEIO_LIBRARIES
|
||||
${PNG_LIBRARIES}
|
||||
${JPEG_LIBRARIES}
|
||||
${TIFF_LIBRARY}
|
||||
${OPENEXR_LIBRARIES}
|
||||
${OPENJPEG_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
)
|
||||
set(OPENIMAGEIO_DEFINITIONS "-DOIIO_STATIC_BUILD")
|
||||
set(OPENIMAGEIO_IDIFF "${LIBDIR}/openimageio/bin/idiff")
|
||||
endif()
|
||||
find_package(OpenImageIO REQUIRED)
|
||||
add_bundled_libraries(openimageio/lib)
|
||||
|
||||
if(WITH_OPENCOLORIO)
|
||||
|
@ -438,32 +438,7 @@ if(WITH_IMAGE_WEBP)
|
||||
set_and_warn_library_found("WebP" WEBP_FOUND WITH_IMAGE_WEBP)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
find_package_wrapper(OpenImageIO)
|
||||
set(OPENIMAGEIO_LIBRARIES
|
||||
${OPENIMAGEIO_LIBRARIES}
|
||||
${PNG_LIBRARIES}
|
||||
${JPEG_LIBRARIES}
|
||||
${ZLIB_LIBRARIES}
|
||||
)
|
||||
|
||||
set(OPENIMAGEIO_DEFINITIONS "")
|
||||
|
||||
if(WITH_BOOST)
|
||||
list(APPEND OPENIMAGEIO_LIBRARIES "${BOOST_LIBRARIES}")
|
||||
endif()
|
||||
if(WITH_IMAGE_TIFF)
|
||||
list(APPEND OPENIMAGEIO_LIBRARIES "${TIFF_LIBRARY}")
|
||||
endif()
|
||||
if(WITH_IMAGE_OPENEXR)
|
||||
list(APPEND OPENIMAGEIO_LIBRARIES "${OPENEXR_LIBRARIES}")
|
||||
endif()
|
||||
if(WITH_IMAGE_WEBP)
|
||||
list(APPEND OPENIMAGEIO_LIBRARIES "${WEBP_LIBRARIES}")
|
||||
endif()
|
||||
|
||||
set_and_warn_library_found("OPENIMAGEIO" OPENIMAGEIO_FOUND WITH_OPENIMAGEIO)
|
||||
endif()
|
||||
find_package_wrapper(OpenImageIO REQUIRED)
|
||||
add_bundled_libraries(openimageio/lib)
|
||||
|
||||
if(WITH_OPENCOLORIO)
|
||||
|
@ -602,25 +602,18 @@ if(WITH_BOOST)
|
||||
set(BOOST_DEFINITIONS "-DBOOST_ALL_NO_LIB")
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
windows_find_package(OpenImageIO)
|
||||
if(NOT OpenImageIO_FOUND)
|
||||
set(OPENIMAGEIO ${LIBDIR}/OpenImageIO)
|
||||
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
|
||||
set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include)
|
||||
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR})
|
||||
set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
|
||||
set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
|
||||
set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
|
||||
endif()
|
||||
set(OPENIMAGEIO_DEFINITIONS "-DUSE_TBB=0")
|
||||
windows_find_package(OpenImageIO)
|
||||
if(NOT OpenImageIO_FOUND)
|
||||
set(OPENIMAGEIO ${LIBDIR}/OpenImageIO)
|
||||
set(OPENIMAGEIO_LIBPATH ${OPENIMAGEIO}/lib)
|
||||
set(OPENIMAGEIO_INCLUDE_DIR ${OPENIMAGEIO}/include)
|
||||
set(OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR})
|
||||
set(OIIO_OPTIMIZED optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO.lib optimized ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util.lib)
|
||||
set(OIIO_DEBUG debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_d.lib debug ${OPENIMAGEIO_LIBPATH}/OpenImageIO_Util_d.lib)
|
||||
set(OPENIMAGEIO_LIBRARIES ${OIIO_OPTIMIZED} ${OIIO_DEBUG})
|
||||
set(OPENIMAGEIO_IDIFF "${OPENIMAGEIO}/bin/idiff.exe")
|
||||
# If the .dll does not exist, assume it is a static OIIO
|
||||
if(NOT EXISTS ${OPENIMAGEIO}/bin/OpenImageIO.dll)
|
||||
add_definitions(-DOIIO_STATIC_DEFINE)
|
||||
endif()
|
||||
add_definitions(-DOIIO_NO_SSE=1)
|
||||
endif()
|
||||
add_definitions(-DOIIO_NO_SSE=1)
|
||||
|
||||
if(WITH_LLVM)
|
||||
set(LLVM_ROOT_DIR ${LIBDIR}/llvm CACHE PATH "Path to the LLVM installation")
|
||||
|
@ -144,6 +144,7 @@ add_subdirectory(simulation)
|
||||
add_subdirectory(geometry)
|
||||
add_subdirectory(gpu)
|
||||
add_subdirectory(imbuf)
|
||||
add_subdirectory(imbuf/intern/oiio)
|
||||
add_subdirectory(nodes)
|
||||
add_subdirectory(modifiers)
|
||||
add_subdirectory(gpencil_modifiers)
|
||||
@ -164,10 +165,6 @@ if(WITH_IMAGE_OPENEXR)
|
||||
add_subdirectory(imbuf/intern/openexr)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
add_subdirectory(imbuf/intern/oiio)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_DDS)
|
||||
add_subdirectory(imbuf/intern/dds)
|
||||
endif()
|
||||
|
@ -593,10 +593,6 @@ if(WITH_IMAGE_TIFF)
|
||||
add_definitions(-DWITH_TIFF)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
add_definitions(-DWITH_OPENIMAGEIO)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_OPENJPEG)
|
||||
add_definitions(-DWITH_OPENJPEG)
|
||||
endif()
|
||||
|
@ -464,13 +464,11 @@ static bool do_add_image_extension(char *string,
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
else if (imtype == R_IMF_IMTYPE_PSD) {
|
||||
if (!BLI_path_extension_check(string, extension_test = ".psd")) {
|
||||
extension = extension_test;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#ifdef WITH_OPENEXR
|
||||
else if (ELEM(imtype, R_IMF_IMTYPE_OPENEXR, R_IMF_IMTYPE_MULTILAYER)) {
|
||||
if (!BLI_path_extension_check(string, extension_test = ".exr")) {
|
||||
|
@ -66,10 +66,6 @@ if(WITH_IMAGE_OPENEXR)
|
||||
add_definitions(-DWITH_OPENEXR)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
add_definitions(-DWITH_OPENIMAGEIO)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_TIFF)
|
||||
add_definitions(-DWITH_TIFF)
|
||||
endif()
|
||||
|
@ -46,10 +46,6 @@ set(LIB
|
||||
bf_editor_uvedit
|
||||
)
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
add_definitions(-DWITH_OPENIMAGEIO)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_OPENJPEG)
|
||||
add_definitions(-DWITH_OPENJPEG)
|
||||
endif()
|
||||
|
@ -74,6 +74,7 @@ set(LIB
|
||||
bf_blenkernel
|
||||
bf_blenlib
|
||||
bf_blenloader
|
||||
bf_imbuf_openimageio
|
||||
bf_intern_guardedalloc
|
||||
bf_intern_memutil
|
||||
bf_intern_opencolorio
|
||||
@ -106,14 +107,6 @@ if(WITH_IMAGE_TIFF)
|
||||
add_definitions(-DWITH_TIFF)
|
||||
endif()
|
||||
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
list(APPEND LIB
|
||||
bf_imbuf_openimageio
|
||||
)
|
||||
add_definitions(-DWITH_OPENIMAGEIO)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_OPENJPEG)
|
||||
list(APPEND INC_SYS
|
||||
${OPENJPEG_INCLUDE_DIRS}
|
||||
|
@ -59,9 +59,7 @@ enum eImbFileType {
|
||||
IMB_FTYPE_BMP = 4,
|
||||
IMB_FTYPE_OPENEXR = 5,
|
||||
IMB_FTYPE_IMAGIC = 6,
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
IMB_FTYPE_PSD = 7,
|
||||
#endif
|
||||
#ifdef WITH_OPENJPEG
|
||||
IMB_FTYPE_JP2 = 8,
|
||||
#endif
|
||||
|
@ -14,9 +14,7 @@
|
||||
|
||||
#include "IMB_colormanagement.h"
|
||||
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
# include "oiio/openimageio_api.h"
|
||||
#endif
|
||||
#include "oiio/openimageio_api.h"
|
||||
|
||||
#ifdef WITH_OPENEXR
|
||||
# include "openexr/openexr_api.h"
|
||||
@ -183,7 +181,6 @@ const ImFileType IMB_FILE_TYPES[] = {
|
||||
.default_save_role = COLOR_ROLE_DEFAULT_BYTE,
|
||||
},
|
||||
#endif
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
{
|
||||
.init = NULL,
|
||||
.exit = NULL,
|
||||
@ -196,7 +193,6 @@ const ImFileType IMB_FILE_TYPES[] = {
|
||||
.filetype = IMB_FTYPE_PSD,
|
||||
.default_save_role = COLOR_ROLE_DEFAULT_FLOAT,
|
||||
},
|
||||
#endif
|
||||
#ifdef WITH_WEBP
|
||||
{
|
||||
.init = NULL,
|
||||
|
@ -13,7 +13,7 @@ set(INC
|
||||
)
|
||||
|
||||
set(INC_SYS
|
||||
|
||||
${OPENIMAGEIO_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
set(SRC
|
||||
@ -23,37 +23,17 @@ set(SRC
|
||||
)
|
||||
|
||||
set(LIB
|
||||
${OPENIMAGEIO_LIBRARIES}
|
||||
${PUGIXML_LIBRARIES}
|
||||
)
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
if(WITH_IMAGE_OPENEXR)
|
||||
list(APPEND INC_SYS
|
||||
${OPENIMAGEIO_INCLUDE_DIRS}
|
||||
${OPENEXR_INCLUDE_DIRS}
|
||||
)
|
||||
if(WITH_BOOST)
|
||||
list(APPEND INC_SYS
|
||||
${BOOST_INCLUDE_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
list(APPEND LIB
|
||||
${OPENIMAGEIO_LIBRARIES}
|
||||
${PUGIXML_LIBRARIES}
|
||||
${OPENEXR_LIBRARIES}
|
||||
)
|
||||
if(WITH_IMAGE_OPENEXR)
|
||||
list(APPEND INC_SYS
|
||||
${OPENEXR_INCLUDE_DIRS}
|
||||
)
|
||||
list(APPEND LIB
|
||||
${OPENEXR_LIBRARIES}
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_BOOST)
|
||||
list(APPEND LIB
|
||||
${BOOST_LIBRARIES}
|
||||
)
|
||||
endif()
|
||||
add_definitions(-DWITH_OPENIMAGEIO)
|
||||
endif()
|
||||
|
||||
blender_add_lib(bf_imbuf_openimageio "${SRC}" "${INC}" "${INC_SYS}" "${LIB}")
|
||||
|
@ -60,9 +60,7 @@ const char *imb_ext_image[] = {
|
||||
#ifdef WITH_OPENEXR
|
||||
".exr",
|
||||
#endif
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
".psd", ".pdd", ".psb",
|
||||
#endif
|
||||
#ifdef WITH_WEBP
|
||||
".webp",
|
||||
#endif
|
||||
@ -70,11 +68,9 @@ const char *imb_ext_image[] = {
|
||||
};
|
||||
|
||||
const char *imb_ext_image_filepath_only[] = {
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
".psd",
|
||||
".pdd",
|
||||
".psb",
|
||||
#endif
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
@ -242,10 +242,6 @@ if(WITH_IMAGE_OPENEXR)
|
||||
add_definitions(-DWITH_OPENEXR)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
add_definitions(-DWITH_OPENIMAGEIO)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_TIFF)
|
||||
add_definitions(-DWITH_TIFF)
|
||||
endif()
|
||||
|
@ -11,6 +11,7 @@ set(INC
|
||||
../../editors/include
|
||||
../../gpu
|
||||
../../imbuf
|
||||
../../imbuf/intern/oiio
|
||||
../../makesdna
|
||||
../../makesrna
|
||||
../../windowmanager
|
||||
@ -219,10 +220,6 @@ if(WITH_IMAGE_OPENEXR)
|
||||
add_definitions(-DWITH_OPENEXR)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
add_definitions(-DWITH_OPENIMAGEIO)
|
||||
endif()
|
||||
|
||||
if(WITH_IMAGE_OPENJPEG)
|
||||
add_definitions(-DWITH_OPENJPEG)
|
||||
endif()
|
||||
@ -351,13 +348,6 @@ if(WITH_USD)
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENIMAGEIO)
|
||||
add_definitions(-DWITH_OPENIMAGEIO)
|
||||
list(APPEND INC
|
||||
../../imbuf/intern/oiio
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WITH_OPENSUBDIV)
|
||||
add_definitions(-DWITH_OPENSUBDIV)
|
||||
list(APPEND INC
|
||||
|
@ -11,9 +11,7 @@
|
||||
|
||||
#include "../generic/py_capi_utils.h"
|
||||
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
# include "openimageio_api.h"
|
||||
#endif
|
||||
#include "openimageio_api.h"
|
||||
|
||||
static PyTypeObject BlenderAppOIIOType;
|
||||
|
||||
@ -36,32 +34,20 @@ static PyObject *make_oiio_info(void)
|
||||
PyObject *oiio_info;
|
||||
int pos = 0;
|
||||
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
int curversion;
|
||||
#endif
|
||||
|
||||
oiio_info = PyStructSequence_New(&BlenderAppOIIOType);
|
||||
if (oiio_info == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifndef WITH_OPENIMAGEIO
|
||||
# define SetStrItem(str) PyStructSequence_SET_ITEM(oiio_info, pos++, PyUnicode_FromString(str))
|
||||
#endif
|
||||
|
||||
#define SetObjItem(obj) PyStructSequence_SET_ITEM(oiio_info, pos++, obj)
|
||||
|
||||
#ifdef WITH_OPENIMAGEIO
|
||||
curversion = OIIO_getVersionHex();
|
||||
SetObjItem(PyBool_FromLong(1));
|
||||
SetObjItem(PyC_Tuple_Pack_I32(curversion / 10000, (curversion / 100) % 100, curversion % 100));
|
||||
SetObjItem(PyUnicode_FromFormat(
|
||||
"%2d, %2d, %2d", curversion / 10000, (curversion / 100) % 100, curversion % 100));
|
||||
#else
|
||||
SetObjItem(PyBool_FromLong(0));
|
||||
SetObjItem(PyC_Tuple_Pack_I32(0, 0, 0));
|
||||
SetStrItem("Unknown");
|
||||
#endif
|
||||
|
||||
if (UNLIKELY(PyErr_Occurred())) {
|
||||
Py_DECREF(oiio_info);
|
||||
|
Loading…
Reference in New Issue
Block a user