Skip to content

Commit 6e9f0f0

Browse files
committed
Revert "Refactor FindKTX.cmake to fix FetchContent fallback and improve cross-platform compatibility"
This reverts commit be6848e.
1 parent ca5c1c3 commit 6e9f0f0

2 files changed

Lines changed: 50 additions & 58 deletions

File tree

attachments/CMake/FindKTX.cmake

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ else()
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()
5965
endif()
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)
89106
endif()
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()

attachments/simple_engine/CMake/FindKTX.cmake

Lines changed: 25 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ else()
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()
5965
endif()
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)
89106
endif()
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

Comments
 (0)