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:
Jesse Yurkovich
2023-03-03 21:53:34 +01:00
committed by Jesse Yurkovich
parent d0eeb3d155
commit a95eaf0ec1
19 changed files with 26 additions and 166 deletions

View File

@@ -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()

View File

@@ -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()

View File

@@ -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")) {

View File

@@ -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()

View File

@@ -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()

View File

@@ -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}

View File

@@ -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

View File

@@ -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,

View File

@@ -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}")

View File

@@ -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,
};

View File

@@ -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()

View File

@@ -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

View File

@@ -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);