Files
how-to-vulkan/ktx/tools/ktx/CMakeLists.txt
T
2026-06-14 19:09:18 +01:00

99 lines
1.9 KiB
CMake

# Copyright 2022-2023 The Khronos Group Inc.
# Copyright 2022-2023 RasterGrid Kft.
# SPDX-License-Identifier: Apache-2.0
add_executable(ktxtools
command.cpp
command.h
command_compare.cpp
command_create.cpp
command_deflate.cpp
command_encode.cpp
command_extract.cpp
command_help.cpp
command_info.cpp
command_transcode.cpp
command_validate.cpp
deflate_utils.h
encode_utils_astc.h
encode_utils_basis.h
encode_utils_common.h
format_descriptor.h
formats.h
fragment_uri.h
ktx_main.cpp
metrics_utils.h
transcode_utils.cpp
transcode_utils.h
utility.h
validate.cpp
validate.h
validation_messages.h
)
create_version_header(tools/ktx ktxtools)
set_target_properties(
ktxtools
PROPERTIES
OUTPUT_NAME ktx
PDB_NAME ktxtools # Avoid conflict with libktx's .pdb.
)
target_include_directories(
ktxtools
PRIVATE
.
$<TARGET_PROPERTY:imageio,INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:ktx,INCLUDE_DIRECTORIES>
)
target_include_directories(
ktxtools
SYSTEM
PRIVATE
${PROJECT_SOURCE_DIR}/lib
${PROJECT_SOURCE_DIR}/other_include
)
target_link_libraries(
ktxtools
PRIVATE
imageio
objUtil
ktx
${ASTCENC_LIB_TARGET}
$<IF:$<BOOL:${WIN32}>,Pathcch,> # For PathCchRemoveFileSpec on Windows
fmt::fmt
cxxopts::cxxopts
)
target_compile_definitions(
ktxtools
PRIVATE
$<TARGET_PROPERTY:ktx,INTERFACE_COMPILE_DEFINITIONS>
)
target_compile_features(
ktxtools
PUBLIC
cxx_std_17
)
if (KTX_DEVELOPER_FEATURE_PATCH)
target_sources(
ktxtools
PRIVATE
command_patch.cpp
)
target_compile_definitions(
ktxtools
PRIVATE
KTX_DEVELOPER_FEATURE_PATCH=1
)
endif()
set_tool_properties(ktxtools)
set_code_sign(ktxtools)