From 06c2ac8584f06c244bddbee5218a483c6e2b733a Mon Sep 17 00:00:00 2001 From: est77 Date: Thu, 9 Feb 2017 19:40:50 +0100 Subject: [PATCH] cmake improvements. --- CMakeLists.txt | 7 +++ cmake/Modules/FindImath.cmake | 74 ++++++++++++++++++++++++++ cmake/Modules/FindOSL.cmake | 80 +++++++++++++++++++++++++++++ cmake/Modules/FindOpenImageIO.cmake | 64 +++++++++++++++++++++++ 4 files changed, 225 insertions(+) create mode 100644 cmake/Modules/FindImath.cmake create mode 100644 cmake/Modules/FindOSL.cmake create mode 100644 cmake/Modules/FindOpenImageIO.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index b608e3f..45ec191 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,6 +86,9 @@ add_definitions (-DBOOST_ALL_NO_LIB) find_package (Appleseed REQUIRED) find_package (OpenGL REQUIRED) +find_package (Imath REQUIRED) +find_package (OpenImageIO REQUIRED) +find_package (OSL REQUIRED) find_package (Maya REQUIRED) message ("Maya API version = ${MAYA_API_VERSION}") @@ -104,6 +107,10 @@ endif () include_directories ( ${MAYA_INCLUDE_DIRS} ${APPLESEED_INCLUDE_DIRS} + ${IMATH_INCLUDE_DIRS} + ${IMATH_INCLUDE_DIRS}/OpenEXR/ + ${OPENIMAGEIO_INCLUDE_DIRS} + ${OSL_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ) diff --git a/cmake/Modules/FindImath.cmake b/cmake/Modules/FindImath.cmake new file mode 100644 index 0000000..71e4bb7 --- /dev/null +++ b/cmake/Modules/FindImath.cmake @@ -0,0 +1,74 @@ + +# +# This source file is part of appleseed. +# Visit http://appleseedhq.net/ for additional information and resources. +# +# This software is released under the MIT license. +# +# Copyright (c) 2013-2017 Esteban Tovagliari, The appleseedhq Organization +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + + +# +# Find Imath headers and libraries. +# +# This module defines the following variables: +# +# IMATH_FOUND True if Imath was found +# IMATH_INCLUDE_DIRS Where to find Imath header files +# IMATH_LIBRARIES List of Imath libraries to link against +# + +include (FindPackageHandleStandardArgs) + +find_path (IMATH_INCLUDE_DIR NAMES OpenEXR/ImathVec.h) + +find_library (IMATH_HALF_LIBRARY NAMES Half) +find_library (IMATH_IEX_LIBRARY NAMES Iex) +find_library (IMATH_MATH_LIBRARY NAMES Imath) + +# Handle the QUIETLY and REQUIRED arguments and set IMATH_FOUND. +find_package_handle_standard_args (IMATH DEFAULT_MSG + IMATH_INCLUDE_DIR + IMATH_HALF_LIBRARY + IMATH_IEX_LIBRARY + IMATH_MATH_LIBRARY +) + +# Set the output variables. +if (IMATH_FOUND) + set (IMATH_INCLUDE_DIRS ${IMATH_INCLUDE_DIR}) + set (IMATH_LIBRARIES + ${IMATH_HALF_LIBRARY} + ${IMATH_IEX_LIBRARY} + ${IMATH_MATH_LIBRARY} + ) +else () + set (IMATH_INCLUDE_DIRS) + set (IMATH_LIBRARIES) +endif () + +mark_as_advanced ( + IMATH_INCLUDE_DIR + IMATH_HALF_LIBRARY + IMATH_IEX_LIBRARY + IMATH_MATH_LIBRARY +) diff --git a/cmake/Modules/FindOSL.cmake b/cmake/Modules/FindOSL.cmake new file mode 100644 index 0000000..7b7ee0e --- /dev/null +++ b/cmake/Modules/FindOSL.cmake @@ -0,0 +1,80 @@ + +# +# This source file is part of appleseed. +# Visit http://appleseedhq.net/ for additional information and resources. +# +# This software is released under the MIT license. +# +# Copyright (c) 2013-2017 Esteban Tovagliari, The appleseedhq Organization +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + + +# +# Find OSL headers and libraries. +# +# This module defines the following variables: +# +# OSL_FOUND True if OSL was found +# OSL_INCLUDE_DIRS Where to find OSL header files +# OSL_LIBRARIES List of OSL libraries to link against +# OSL_COMPILER Path to oslc binary +# OSL_QUERY_INFO Path to oslinfo binary +# OSL_MAKETX Path to OpenImageIO's maketx binary +# + +include (FindPackageHandleStandardArgs) + +find_path (OSL_INCLUDE_DIR NAMES OSL/oslexec.h) + +find_library (OSL_EXEC_LIBRARY NAMES oslexec) +find_library (OSL_COMP_LIBRARY NAMES oslcomp) +find_library (OSL_QUERY_LIBRARY NAMES oslquery) + +find_program (OSL_COMPILER NAMES oslc) +find_program (OSL_QUERY_INFO NAMES oslinfo) +find_program (OSL_MAKETX NAMES maketx) + +# Handle the QUIETLY and REQUIRED arguments and set OSL_FOUND. +find_package_handle_standard_args (OSL DEFAULT_MSG + OSL_INCLUDE_DIR + OSL_EXEC_LIBRARY + OSL_COMP_LIBRARY + OSL_QUERY_LIBRARY + OSL_COMPILER + OSL_QUERY_INFO + OSL_MAKETX +) + +# Set the output variables. +if (OSL_FOUND) + set (OSL_INCLUDE_DIRS ${OSL_INCLUDE_DIR}) + set (OSL_LIBRARIES ${OSL_EXEC_LIBRARY} ${OSL_COMP_LIBRARY} ${OSL_QUERY_LIBRARY}) +else () + set (OSL_INCLUDE_DIRS) + set (OSL_LIBRARIES) +endif () + +mark_as_advanced ( + OSL_INCLUDE_DIR + OSL_EXEC_LIBRARY + OSL_COMP_LIBRARY + OSL_QUERY_LIBRARY +) diff --git a/cmake/Modules/FindOpenImageIO.cmake b/cmake/Modules/FindOpenImageIO.cmake new file mode 100644 index 0000000..fea24aa --- /dev/null +++ b/cmake/Modules/FindOpenImageIO.cmake @@ -0,0 +1,64 @@ + +# +# This source file is part of appleseed. +# Visit http://appleseedhq.net/ for additional information and resources. +# +# This software is released under the MIT license. +# +# Copyright (c) 2013-2017 Esteban Tovagliari, The appleseedhq Organization +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# + + +# +# Find OpenImageIO headers and libraries. +# +# This module defines the following variables: +# +# OPENIMAGEIO_FOUND True if OpenImageIO was found +# OPENIMAGEIO_INCLUDE_DIRS Where to find OpenImageIO header files +# OPENIMAGEIO_LIBRARIES List of OpenImageIO libraries to link against +# + +include (FindPackageHandleStandardArgs) + +find_path (OPENIMAGEIO_INCLUDE_DIR NAMES OpenImageIO/imageio.h) + +find_library (OPENIMAGEIO_LIBRARY NAMES OpenImageIO) + +# Handle the QUIETLY and REQUIRED arguments and set OPENIMAGEIO_FOUND. +find_package_handle_standard_args (OPENIMAGEIO DEFAULT_MSG + OPENIMAGEIO_INCLUDE_DIR + OPENIMAGEIO_LIBRARY +) + +# Set the output variables. +if (OPENIMAGEIO_FOUND) + set (OPENIMAGEIO_INCLUDE_DIRS ${OPENIMAGEIO_INCLUDE_DIR}) + set (OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY}) +else () + set (OPENIMAGEIO_INCLUDE_DIRS) + set (OPENIMAGEIO_LIBRARIES) +endif () + +mark_as_advanced ( + OPENIMAGEIO_INCLUDE_DIR + OPENIMAGEIO_LIBRARY +)