Hyprland/meson.build
Jan Beich f9523aad77 meson: unbreak build with aquamarine
In file included from ../src/protocols/DRMLease.cpp:1:
../src/protocols/DRMLease.hpp:7:10: fatal error: 'drm-lease-v1.hpp' file not found
    7 | #include "drm-lease-v1.hpp"
      |          ^~~~~~~~~~~~~~~~~~
In file included from ../src/render/Renderer.cpp:17:
../src/render/../protocols/DRMSyncobj.hpp:6:10: fatal error: 'linux-drm-syncobj-v1.hpp' file not found
    6 | #include "linux-drm-syncobj-v1.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
ld: error: undefined symbol: Aquamarine::CBackend::hasSession()
>>> referenced by Renderer.cpp
>>>               src/Hyprland.p/render_Renderer.cpp.o:(CHyprRenderer::CHyprRenderer())
>>> referenced by KeybindManager.cpp
>>>               src/Hyprland.p/managers_KeybindManager.cpp.o:(CKeybindManager::handleVT(unsigned int))
>>> referenced by Monitors.cpp
>>>               src/Hyprland.p/events_Monitors.cpp.o:(Events::listener_monitorFrame(void*, void*))
>>> referenced 8 more times

ld: error: undefined symbol: gbm_create_device
>>> referenced by OpenGL.cpp
>>>               src/Hyprland.p/render_OpenGL.cpp.o:(CHyprOpenGLImpl::CHyprOpenGLImpl())

ld: error: undefined symbol: XcursorShapeLoadImage
>>> referenced by CursorManager.cpp
>>>               src/Hyprland.p/managers_CursorManager.cpp.o:(CCursorManager::SXCursorManager::loadTheme(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int))
>>> referenced by CursorManager.cpp
>>>               src/Hyprland.p/managers_CursorManager.cpp.o:(CCursorManager::SXCursorManager::loadTheme(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int))
>>> referenced by CursorManager.cpp
>>>               src/Hyprland.p/managers_CursorManager.cpp.o:(CCursorManager::SXCursorManager::loadTheme(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, int))
2024-07-07 16:29:13 +03:00

83 lines
2.5 KiB
Meson

project('Hyprland', 'cpp', 'c',
version : run_command('jq', '-r', '.version', join_paths(meson.source_root(), 'props.json'), check: true).stdout().strip(),
default_options : [
'warning_level=2',
'default_library=static',
'optimization=3',
'buildtype=release',
'debug=false',
'cpp_std=c++23',
])
add_project_arguments(
[
'-Wno-unused-parameter',
'-Wno-unused-value',
'-Wno-missing-field-initializers',
'-Wno-narrowing',
'-Wno-pointer-arith',
],
language: 'cpp')
cpp_compiler = meson.get_compiler('cpp')
if cpp_compiler.check_header('execinfo.h')
add_project_arguments('-DHAS_EXECINFO', language: 'cpp')
endif
xcb_dep = dependency('xcb', required: get_option('xwayland'))
xcb_composite_dep = dependency('xcb-composite', required: get_option('xwayland'))
xcb_errors_dep = dependency('xcb-errors', required: get_option('xwayland'))
xcb_icccm_dep = dependency('xcb-icccm', required: get_option('xwayland'))
xcb_render_dep = dependency('xcb-render', required: get_option('xwayland'))
xcb_res_dep = dependency('xcb-res', required: get_option('xwayland'))
xcb_xfixes_dep = dependency('xcb-xfixes', required: get_option('xwayland'))
cmake = import('cmake')
udis = cmake.subproject('udis86')
udis86 = udis.dependency('libudis86')
if not xcb_dep.found()
add_project_arguments('-DNO_XWAYLAND', language: 'cpp')
endif
backtrace_dep = cpp_compiler.find_library('execinfo', required: false)
epoll_dep = dependency('epoll-shim', required: false) # timerfd on BSDs
if get_option('systemd').enabled()
add_project_arguments('-DUSES_SYSTEMD', language: 'cpp')
endif
if get_option('legacy_renderer').enabled()
add_project_arguments('-DLEGACY_RENDERER', language: 'cpp')
endif
if get_option('buildtype') == 'debug'
add_project_arguments('-DHYPRLAND_DEBUG', language: 'cpp')
endif
version_h = run_command('sh', '-c', 'scripts/generateVersion.sh', check: true)
globber = run_command('find', 'src', '-name', '*.h*', check: true)
headers = globber.stdout().strip().split('\n')
foreach file : headers
install_headers(file, subdir: 'hyprland', preserve_path: true)
endforeach
subdir('protocols')
subdir('src')
subdir('hyprctl')
subdir('hyprpm/src')
subdir('assets')
subdir('example')
subdir('docs')
pkg_install_dir = join_paths(get_option('datadir'), 'pkgconfig')
import('pkgconfig').generate(
name: 'Hyprland',
filebase: 'hyprland',
url: 'https://github.com/hyprwm/Hyprland',
description: 'Hyprland header files',
install_dir: pkg_install_dir,
subdirs: ['', 'hyprland/protocols', 'hyprland'],
)