summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorSASANO Takayoshi <uaa@uaa.org.uk>2025-11-27 07:10:02 +0900
committerGitHub <noreply@github.com>2025-11-26 22:10:02 +0000
commit4e5a284bc46437a2db66e7876b80dd3a064796b1 (patch)
treede05d8f45475e13f6d12e94562ca1ccc1b618057 /CMakeLists.txt
parent210930bef93916b6271685277e54b0dedb46214e (diff)
CMakeLists.txt: improve libudis86 and librt detection (#12472)
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt24
1 files changed, 19 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7062e7d9..2d47b57f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -33,11 +33,23 @@ find_package(PkgConfig REQUIRED)
# provide a .pc file and won't be detected this way
pkg_check_modules(udis_dep IMPORTED_TARGET udis86>=1.7.2)
-# Fallback to subproject
+# Find non-pkgconfig udis86, otherwise fallback to subproject
if(NOT udis_dep_FOUND)
- add_subdirectory("subprojects/udis86")
- include_directories("subprojects/udis86")
- message(STATUS "udis86 dependency not found, falling back to subproject")
+ find_library(udis_nopc udis86)
+ if(NOT("${udis_nopc}" MATCHES "udis_nopc-NOTFOUND"))
+ message(STATUS "Found udis86 at ${udis_nopc}")
+ else()
+ add_subdirectory("subprojects/udis86")
+ include_directories("subprojects/udis86")
+ message(STATUS "udis86 dependency not found, falling back to subproject")
+ endif()
+endif()
+
+find_library(librt rt)
+if("${librt}" MATCHES "librt-NOTFOUND")
+ unset(LIBRT)
+else()
+ set(LIBRT rt)
endif()
if(CMAKE_BUILD_TYPE)
@@ -358,7 +370,7 @@ message(STATUS "Setting link libraries")
target_link_libraries(
Hyprland
- rt
+ ${LIBRT}
PkgConfig::aquamarine_dep
PkgConfig::hyprlang_dep
PkgConfig::hyprutils_dep
@@ -367,6 +379,8 @@ target_link_libraries(
PkgConfig::deps)
if(udis_dep_FOUND)
target_link_libraries(Hyprland PkgConfig::udis_dep)
+elseif(NOT("${udis_nopc}" MATCHES "udis_nopc-NOTFOUND"))
+ target_link_libraries(Hyprland ${udis_nopc})
else()
target_link_libraries(Hyprland libudis86)
endif()