mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-22 12:46:00 +01:00
CMake: use udis86 from pkg-config, fallback to subproject
Only canihavesomecoffee's fork (the one the subproject uses) provides a .pc file, so we either find the correct version or we use the subproject.
This commit is contained in:
parent
89d945aabe
commit
be96787ed0
1 changed files with 20 additions and 7 deletions
|
@ -25,8 +25,18 @@ message(STATUS "Gathering git info")
|
||||||
execute_process(COMMAND ./scripts/generateVersion.sh
|
execute_process(COMMAND ./scripts/generateVersion.sh
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
|
||||||
|
|
||||||
# udis
|
find_package(PkgConfig REQUIRED)
|
||||||
add_subdirectory("subprojects/udis86")
|
|
||||||
|
# Try to find canihavesomecoffee's udis86 using pkgconfig vmd/udis86 does not
|
||||||
|
# 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
|
||||||
|
if(NOT udis_dep_FOUND)
|
||||||
|
add_subdirectory("subprojects/udis86")
|
||||||
|
include_directories("subprojects/udis86")
|
||||||
|
message(STATUS "udis86 dependency not found, falling back to subproject")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE)
|
if(CMAKE_BUILD_TYPE)
|
||||||
string(TOLOWER ${CMAKE_BUILD_TYPE} BUILDTYPE_LOWER)
|
string(TOLOWER ${CMAKE_BUILD_TYPE} BUILDTYPE_LOWER)
|
||||||
|
@ -47,8 +57,6 @@ else()
|
||||||
set(BUILDTYPE_LOWER "release")
|
set(BUILDTYPE_LOWER "release")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
find_package(PkgConfig REQUIRED)
|
|
||||||
|
|
||||||
pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
|
pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
|
||||||
message(STATUS "Found wayland-protocols at ${WAYLAND_PROTOCOLS_DIR}")
|
message(STATUS "Found wayland-protocols at ${WAYLAND_PROTOCOLS_DIR}")
|
||||||
pkg_get_variable(WAYLAND_SCANNER_PKGDATA_DIR wayland-scanner pkgdatadir)
|
pkg_get_variable(WAYLAND_SCANNER_PKGDATA_DIR wayland-scanner pkgdatadir)
|
||||||
|
@ -63,7 +71,8 @@ else()
|
||||||
message(STATUS "Configuring Hyprland in Release with CMake")
|
message(STATUS "Configuring Hyprland in Release with CMake")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(. "src/" "subprojects/udis86/" "protocols/")
|
include_directories(. "src/" "protocols/")
|
||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 26)
|
set(CMAKE_CXX_STANDARD 26)
|
||||||
add_compile_options(
|
add_compile_options(
|
||||||
-Wall
|
-Wall
|
||||||
|
@ -224,6 +233,11 @@ target_precompile_headers(Hyprland PRIVATE
|
||||||
message(STATUS "Setting link libraries")
|
message(STATUS "Setting link libraries")
|
||||||
|
|
||||||
target_link_libraries(Hyprland rt PkgConfig::aquamarine_dep PkgConfig::deps)
|
target_link_libraries(Hyprland rt PkgConfig::aquamarine_dep PkgConfig::deps)
|
||||||
|
if(udis_dep_FOUND)
|
||||||
|
target_link_libraries(Hyprland PkgConfig::udis_dep)
|
||||||
|
else()
|
||||||
|
target_link_libraries(Hyprland libudis86)
|
||||||
|
endif()
|
||||||
|
|
||||||
# used by `make installheaders`, to ensure the headers are generated
|
# used by `make installheaders`, to ensure the headers are generated
|
||||||
add_custom_target(generate-protocol-headers)
|
add_custom_target(generate-protocol-headers)
|
||||||
|
@ -258,8 +272,7 @@ function(protocolWayland)
|
||||||
PRIVATE ${CMAKE_SOURCE_DIR}/protocols/wayland.hpp)
|
PRIVATE ${CMAKE_SOURCE_DIR}/protocols/wayland.hpp)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
target_link_libraries(Hyprland OpenGL::EGL OpenGL::GL Threads::Threads
|
target_link_libraries(Hyprland OpenGL::EGL OpenGL::GL Threads::Threads)
|
||||||
libudis86)
|
|
||||||
|
|
||||||
pkg_check_modules(hyprland_protocols_dep hyprland-protocols>=0.2.0)
|
pkg_check_modules(hyprland_protocols_dep hyprland-protocols>=0.2.0)
|
||||||
if(hyprland_protocols_dep_FOUND)
|
if(hyprland_protocols_dep_FOUND)
|
||||||
|
|
Loading…
Reference in a new issue