cmake_minimum_required(VERSION 3.14) project(tinyexr VERSION ${TINYEXR_VERSION} LANGUAGES C CXX) include(GNUInstallDirs) include(CMakePackageConfigHelpers) include(CTest) find_package(ZLIB REQUIRED) add_library(tinyexr SHARED tinyexr.cc) target_include_directories(tinyexr PUBLIC $ $ ) target_compile_features(tinyexr PRIVATE cxx_auto_type) target_link_libraries(tinyexr PRIVATE ZLIB::ZLIB) set_target_properties(tinyexr PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${TINYEXR_SOVERSION} CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON ) add_library(tinyexr::tinyexr ALIAS tinyexr) configure_package_config_file( tinyexrConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/tinyexrConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/tinyexr NO_SET_AND_CHECK_MACRO NO_CHECK_REQUIRED_COMPONENTS_MACRO ) write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/tinyexrConfigVersion.cmake COMPATIBILITY SameMinorVersion ARCH_INDEPENDENT ) install(FILES tinyexr.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tinyexrConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/tinyexrConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/tinyexr ) install(TARGETS tinyexr EXPORT tinyexrTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(EXPORT tinyexrTargets DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/tinyexr NAMESPACE tinyexr:: ) if(BUILD_TESTING) add_executable(test_tinyexr test_tinyexr.cc) target_link_libraries(test_tinyexr tinyexr::tinyexr) add_test(NAME test_tinyexr COMMAND test_tinyexr ${CMAKE_CURRENT_SOURCE_DIR}/asakusa.exr) endif()