diff options
Diffstat (limited to 'media-libs/openimageio/files/openimageio-1.6.18-make-python-and-boost-detection-more-generic.patch')
-rw-r--r-- | media-libs/openimageio/files/openimageio-1.6.18-make-python-and-boost-detection-more-generic.patch | 343 |
1 files changed, 0 insertions, 343 deletions
diff --git a/media-libs/openimageio/files/openimageio-1.6.18-make-python-and-boost-detection-more-generic.patch b/media-libs/openimageio/files/openimageio-1.6.18-make-python-and-boost-detection-more-generic.patch deleted file mode 100644 index ad1a8aeb316d..000000000000 --- a/media-libs/openimageio/files/openimageio-1.6.18-make-python-and-boost-detection-more-generic.patch +++ /dev/null @@ -1,343 +0,0 @@ -From 2d62c7f5068f678317c506d108698a78a90e5ba0 Mon Sep 17 00:00:00 2001 -From: Jonathan Scruggs <j.scruggs@gmail.com> -Date: Thu, 28 Sep 2017 15:20:24 +0100 -Subject: [PATCH 2/2] oiio/RB-1.6: Make python and boost detection more generic - -* Fix boost and python detection for certain systems. -* Clean up boost and python detection. -* Remove redundant code. - -Backported from: -https://github.com/OpenImageIO/oiio/commit/fca7ed62bd679a8221147dcddb23a516796dab90 ---- - CMakeLists.txt | 38 +------------ - src/cmake/externalpackages.cmake | 61 +------------------- - src/python/CMakeLists.txt | 119 ++++++++++++++++----------------------- - 3 files changed, 53 insertions(+), 165 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index b29efac6..dd314d07 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -180,7 +180,6 @@ set (USE_OPENGL ON CACHE BOOL "Include OpenGL support") - set (USE_QT ON CACHE BOOL "Include Qt support") - set (FORCE_OPENGL_1 OFF CACHE BOOL "Force iv to use OpenGL's fixed pipeline") - set (USE_PYTHON ON CACHE BOOL "Build the Python bindings") --set (USE_PYTHON3 OFF CACHE BOOL "Build the Python3 bindings") - set (USE_FIELD3D ON CACHE BOOL "Use Field3D if found") - set (USE_FFMPEG ON CACHE BOOL "Use FFmpeg if found") - set (JPEG_PATH "" CACHE STRING "Custom JPEG path") -@@ -197,8 +196,7 @@ set (USE_LIBRAW ON CACHE BOOL "Use LibRaw if found") - set (LIBRAW_PATH "" CACHE STRING "Custom LibRaw path") - set (NOTHREADS OFF CACHE BOOL "Compile with no threads or locking") - set (OIIO_THREAD_ALLOW_DCLP ON CACHE BOOL "OIIO threads may use DCLP for speed") --set (PYTHON_VERSION 2.6) --set (PYTHON3_VERSION 3.2) -+set (PYTHON_VERSION "2.7" CACHE STRING "Target version of python to find") - set (USE_NUKE ON CACHE BOOL "Build Nuke plugins, if Nuke is found") - set (Nuke_ROOT "" CACHE STRING "Where to find Nuke installation") - set (NUKE_VERSION 7.0) -@@ -321,32 +319,7 @@ include_directories ( - - - ########################################################################### --# Set install paths for the python modules --# TODO: Figure out how to get the correct python directory -- --if (UNIX AND NOT SELF_CONTAINED_INSTALL_TREE) -- # TODO: Figure out how to get the correct python directory -- set (DEFAULT_PYLIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/python/site-packages") -- set (DEFAULT_PYLIB3_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/python3/site-packages") --else () -- # Here is the "self-contained install tree" case: the expectation here -- # is that everything related to this project will go into its own -- # directory, not into some standard system heirarchy. -- set (DEFAULT_PYLIB_INSTALL_DIR "python") -- set (DEFAULT_PYLIB3_INSTALL_DIR "python3") --endif () --if (EXEC_INSTALL_PREFIX) -- # Tack on an extra prefix to support multi-arch builds. -- set (DEFAULT_PYLIB_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/${DEFAULT_PYLIB_INSTALL_DIR}") -- set (DEFAULT_PYLIB3_INSTALL_DIR "${EXEC_INSTALL_PREFIX}/${DEFAULT_PYLIB3_INSTALL_DIR}") --endif () --# Set up cmake cache variables corresponding to the defaults deduced above, so --# that the user can override them as desired: --set (PYLIB_INSTALL_DIR ${DEFAULT_PYLIB_INSTALL_DIR} CACHE STRING -- "Install location for python libraries (relative to CMAKE_INSTALL_PREFIX or absolute)") --set (PYLIB3_INSTALL_DIR ${DEFAULT_PYLIB3_INSTALL_DIR} CACHE STRING -- "Install location for python3 libraries (relative to CMAKE_INSTALL_PREFIX or absolute)") -- -+# Set default install options - set (PLUGIN_SEARCH_PATH "" CACHE STRING "Default plugin search path") - - set (INSTALL_DOCS ON CACHE BOOL "Install documentation") -@@ -442,14 +415,9 @@ if (NOT EMBEDPLUGINS) - add_subdirectory (src/zfile.imageio) - endif () - --if (USE_PYTHON AND oiio_boost_PYTHON_FOUND AND NOT BUILD_OIIOUTIL_ONLY) -+if (USE_PYTHON AND NOT BUILD_OIIOUTIL_ONLY) - add_subdirectory (src/python) - endif () --if (USE_PYTHON3 AND NOT BUILD_OIIOUTIL_ONLY) -- #build the python3 module in a different binary directory since it will -- #have the same name as the python2 module (e.g. OpenImageIO.so) -- add_subdirectory (src/python src/python3) --endif () - - add_subdirectory (src/include) - add_subdirectory (src/doc) -diff --git a/src/cmake/externalpackages.cmake b/src/cmake/externalpackages.cmake -index 4799df22..2576dee5 100644 ---- a/src/cmake/externalpackages.cmake -+++ b/src/cmake/externalpackages.cmake -@@ -102,10 +102,7 @@ if (NOT Boost_FIND_QUIETLY) - endif () - - if (NOT DEFINED Boost_ADDITIONAL_VERSIONS) -- set (Boost_ADDITIONAL_VERSIONS "1.60" "1.59" "1.58" "1.57" "1.56" -- "1.55" "1.54" "1.53" "1.52" "1.51" "1.50" -- "1.49" "1.48" "1.47" "1.46" "1.45" "1.44" -- "1.43" "1.43.0" "1.42" "1.42.0") -+ set (Boost_ADDITIONAL_VERSIONS "1.65.1" "1.65" "1.63" "1.62") - endif () - if (LINKSTATIC) - set (Boost_USE_STATIC_LIBS ON) -@@ -117,51 +114,7 @@ if (BOOST_CUSTOM) - # Boost_VERSION, Boost_INCLUDE_DIRS, Boost_LIBRARY_DIRS, Boost_LIBRARIES. - else () - set (Boost_COMPONENTS filesystem regex system thread) -- find_package (Boost 1.42 REQUIRED -- COMPONENTS ${Boost_COMPONENTS} -- ) -- -- # Try to figure out if this boost distro has Boost::python. If we -- # include python in the component list above, cmake will abort if -- # it's not found. So we resort to checking for the boost_python -- # library's existance to get a soft failure. -- find_library (oiio_boost_python_lib boost_python -- PATHS ${Boost_LIBRARY_DIRS} NO_DEFAULT_PATH) -- mark_as_advanced (oiio_boost_python_lib) -- if (NOT oiio_boost_python_lib AND Boost_SYSTEM_LIBRARY_RELEASE) -- get_filename_component (oiio_boost_PYTHON_rel -- ${Boost_SYSTEM_LIBRARY_RELEASE} NAME -- ) -- string (REGEX REPLACE "^(lib)?(.+)_system(.+)$" "\\2_python\\3" -- oiio_boost_PYTHON_rel ${oiio_boost_PYTHON_rel} -- ) -- find_library (oiio_boost_PYTHON_LIBRARY_RELEASE -- NAMES ${oiio_boost_PYTHON_rel} lib${oiio_boost_PYTHON_rel} -- HINTS ${Boost_LIBRARY_DIRS} -- NO_DEFAULT_PATH -- ) -- mark_as_advanced (oiio_boost_PYTHON_LIBRARY_RELEASE) -- endif () -- if (NOT oiio_boost_python_lib AND Boost_SYSTEM_LIBRARY_DEBUG) -- get_filename_component (oiio_boost_PYTHON_dbg -- ${Boost_SYSTEM_LIBRARY_DEBUG} NAME -- ) -- string (REGEX REPLACE "^(lib)?(.+)_system(.+)$" "\\2_python\\3" -- oiio_boost_PYTHON_dbg ${oiio_boost_PYTHON_dbg} -- ) -- find_library (oiio_boost_PYTHON_LIBRARY_DEBUG -- NAMES ${oiio_boost_PYTHON_dbg} lib${oiio_boost_PYTHON_dbg} -- HINTS ${Boost_LIBRARY_DIRS} -- NO_DEFAULT_PATH -- ) -- mark_as_advanced (oiio_boost_PYTHON_LIBRARY_DEBUG) -- endif () -- if (oiio_boost_python_lib OR -- oiio_boost_PYTHON_LIBRARY_RELEASE OR oiio_boost_PYTHON_LIBRARY_DEBUG) -- set (oiio_boost_PYTHON_FOUND ON) -- else () -- set (oiio_boost_PYTHON_FOUND OFF) -- endif () -+ find_package (Boost 1.62 REQUIRED COMPONENTS ${Boost_COMPONENTS}) - endif () - - # On Linux, Boost 1.55 and higher seems to need to link against -lrt -@@ -176,16 +129,6 @@ if (NOT Boost_FIND_QUIETLY) - message (STATUS "Boost include dirs ${Boost_INCLUDE_DIRS}") - message (STATUS "Boost library dirs ${Boost_LIBRARY_DIRS}") - message (STATUS "Boost libraries ${Boost_LIBRARIES}") -- message (STATUS "Boost python found ${oiio_boost_PYTHON_FOUND}") --endif () --if (NOT oiio_boost_PYTHON_FOUND) -- # If Boost python components were not found, turn off all python support. -- message (STATUS "Boost python support not found -- will not build python components!") -- if (APPLE AND USE_PYTHON) -- message (STATUS " If your Boost is from Macports, you need the +python26 variant to get Python support.") -- endif () -- set (USE_PYTHON OFF) -- set (PYTHONLIBS_FOUND OFF) - endif () - - include_directories (SYSTEM "${Boost_INCLUDE_DIRS}") -diff --git a/src/python/CMakeLists.txt b/src/python/CMakeLists.txt -index 81a4a890..e58d372d 100644 ---- a/src/python/CMakeLists.txt -+++ b/src/python/CMakeLists.txt -@@ -1,54 +1,30 @@ --#if the CMAKE_CURRENT_BINARY_DIR is python3, then build the python3 module, --#otherwise the python2 module --string (REGEX MATCH "python3\$" _py3_subdir ${CMAKE_CURRENT_BINARY_DIR}) -+# Attempt to find the desired version, but fall back to other -+# additional versions. -+find_package (PythonInterp ${PYTHON_VERSION} REQUIRED) - --if (_py3_subdir) -- set (BUILD_PY3 ON) --else () -- set (BUILD_PY3 OFF) --endif () -- --if (NOT BOOST_CUSTOM AND NOT BUILD_PY3) -- #Unset those, otherwise find_package(PythonLibs) will pick up old stuff -- #if it has been run before -- unset(Python_ADDITIONAL_VERSIONS) -- unset(PYTHON_LIBRARY) -- unset(PYTHON_LIBRARY CACHE) -- unset(PYTHON_INCLUDE_DIR) -- unset(PYTHON_INCLUDE_DIR CACHE) -- unset(PYTHON_INCLUDE_PATH) -- unset(PYTHON_INCLUDE_PATH CACHE) -- find_package (PythonLibs ${PYTHON_VERSION} REQUIRED) -- find_package (Boost 1.42 REQUIRED COMPONENTS python) --elseif (BOOST_CUSTOM AND NOT BUILD_PY3) -- find_package (PythonLibs ${PYTHON_VERSION} REQUIRED) --else () -- #BOOST_CUSTOM is ignored for python3 -+# The version that was found may not be the default or user -+# defined one. -+set (PYTHON_VERSION_FOUND ${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}) - -- #Unset those, otherwise find_package(PythonLibs) will pick up old stuff -- #if it has been run before -- unset(PYTHON_LIBRARY) -- unset(PYTHON_LIBRARY CACHE) -- unset(PYTHON_INCLUDE_DIR) -- unset(PYTHON_INCLUDE_DIR CACHE) -- unset(PYTHON_INCLUDE_PATH) -- unset(PYTHON_INCLUDE_PATH CACHE) -+if (NOT ${PYTHON_VERSION} EQUAL ${PYTHON_VERSION_FOUND} ) -+ message (WARNING "The requested version ${PYTHON_VERSION} was not found.") -+ message (WARNING "Using ${PYTHON_VERSION_FOUND} instead.") -+endif () - -- #cmake 2.8 does not look for python 3.4 -- set(Python_ADDITIONAL_VERSIONS 3.4) -- find_package (PythonInterp ${PYTHON3_VERSION} REQUIRED) -- find_package (PythonLibs ${PYTHON3_VERSION} REQUIRED) -+find_package (PythonLibs ${PYTHON_VERSION_FOUND} REQUIRED) - -- #Finding the python3 component for boost is a little tricky, since it has -- #different names on different systems. Try the most common ones -- #(boost_python3, boost_python-py34, …). -- foreach (_boost_py3_lib python3 python-py34 python-py33 python-py32) -- find_package (Boost 1.42 QUIET COMPONENTS ${_boost_py3_lib}) -- string (TOUPPER ${_boost_py3_lib} boost_py3_lib_name) -- if (Boost_${boost_py3_lib_name}_FOUND) -- #Not the most beautiful thing to do, but that gets them included in -- #the target_link_libraries(…) call farther down -- set (Boost_PYTHON_LIBRARIES ${Boost_${boost_py3_lib_name}_LIBRARIES}) -+if (NOT BOOST_CUSTOM) -+ # Finding the python component for boost is a little tricky, since it has -+ # different names on different systems. Try the most common ones. -+ foreach (_py_lib python-${PYTHON_VERSION_FOUND} python -+ python${PYTHON_VERSION_MAJOR} -+ python-py${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}) -+ find_package (Boost QUIET COMPONENTS ${_py_lib}) -+ string (TOUPPER ${_py_lib} _py_lib_name) -+ if (Boost_${_py_lib_name}_FOUND) -+ # Not the most beautiful thing to do, but that gets them included in -+ # the target_link_libraries(…) call farther down -+ set (Boost_PYTHON_LIBRARIES ${Boost_${_py_lib_name}_LIBRARIES}) - break () - endif () - endforeach () -@@ -58,18 +34,19 @@ if (APPLE) - # set (PYTHON_LIBRARIES /opt/local/lib) - endif () - -+if (NOT DEFINED PYTHON_SITE_DIR) -+ set (PYTHON_SITE_DIR "${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_FOUND}/site-packages") -+endif () -+ - # Disable some warnings for Clang, it's a little too picky with boost - if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") - add_definitions ("-Wno-array-bounds") - endif () - --if (BUILD_PY3) -- set (target_name Py3OpenImageIO) --else () -- set (target_name PyOpenImageIO) --endif () -+set (target_name PyOpenImageIO) - --if (BOOST_CUSTOM OR Boost_FOUND AND PYTHONLIBS_FOUND) -+# Test if automatically found or manually set with BOOST_CUSTOM -+if (DEFINED Boost_PYTHON_LIBRARIES) - - set (python_srcs py_imageinput.cpp py_imageoutput.cpp - py_imagecache.cpp py_imagespec.cpp py_roi.cpp -@@ -81,8 +58,12 @@ if (BOOST_CUSTOM OR Boost_FOUND AND PYTHONLIBS_FOUND) - message (STATUS "Python found ${PYTHONLIBS_FOUND} ") - message (STATUS "Python include dirs ${PYTHON_INCLUDE_PATH}") - message (STATUS "Python libraries ${PYTHON_LIBRARIES}") -+ message (STATUS "Python site packages dir ${PYTHON_SITE_DIR}") - message (STATUS "Python to include 'lib' prefix: ${PYLIB_LIB_PREFIX}") - message (STATUS "Python to include SO version: ${PYLIB_INCLUDE_SONAME}") -+ message (STATUS "Python version ${PYTHON_VERSION_STRING}") -+ message (STATUS "Python version major: ${PYTHON_VERSION_MAJOR} minor: ${PYTHON_VERSION_MINOR}") -+ message (STATUS "Boost python libraries ${Boost_PYTHON_LIBRARIES}") - endif () - - include_directories (${PYTHON_INCLUDE_PATH} ${Boost_INCLUDE_DIRS}) -@@ -91,7 +72,7 @@ if (BOOST_CUSTOM OR Boost_FOUND AND PYTHONLIBS_FOUND) - target_link_libraries (${target_name} OpenImageIO ${Boost_LIBRARIES} ${Boost_PYTHON_LIBRARIES} ${CMAKE_DL_LIBS}) - set_target_properties (${target_name} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup") - else () -- target_link_libraries (${target_name} OpenImageIO ${Boost_LIBRARIES} ${Boost_PYTHON_LIBRARIES} ${PYTHON_LIBRARIES} ${CMAKE_DL_LIBS}) -+ target_link_libraries (${target_name} OpenImageIO ${SANITIZE_LIBRARIES} ${Boost_LIBRARIES} ${Boost_PYTHON_LIBRARIES} ${PYTHON_LIBRARIES} ${CMAKE_DL_LIBS}) - endif () - - # Exclude the 'lib' prefix from the name -@@ -123,21 +104,17 @@ if (BOOST_CUSTOM OR Boost_FOUND AND PYTHONLIBS_FOUND) - SUFFIX ".pyd") - endif() - -- if (BUILD_PY3) -- install (TARGETS ${target_name} -- RUNTIME DESTINATION ${PYLIB3_INSTALL_DIR} COMPONENT user -- LIBRARY DESTINATION ${PYLIB3_INSTALL_DIR} COMPONENT user) -- else () -- install (TARGETS ${target_name} -- RUNTIME DESTINATION ${PYLIB_INSTALL_DIR} COMPONENT user -- LIBRARY DESTINATION ${PYLIB_INSTALL_DIR} COMPONENT user) -- endif () --elseif (BUILD_PY3) -- if (NOT PYTHONLIBS_FOUND) -- message (STATUS "Python3 libraries not found") -- endif () -- if (NOT Boost_FOUND) -- message (STATUS "Boost python3 component not found") -- endif () -- set(USE_PYTHON3 OFF) -+ install (TARGETS ${target_name} -+ RUNTIME DESTINATION ${PYTHON_SITE_DIR} COMPONENT user -+ LIBRARY DESTINATION ${PYTHON_SITE_DIR} COMPONENT user) -+else () -+ # If Boost python components were not found, turn off all python support. -+ message (STATUS "Boost python support not found!") -+ if (APPLE AND USE_PYTHON) -+ message (STATUS " If your Boost is from Macports, you need the +python26 variant to get Python support.") -+ endif () -+ if (BOOST_CUSTOM) -+ message (STATUS " Please set the variable Boost_PYTHON_LIBRARIES to the location of the boost python libraries.") -+ endif () -+ message (FATAL_ERROR "Python module cannot be built. Either disable python support or check your boost installation.") - endif () --- -2.14.2 - |