mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-02 15:25:58 +01:00
Add custom cmake target for installheaders
This will ensure the correct headers are generated before trying to install them.
This commit is contained in:
parent
71c2ff3105
commit
a71207434c
2 changed files with 12 additions and 6 deletions
|
@ -219,6 +219,9 @@ message(STATUS "Setting link libraries")
|
||||||
|
|
||||||
target_link_libraries(Hyprland rt PkgConfig::deps)
|
target_link_libraries(Hyprland rt PkgConfig::deps)
|
||||||
|
|
||||||
|
# used by `make installheaders`, to ensure the headers are generated
|
||||||
|
add_custom_target(generate-protocol-headers)
|
||||||
|
|
||||||
function(protocol protoPath protoName external)
|
function(protocol protoPath protoName external)
|
||||||
if (external)
|
if (external)
|
||||||
set(path ${CMAKE_SOURCE_DIR}/${protoPath})
|
set(path ${CMAKE_SOURCE_DIR}/${protoPath})
|
||||||
|
@ -236,9 +239,10 @@ function(protocol protoPath protoName external)
|
||||||
COMMAND ${WaylandScanner} private-code ${path} protocols/${protoName}-protocol.c
|
COMMAND ${WaylandScanner} private-code ${path} protocols/${protoName}-protocol.c
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
)
|
)
|
||||||
target_sources(Hyprland PRIVATE ${CMAKE_SOURCE_DIR}/protocols/${protoName}-protocol.h)
|
target_sources(Hyprland PRIVATE ${CMAKE_SOURCE_DIR}/protocols/${protoName}-protocol.h ${CMAKE_SOURCE_DIR}/protocols/${protoName}-protocol.c)
|
||||||
target_sources(Hyprland PRIVATE ${CMAKE_SOURCE_DIR}/protocols/${protoName}-protocol.c)
|
target_sources(generate-protocol-headers PRIVATE ${CMAKE_SOURCE_DIR}/protocols/${protoName}-protocol.h)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(protocolNew protoPath protoName external)
|
function(protocolNew protoPath protoName external)
|
||||||
if (external)
|
if (external)
|
||||||
set(path ${CMAKE_SOURCE_DIR}/${protoPath})
|
set(path ${CMAKE_SOURCE_DIR}/${protoPath})
|
||||||
|
@ -251,8 +255,8 @@ function(protocolNew protoPath protoName external)
|
||||||
COMMAND hyprwayland-scanner ${path}/${protoName}.xml ${CMAKE_SOURCE_DIR}/protocols/
|
COMMAND hyprwayland-scanner ${path}/${protoName}.xml ${CMAKE_SOURCE_DIR}/protocols/
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
)
|
)
|
||||||
target_sources(Hyprland PRIVATE protocols/${protoName}.cpp)
|
target_sources(Hyprland PRIVATE protocols/${protoName}.cpp protocols/${protoName}.hpp)
|
||||||
target_sources(Hyprland PRIVATE protocols/${protoName}.hpp)
|
target_sources(generate-protocol-headers PRIVATE ${CMAKE_SOURCE_DIR}/protocols/${protoName}.hpp)
|
||||||
endfunction()
|
endfunction()
|
||||||
function(protocolWayland)
|
function(protocolWayland)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
|
@ -261,8 +265,8 @@ function(protocolWayland)
|
||||||
COMMAND hyprwayland-scanner --wayland-enums ${WAYLAND_SERVER_DIR}/wayland.xml ${CMAKE_SOURCE_DIR}/protocols/
|
COMMAND hyprwayland-scanner --wayland-enums ${WAYLAND_SERVER_DIR}/wayland.xml ${CMAKE_SOURCE_DIR}/protocols/
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
)
|
)
|
||||||
target_sources(Hyprland PRIVATE protocols/wayland.cpp)
|
target_sources(Hyprland PRIVATE protocols/wayland.cpp protocols/wayland.hpp)
|
||||||
target_sources(Hyprland PRIVATE protocols/wayland.hpp)
|
target_sources(generate-protocol-headers PRIVATE ${CMAKE_SOURCE_DIR}/protocols/wayland.hpp)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
target_link_libraries(Hyprland
|
target_link_libraries(Hyprland
|
||||||
|
|
2
Makefile
2
Makefile
|
@ -53,6 +53,8 @@ installheaders:
|
||||||
mkdir -p ${PREFIX}/include/hyprland/wlr
|
mkdir -p ${PREFIX}/include/hyprland/wlr
|
||||||
mkdir -p ${PREFIX}/share/pkgconfig
|
mkdir -p ${PREFIX}/share/pkgconfig
|
||||||
|
|
||||||
|
cmake --build ./build --config Release --target generate-protocol-headers
|
||||||
|
|
||||||
find src -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland
|
find src -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland
|
||||||
cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlr && cd ../../../..
|
cd subprojects/wlroots-hyprland/include/wlr && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlr && cd ../../../..
|
||||||
cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlr && cd ../../../..
|
cd subprojects/wlroots-hyprland/build/include && find . -name '*.h*' -print0 | cpio --quiet -0dump ${PREFIX}/include/hyprland/wlr && cd ../../../..
|
||||||
|
|
Loading…
Reference in a new issue