|
Packit Service |
6754ca |
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
PROJECT (openexr)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
SET(OPENEXR_VERSION_MAJOR "2")
|
|
Packit Service |
6754ca |
SET(OPENEXR_VERSION_MINOR "2")
|
|
Packit Service |
6754ca |
SET(OPENEXR_VERSION_PATCH "0")
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
SET(OPENEXR_VERSION ${OPENEXR_VERSION_MAJOR}.${OPENEXR_VERSION_MINOR}.${OPENEXR_VERSION_PATCH})
|
|
Packit Service |
6754ca |
SET(OPENEXR_VERSION_API ${OPENEXR_VERSION_MAJOR}_${OPENEXR_VERSION_MINOR})
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
# enable the tests
|
|
Packit Service |
6754ca |
ENABLE_TESTING()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
# distro building
|
|
Packit Service |
6754ca |
SET(CPACK_PACKAGE_VERSION_MAJOR "${OPENEXR_VERSION_MAJOR}")
|
|
Packit Service |
6754ca |
SET(CPACK_PACKAGE_VERSION_MINOR "${OPENEXR_VERSION_MINOR}")
|
|
Packit Service |
6754ca |
SET(CPACK_PACKAGE_VERSION_PATCH "${OPENEXR_VERSION_PATCH}")
|
|
Packit Service |
6754ca |
SET(CPACK_SOURCE_GENERATOR "TGZ")
|
|
Packit Service |
6754ca |
set(CPACK_SOURCE_PACKAGE_FILE_NAME
|
|
Packit Service |
6754ca |
"${CMAKE_PROJECT_NAME}-${OPENEXR_VERSION}"
|
|
Packit Service |
6754ca |
)
|
|
Packit Service |
6754ca |
set(CPACK_SOURCE_IGNORE_FILES
|
|
Packit Service |
6754ca |
"/.git*;/.cvs*;${CPACK_SOURCE_IGNORE_FILES}")
|
|
Packit Service |
6754ca |
INCLUDE ( CPack )
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
# Allow the developer to select if Dynamic or Static libraries are built
|
|
Packit Service |
6754ca |
OPTION (BUILD_SHARED_LIBS "Build Shared Libraries" ON)
|
|
Packit Service |
6754ca |
OPTION (USE_ZLIB_WINAPI "Use ZLib Win API" OFF)
|
|
Packit Service |
6754ca |
OPTION (NAMESPACE_VERSIONING "Use Namespace Versioning" ON)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
# Setup osx rpathing
|
|
Packit Service |
6754ca |
SET (CMAKE_MACOSX_RPATH 1)
|
|
Packit Service |
6754ca |
SET (BUILD_WITH_INSTALL_RPATH 1)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
ADD_DEFINITIONS ( -DHAVE_CONFIG_H -DILM_IMF_TEST_IMAGEDIR="${CMAKE_SOURCE_DIR}/IlmImfTest/" )
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
INCLUDE_DIRECTORIES (
|
|
Packit Service |
6754ca |
${CMAKE_CURRENT_BINARY_DIR}/config
|
|
Packit Service |
6754ca |
IlmImf
|
|
Packit Service |
6754ca |
IlmImfUtil
|
|
Packit Service |
6754ca |
exrmaketiled
|
|
Packit Service |
6754ca |
exrenvmap
|
|
Packit Service |
6754ca |
exrmakepreview
|
|
Packit Service |
6754ca |
exrmultiview
|
|
Packit Service |
6754ca |
IlmImfFuzzTest
|
|
Packit Service |
6754ca |
)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
FIND_PACKAGE(ZLIB REQUIRED)
|
|
Packit Service |
6754ca |
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
IF (NOT WIN32)
|
|
Packit Service |
6754ca |
SET ( PTHREAD_LIB pthread )
|
|
Packit Service |
6754ca |
ENDIF()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
INCLUDE_DIRECTORIES ( ${ILMBASE_PACKAGE_PREFIX}/include/OpenEXR )
|
|
Packit Service |
6754ca |
LINK_DIRECTORIES ( ${ILMBASE_PACKAGE_PREFIX}/lib )
|
|
Packit Service |
6754ca |
MESSAGE ( "ILMBASE_PACKAGE_PREFIX = " ${ILMBASE_PACKAGE_PREFIX})
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
SET (LIB_TYPE STATIC)
|
|
Packit Service |
6754ca |
IF (BUILD_SHARED_LIBS)
|
|
Packit Service |
6754ca |
# User wants to build Dynamic Libraries, so change the LIB_TYPE variable to CMake keyword 'SHARED'
|
|
Packit Service |
6754ca |
SET (LIB_TYPE SHARED)
|
|
Packit Service |
6754ca |
IF (WIN32)
|
|
Packit Service |
6754ca |
ADD_DEFINITIONS(-DOPENEXR_DLL)
|
|
Packit Service |
6754ca |
ENDIF ()
|
|
Packit Service |
6754ca |
ENDIF ()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
IF (USE_ZLIB_WINAPI)
|
|
Packit Service |
6754ca |
ADD_DEFINITIONS(-DZLIB_WINAPI)
|
|
Packit Service |
6754ca |
ENDIF ()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
# Test for GCC-style inline asm support with AVX instructions
|
|
Packit Service |
6754ca |
INCLUDE (CheckCXXSourceCompiles)
|
|
Packit Service |
6754ca |
CHECK_CXX_SOURCE_COMPILES (
|
|
Packit Service |
6754ca |
"
|
|
Packit Service |
6754ca |
int main()
|
|
Packit Service |
6754ca |
{
|
|
Packit Service |
6754ca |
#if defined(__GNUC__) && defined(__SSE2__)
|
|
Packit Service |
6754ca |
int n = 0;
|
|
Packit Service |
6754ca |
int eax = 0;
|
|
Packit Service |
6754ca |
int edx = 0;
|
|
Packit Service |
6754ca |
__asm__(
|
|
Packit Service |
6754ca |
\"xgetbv ;\"
|
|
Packit Service |
6754ca |
\"vzeroupper \"
|
|
Packit Service |
6754ca |
: \"=a\"(eax), \"=d\"(edx) : \"c\"(n) : );
|
|
Packit Service |
6754ca |
#else
|
|
Packit Service |
6754ca |
#error No GCC style inline asm supported for AVX instructions
|
|
Packit Service |
6754ca |
#endif
|
|
Packit Service |
6754ca |
}
|
|
Packit Service |
6754ca |
" HAVE_GCC_INLINE_ASM_AVX)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
# Check if sysconf(_SC_NPROCESSORS_ONLN) can be used for CPU count
|
|
Packit Service |
6754ca |
CHECK_CXX_SOURCE_COMPILES (
|
|
Packit Service |
6754ca |
"
|
|
Packit Service |
6754ca |
#include <unistd.h>
|
|
Packit Service |
6754ca |
int main()
|
|
Packit Service |
6754ca |
{
|
|
Packit Service |
6754ca |
sysconf(_SC_NPROCESSORS_ONLN);
|
|
Packit Service |
6754ca |
}
|
|
Packit Service |
6754ca |
" HAVE_SYSCONF_NPROCESSORS_ONLN)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
# OpenEXRConfig.h generation
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
IF (WIN32)
|
|
Packit Service |
6754ca |
FILE ( WRITE ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_COMPLETE_IOMANIP 1\n" )
|
|
Packit Service |
6754ca |
ELSEIF (APPLE)
|
|
Packit Service |
6754ca |
FILE ( WRITE ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_DARWIN 1\n" )
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_COMPLETE_IOMANIP 1\n" )
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#include <string.h>\n" )
|
|
Packit Service |
6754ca |
ELSE ()
|
|
Packit Service |
6754ca |
# Linux
|
|
Packit Service |
6754ca |
FILE ( WRITE ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_LINUX_PROCFS 1\n" )
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_COMPLETE_IOMANIP 1\n" )
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_LARGE_STACK 1\n" )
|
|
Packit Service |
6754ca |
ENDIF()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
IF (NAMESPACE_VERSIONING)
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_INTERNAL_NAMESPACE_CUSTOM 1\n")
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_NAMESPACE Imf\n" )
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_INTERNAL_NAMESPACE Imf_${OPENEXR_VERSION_API}\n\n" )
|
|
Packit Service |
6754ca |
ELSE ()
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_INTERNAL_NAMESPACE_CUSTOM 0\n")
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_NAMESPACE Imf\n" )
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_INTERNAL_NAMESPACE Imf\n\n" )
|
|
Packit Service |
6754ca |
ENDIF ()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_VERSION_STRING \"${OPENEXR_VERSION}\"\n" )
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_PACKAGE_STRING \"OpenEXR ${OPENEXR_VERSION}\"\n" )
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "
|
|
Packit Service |
6754ca |
#define OPENEXR_VERSION_MAJOR ${OPENEXR_VERSION_MAJOR}
|
|
Packit Service |
6754ca |
#define OPENEXR_VERSION_MINOR ${OPENEXR_VERSION_MINOR}
|
|
Packit Service |
6754ca |
#define OPENEXR_VERSION_PATCH ${OPENEXR_VERSION_PATCH}
|
|
Packit Service |
6754ca |
")
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "
|
|
Packit Service |
6754ca |
// Version as a single hex number, e.g. 0x01000300 == 1.0.3
|
|
Packit Service |
6754ca |
#define OPENEXR_VERSION_HEX ((OPENEXR_VERSION_MAJOR << 24) | \\
|
|
Packit Service |
6754ca |
(OPENEXR_VERSION_MINOR << 16) | \\
|
|
Packit Service |
6754ca |
(OPENEXR_VERSION_PATCH << 8))\n
|
|
Packit Service |
6754ca |
")
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
IF (HAVE_GCC_INLINE_ASM_AVX)
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_GCC_INLINE_ASM_AVX 1\n" )
|
|
Packit Service |
6754ca |
ENDIF()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
IF (HAVE_SYSCONF_NPROCESSORS_ONLN)
|
|
Packit Service |
6754ca |
FILE ( APPEND ${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h "#define OPENEXR_IMF_HAVE_SYSCONF_NPROCESSORS_ONLN 1\n" )
|
|
Packit Service |
6754ca |
ENDIF()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
SET (OPENEXR_LIBSUFFIX "")
|
|
Packit Service |
6754ca |
SET (ILMBASE_LIBSUFFIX "")
|
|
Packit Service |
6754ca |
IF (NAMESPACE_VERSIONING)
|
|
Packit Service |
6754ca |
SET ( OPENEXR_LIBSUFFIX "-${OPENEXR_VERSION_API}" )
|
|
Packit Service |
6754ca |
# assume same NAMESPACE_VERSION setting for IlmBase for now
|
|
Packit Service |
6754ca |
SET ( ILMBASE_LIBSUFFIX "-${OPENEXR_VERSION_API}" )
|
|
Packit Service |
6754ca |
ENDIF ()
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
# IlmImf library
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( IlmImf )
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
SET_TARGET_PROPERTIES ( IlmImf
|
|
Packit Service |
6754ca |
PROPERTIES
|
|
Packit Service |
6754ca |
VERSION 22.0.0
|
|
Packit Service |
6754ca |
SOVERSION 22
|
|
Packit Service |
6754ca |
OUTPUT_NAME "IlmImf${OPENEXR_LIBSUFFIX}"
|
|
Packit Service |
6754ca |
)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
# IlmImfUtil library
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( IlmImfUtil )
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
SET_TARGET_PROPERTIES ( IlmImfUtil
|
|
Packit Service |
6754ca |
PROPERTIES
|
|
Packit Service |
6754ca |
VERSION 22.0.0
|
|
Packit Service |
6754ca |
SOVERSION 22
|
|
Packit Service |
6754ca |
OUTPUT_NAME "IlmImfUtil${OPENEXR_LIBSUFFIX}"
|
|
Packit Service |
6754ca |
)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
# Example Code
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( IlmImfExamples )
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
# Tests
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( IlmImfTest )
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( IlmImfUtilTest )
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( IlmImfFuzzTest )
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
# Binaries / Utilities
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( exrheader )
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( exrmaketiled )
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( exrstdattr )
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( exrmakepreview )
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( exrenvmap )
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( exrmultiview )
|
|
Packit Service |
6754ca |
ADD_SUBDIRECTORY ( exrmultipart )
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
# Installation
|
|
Packit Service |
6754ca |
##########################
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
INSTALL ( FILES
|
|
Packit Service |
6754ca |
${CMAKE_CURRENT_BINARY_DIR}/config/OpenEXRConfig.h
|
|
Packit Service |
6754ca |
DESTINATION
|
|
Packit Service |
6754ca |
${CMAKE_INSTALL_PREFIX}/include/OpenEXR
|
|
Packit Service |
6754ca |
)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
# Documentation
|
|
Packit Service |
6754ca |
INSTALL ( FILES
|
|
Packit Service |
6754ca |
doc/TechnicalIntroduction.pdf
|
|
Packit Service |
6754ca |
doc/ReadingAndWritingImageFiles.pdf
|
|
Packit Service |
6754ca |
doc/OpenEXRFileLayout.pdf
|
|
Packit Service |
6754ca |
doc/MultiViewOpenEXR.pdf
|
|
Packit Service |
6754ca |
doc/InterpretingDeepPixels.pdf
|
|
Packit Service |
6754ca |
doc/TheoryDeepPixels.pdf
|
|
Packit Service |
6754ca |
DESTINATION
|
|
Packit Service |
6754ca |
${CMAKE_INSTALL_PREFIX}/share/doc/OpenEXR-${OPENEXR_VERSION}
|
|
Packit Service |
6754ca |
)
|
|
Packit Service |
6754ca |
|
|
Packit Service |
6754ca |
# Examples
|
|
Packit Service |
6754ca |
INSTALL ( FILES
|
|
Packit Service |
6754ca |
IlmImfExamples/main.cpp
|
|
Packit Service |
6754ca |
IlmImfExamples/drawImage.cpp
|
|
Packit Service |
6754ca |
IlmImfExamples/rgbaInterfaceExamples.cpp
|
|
Packit Service |
6754ca |
IlmImfExamples/rgbaInterfaceTiledExamples.cpp
|
|
Packit Service |
6754ca |
IlmImfExamples/generalInterfaceExamples.cpp
|
|
Packit Service |
6754ca |
IlmImfExamples/lowLevelIoExamples.cpp
|
|
Packit Service |
6754ca |
IlmImfExamples/previewImageExamples.cpp
|
|
Packit Service |
6754ca |
IlmImfExamples/generalInterfaceTiledExamples.cpp
|
|
Packit Service |
6754ca |
IlmImfExamples/generalInterfaceTiledExamples.h
|
|
Packit Service |
6754ca |
IlmImfExamples/drawImage.h
|
|
Packit Service |
6754ca |
IlmImfExamples/rgbaInterfaceExamples.h
|
|
Packit Service |
6754ca |
IlmImfExamples/generalInterfaceExamples.h
|
|
Packit Service |
6754ca |
IlmImfExamples/rgbaInterfaceTiledExamples.h
|
|
Packit Service |
6754ca |
IlmImfExamples/lowLevelIoExamples.h
|
|
Packit Service |
6754ca |
IlmImfExamples/previewImageExamples.h
|
|
Packit Service |
6754ca |
IlmImfExamples/namespaceAlias.h
|
|
Packit Service |
6754ca |
DESTINATION
|
|
Packit Service |
6754ca |
${CMAKE_INSTALL_PREFIX}/share/doc/OpenEXR-${OPENEXR_VERSION}/examples
|
|
Packit Service |
6754ca |
)
|