2424 pkg_check_modules (PC_KTX QUIET ktx libktx ktx2 libktx2 )
2525 endif ()
2626
27- # Try to find KTX using standard find_path/find_library
27+ # Try to find KTX using standard find_package
2828 find_path (KTX_INCLUDE_DIR
2929 NAMES ktx.h
3030 PATH_SUFFIXES include ktx KTX ktx2 KTX2
@@ -51,18 +51,35 @@ else()
5151 ${CMAKE_SOURCE_DIR} /external/ktx/lib
5252 )
5353
54- if (KTX_INCLUDE_DIR AND KTX_LIBRARY)
55- set (KTX_FOUND TRUE )
56- else ()
57- set (KTX_FOUND FALSE )
54+ include (FindPackageHandleStandardArgs )
55+ find_package_handle_standard_args (KTX
56+ REQUIRED_VARS KTX_INCLUDE_DIR KTX_LIBRARY
57+ FAIL_MESSAGE "" # Suppress the error message to allow our fallback
58+ )
59+
60+ # Debug output if KTX is not found (only on non-Linux platforms)
61+ if (NOT KTX_FOUND)
62+ message (STATUS "KTX include directory search paths: ${PC_KTX_INCLUDEDIR} , /usr/include, /usr/local/include, $ENV{KTX_DIR} /include, $ENV{VULKAN_SDK} /include, ${CMAKE_SOURCE_DIR} /external/ktx/include" )
63+ message (STATUS "KTX library search paths: ${PC_KTX_LIBDIR} , /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64, $ENV{KTX_DIR} /lib, $ENV{VULKAN_SDK} /lib, ${CMAKE_SOURCE_DIR} /external/ktx/lib" )
5864 endif ()
5965endif ()
6066
61- # If not found, use FetchContent to download and build
62- if (NOT KTX_FOUND)
67+ if (KTX_FOUND)
68+ set (KTX_INCLUDE_DIRS ${KTX_INCLUDE_DIR} )
69+ set (KTX_LIBRARIES ${KTX_LIBRARY} )
70+
71+ if (NOT TARGET KTX::ktx)
72+ add_library (KTX::ktx UNKNOWN IMPORTED )
73+ set_target_properties (KTX::ktx PROPERTIES
74+ IMPORTED_LOCATION "${KTX_LIBRARIES} "
75+ INTERFACE_INCLUDE_DIRECTORIES "${KTX_INCLUDE_DIRS} "
76+ )
77+ endif ()
78+ else ()
79+ # If not found, use FetchContent to download and build
6380 include (FetchContent )
6481
65- # Only show the message on non-Linux platforms (on Linux we expect to fetch)
82+ # Only show the message on non-Linux platforms
6683 if (NOT (UNIX AND NOT APPLE ))
6784 message (STATUS "KTX not found, fetching from GitHub..." )
6885 endif ()
@@ -87,24 +104,3 @@ if(NOT KTX_FOUND)
87104
88105 set (KTX_FOUND TRUE )
89106endif ()
90-
91- # Finalize the variables and targets
92- include (FindPackageHandleStandardArgs )
93- find_package_handle_standard_args (KTX
94- REQUIRED_VARS KTX_FOUND
95- )
96-
97- if (KTX_FOUND)
98- if (KTX_INCLUDE_DIR AND KTX_LIBRARY)
99- set (KTX_INCLUDE_DIRS ${KTX_INCLUDE_DIR} )
100- set (KTX_LIBRARIES ${KTX_LIBRARY} )
101-
102- if (NOT TARGET KTX::ktx)
103- add_library (KTX::ktx UNKNOWN IMPORTED )
104- set_target_properties (KTX::ktx PROPERTIES
105- IMPORTED_LOCATION "${KTX_LIBRARIES} "
106- INTERFACE_INCLUDE_DIRECTORIES "${KTX_INCLUDE_DIRS} "
107- )
108- endif ()
109- endif ()
110- endif ()
0 commit comments