find OIIO in cmake

This commit is contained in:
itsmattkc
2019-09-10 13:15:51 +10:00
parent 333d7392d9
commit ef0a914288
2 changed files with 156 additions and 0 deletions
+2
View File
@@ -41,6 +41,8 @@ find_package(OpenGL REQUIRED)
find_package(OpenColorIO REQUIRED)
find_package(OpenImageIO REQUIRED)
find_package(Qt5 5.6 REQUIRED
COMPONENTS
Core
+154
View File
@@ -0,0 +1,154 @@
#
# Copyright 2016 Pixar
#
# Licensed under the Apache License, Version 2.0 (the "Apache License")
# with the following modification; you may not use this file except in
# compliance with the Apache License and the following modification to it:
# Section 6. Trademarks. is deleted and replaced with:
#
# 6. Trademarks. This License does not grant permission to use the trade
# names, trademarks, service marks, or product names of the Licensor
# and its affiliates, except as required to comply with Section 4(c) of
# the License and to reproduce the content of the NOTICE file.
#
# You may obtain a copy of the Apache License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the Apache License with the above modification is
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the Apache License for the specific
# language governing permissions and limitations under the Apache License.
#
if(UNIX)
find_path(OIIO_BASE_DIR
include/OpenImageIO/oiioversion.h
HINTS
"${OIIO_LOCATION}"
"$ENV{OIIO_LOCATION}"
"/opt/oiio"
)
find_path(OIIO_LIBRARY_DIR
libOpenImageIO.so
HINTS
"${OIIO_LOCATION}"
"$ENV{OIIO_LOCATION}"
"${OIIO_BASE_DIR}"
PATH_SUFFIXES
lib/
DOC
"OpenImageIO library path"
)
elseif(WIN32)
find_path(OIIO_BASE_DIR
include/OpenImageIO/oiioversion.h
HINTS
"${OIIO_LOCATION}"
"$ENV{OIIO_LOCATION}"
)
find_path(OIIO_LIBRARY_DIR
OpenImageIO.lib
HINTS
"${OIIO_LOCATION}"
"$ENV{OIIO_LOCATION}"
"${OIIO_BASE_DIR}"
PATH_SUFFIXES
lib/
DOC
"OpenImageIO library path"
)
endif()
find_path(OIIO_INCLUDE_DIR
OpenImageIO/oiioversion.h
HINTS
"${OIIO_LOCATION}"
"$ENV{OIIO_LOCATION}"
"${OIIO_BASE_DIR}"
PATH_SUFFIXES
include/
DOC
"OpenImageIO headers path"
)
list(APPEND OIIO_INCLUDE_DIRS ${OIIO_INCLUDE_DIR})
foreach(OIIO_LIB
OpenImageIO
OpenImageIO_Util
)
find_library(OIIO_${OIIO_LIB}_LIBRARY
${OIIO_LIB}
HINTS
"${OIIO_LOCATION}"
"$ENV{OIIO_LOCATION}"
"${OIIO_BASE_DIR}"
PATH_SUFFIXES
lib/
DOC
"OIIO's ${OIIO_LIB} library path"
)
if(OIIO_${OIIO_LIB}_LIBRARY)
list(APPEND OIIO_LIBRARIES ${OIIO_${OIIO_LIB}_LIBRARY})
endif()
endforeach(OIIO_LIB)
foreach(OIIO_BIN
iconvert
idiff
igrep
iinfo
iv
maketx
oiiotool)
find_program(OIIO_${OIIO_BIN}_BINARY
${OIIO_BIN}
HINTS
"${OIIO_LOCATION}"
"$ENV{OIIO_LOCATION}"
"${OIIO_BASE_DIR}"
PATH_SUFFIXES
bin/
DOC
"OIIO's ${OIIO_BIN} binary"
)
if(OIIO_${OIIO_BIN}_BINARY)
list(APPEND OIIO_BINARIES ${OIIO_${OIIO_BIN}_BINARY})
endif()
endforeach(OIIO_BIN)
if(OIIO_INCLUDE_DIRS AND EXISTS "${OIIO_INCLUDE_DIR}/OpenImageIO/oiioversion.h")
file(STRINGS ${OIIO_INCLUDE_DIR}/OpenImageIO/oiioversion.h
MAJOR
REGEX
"#define OIIO_VERSION_MAJOR.*$")
file(STRINGS ${OIIO_INCLUDE_DIR}/OpenImageIO/oiioversion.h
MINOR
REGEX
"#define OIIO_VERSION_MINOR.*$")
file(STRINGS ${OIIO_INCLUDE_DIR}/OpenImageIO/oiioversion.h
PATCH
REGEX
"#define OIIO_VERSION_PATCH.*$")
string(REGEX MATCHALL "[0-9]+" MAJOR ${MAJOR})
string(REGEX MATCHALL "[0-9]+" MINOR ${MINOR})
string(REGEX MATCHALL "[0-9]+" PATCH ${PATCH})
set(OIIO_VERSION "${MAJOR}.${MINOR}.${PATCH}")
endif()
# handle the QUIETLY and REQUIRED arguments and set OIIO_FOUND to TRUE if
# all listed variables are TRUE
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OpenImageIO
REQUIRED_VARS
OIIO_LIBRARIES
OIIO_INCLUDE_DIRS
VERSION_VAR
OIIO_VERSION
)