44 lines
1.6 KiB
CMake
44 lines
1.6 KiB
CMake
# Find module for Grantlee5 (Qt5) / Grantlee (Qt6 compatible)
|
|
# Grantlee 5.3.0 provides Qt6-compatible targets
|
|
|
|
if (TARGET Grantlee5::Templates)
|
|
set(Grantlee5_FOUND TRUE)
|
|
return()
|
|
endif()
|
|
|
|
# Try config-mode: look for Grantlee5Config.cmake in standard locations
|
|
# Grantlee 5.3.0 installs to /usr/local/lib/cmake/Grantlee5/
|
|
find_package(Grantlee5 CONFIG QUIET)
|
|
if(TARGET Grantlee5::Templates)
|
|
set(Grantlee5_FOUND TRUE)
|
|
return()
|
|
endif()
|
|
|
|
# Try pkg-config as a best-effort (may fail)
|
|
find_package(PkgConfig QUIET)
|
|
if (PKG_CONFIG_FOUND)
|
|
pkg_check_modules(GRANTLEE5 QUIET grantlee-templates)
|
|
if (GRANTLEE5_FOUND)
|
|
set(Grantlee5_FOUND TRUE)
|
|
# No imported targets provided by this shim
|
|
return()
|
|
endif()
|
|
endif()
|
|
|
|
# Try config-mode: look for Grantlee5Config.cmake in CMAKE_PREFIX_PATH or installed location
|
|
# Try to locate Grantlee5Config.cmake via common locations: CMAKE_PREFIX_PATH, EXTERNAL_DIR, repo/external, and typical install paths
|
|
find_file(_Grantlee5Config NAMES Grantlee5Config.cmake
|
|
PATHS ${CMAKE_PREFIX_PATH} $ENV{EXTERNAL_DIR} ${CMAKE_SOURCE_DIR}/../external /home/torsten/swy/sandbox/external /repo/external /repo/external/grantlee /usr/local/lib/cmake/Grantlee5
|
|
PATH_SUFFIXES grantlee/lib/cmake/Grantlee5 lib/cmake/Grantlee5)
|
|
if(_Grantlee5Config)
|
|
include(${_Grantlee5Config})
|
|
if(TARGET Grantlee5::Templates)
|
|
set(Grantlee5_FOUND TRUE)
|
|
return()
|
|
endif()
|
|
endif()
|
|
|
|
# Not found: provide helpful message and stop. Downstream CMakeLists check TARGET Grantlee5::Templates
|
|
set(Grantlee5_FOUND FALSE)
|
|
message(STATUS "Grantlee5 not found (shim cmake/FindGrantlee5.cmake); codegen_grantlee will be skipped if present.")
|