Files
2026-06-14 19:09:18 +01:00

112 lines
2.5 KiB
CMake

# Copyright 2022 The Khronos Group Inc.
# SPDX-License-Identifier: Apache-2.0
set( PLUGIN_SOURCES
exr.imageio/exrinput.cc
jpg.imageio/jpginput.cc
npbm.imageio/npbminput.cc
png.imageio/pnginput.cc
png.imageio/pngoutput.cc
)
set( PLUGIN_HEADERS
)
set( EXTERNAL
"${PROJECT_SOURCE_DIR}/external"
)
set( EXR_PLUGIN_EXTERNAL_SOURCES
)
set( EXR_PLUGIN_EXTERNAL_HEADERS
${EXTERNAL}/astc-encoder/Source/ThirdParty/tinyexr.h
)
set( JPG_PLUGIN_EXTERNAL_SOURCES
${EXTERNAL}/basisu/encoder/jpgd.cpp
)
set( JPG_PLUGIN_EXTERNAL_HEADERS
${EXTERNAL}/basisu/encoder/jpgd.h
)
set( PNG_PLUGIN_EXTERNAL_SOURCES
${EXTERNAL}/lodepng/lodepng.cpp
)
set( PNG_PLUGIN_EXTERNAL_HEADERS
${EXTERNAL}/lodepng/lodepng.h
)
add_library( imageio STATIC
formatdesc.h
image.hpp
imagecodec.hpp
imagespan.hpp
imageinput.cc
imageio.cc
imageio.h
imageio_utility.h
imageoutput.cc
${PLUGIN_HEADERS}
${PLUGIN_SOURCES}
${EXR_PLUGIN_EXTERNAL_HEADERS}
${EXR_PLUGIN_EXTERNAL_SOURCES}
${JPG_PLUGIN_EXTERNAL_HEADERS}
${JPG_PLUGIN_EXTERNAL_SOURCES}
${PNG_PLUGIN_EXTERNAL_HEADERS}
${PNG_PLUGIN_EXTERNAL_SOURCES}
)
source_group(TREE "${CMAKE_CURRENT_LIST_DIR}" PREFIX "Source Files" FILES ${PLUGIN_SOURCES})
source_group(TREE "${CMAKE_CURRENT_LIST_DIR}" PREFIX "Header Files" FILES ${PLUGIN_HEADERS})
source_group("Header Files/exr.imageio" FILES
${EXR_PLUGIN_EXTERNAL_SOURCES}
)
source_group("Header Files/exr.imageio" FILES
${EXR_PLUGIN_EXTERNAL_HEADERS}
)
source_group("Source Files/jpg.imageio" FILES
${JPG_PLUGIN_EXTERNAL_SOURCES}
)
source_group("Header Files/jpg.imageio" FILES
${JPG_PLUGIN_EXTERNAL_HEADERS}
)
source_group("Source Files/png.imageio" FILES
${PNG_PLUGIN_EXTERNAL_SOURCES}
)
source_group("Header Files/png.imageio" FILES
${PNG_PLUGIN_EXTERNAL_HEADERS}
)
target_include_directories(
imageio
PUBLIC
.
PRIVATE
$<TARGET_PROPERTY:objUtil,INTERFACE_INCLUDE_DIRECTORIES>
)
target_include_directories(
imageio
SYSTEM
PUBLIC
${PROJECT_SOURCE_DIR}/other_include
PRIVATE
"${PROJECT_SOURCE_DIR}/external/astc-encoder/Source/ThirdParty"
"${PROJECT_SOURCE_DIR}/external/basisu"
"${PROJECT_SOURCE_DIR}/external/dfdutils"
"${PROJECT_SOURCE_DIR}/external/lodepng"
)
target_compile_definitions(
imageio
PRIVATE
$<TARGET_PROPERTY:ktx,INTERFACE_COMPILE_DEFINITIONS>
)
target_compile_features(imageio PUBLIC cxx_std_17)
target_link_libraries(imageio fmt::fmt)
set_target_properties(imageio PROPERTIES
CXX_VISIBILITY_PRESET ${STATIC_APP_LIB_SYMBOL_VISIBILITY}
)