mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-26 18:45:58 +01:00
build: update meson, cmake setup
- meson . fix run_command() check warning . drop lines for compatability, as it's already using c++23 - cmake . generate `compile_commands.json` by default . position independent build: __FILE__
This commit is contained in:
parent
4daa5c0658
commit
3c907f7830
2 changed files with 11 additions and 17 deletions
|
@ -90,9 +90,12 @@ include_directories(
|
||||||
"protocols/")
|
"protocols/")
|
||||||
set(CMAKE_CXX_STANDARD 23)
|
set(CMAKE_CXX_STANDARD 23)
|
||||||
add_compile_definitions(WLR_USE_UNSTABLE)
|
add_compile_definitions(WLR_USE_UNSTABLE)
|
||||||
add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith)
|
add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value
|
||||||
|
-Wno-missing-field-initializers -Wno-narrowing -Wno-pointer-arith
|
||||||
|
-fmacro-prefix-map=${CMAKE_SOURCE_DIR}/=)
|
||||||
|
|
||||||
set(CMAKE_EXECUTABLE_ENABLE_EXPORTS TRUE)
|
set(CMAKE_EXECUTABLE_ENABLE_EXPORTS TRUE)
|
||||||
|
set(CMAKE_EXPORT_COMPILE_COMMANDS TRUE)
|
||||||
|
|
||||||
message(STATUS "Checking deps...")
|
message(STATUS "Checking deps...")
|
||||||
|
|
||||||
|
|
19
meson.build
19
meson.build
|
@ -5,30 +5,21 @@ project('Hyprland', 'cpp', 'c',
|
||||||
'default_library=static',
|
'default_library=static',
|
||||||
'optimization=3',
|
'optimization=3',
|
||||||
'buildtype=release',
|
'buildtype=release',
|
||||||
'debug=false'
|
'debug=false',
|
||||||
# 'cpp_std=c++23' # not yet supported by meson, as of version 0.63.0
|
'cpp_std=c++23',
|
||||||
])
|
])
|
||||||
|
|
||||||
# clang v14.0.6 uses C++2b instead of C++23, so we've gotta account for that
|
|
||||||
# replace the following with a project default option once meson gets support for C++23
|
|
||||||
cpp_compiler = meson.get_compiler('cpp')
|
|
||||||
if cpp_compiler.has_argument('-std=c++23')
|
|
||||||
add_global_arguments('-std=c++23', language: 'cpp')
|
|
||||||
elif cpp_compiler.has_argument('-std=c++2b')
|
|
||||||
add_global_arguments('-std=c++2b', language: 'cpp')
|
|
||||||
else
|
|
||||||
error('Could not configure current C++ compiler (' + cpp_compiler.get_id() + ' ' + cpp_compiler.version() + ') with required C++ standard (C++23)')
|
|
||||||
endif
|
|
||||||
|
|
||||||
add_project_arguments(
|
add_project_arguments(
|
||||||
[
|
[
|
||||||
'-Wno-unused-parameter',
|
'-Wno-unused-parameter',
|
||||||
'-Wno-unused-value',
|
'-Wno-unused-value',
|
||||||
'-Wno-missing-field-initializers',
|
'-Wno-missing-field-initializers',
|
||||||
'-Wno-narrowing',
|
'-Wno-narrowing',
|
||||||
|
'-Wno-pointer-arith',
|
||||||
],
|
],
|
||||||
language: 'cpp')
|
language: 'cpp')
|
||||||
|
|
||||||
|
cpp_compiler = meson.get_compiler('cpp')
|
||||||
if cpp_compiler.check_header('execinfo.h')
|
if cpp_compiler.check_header('execinfo.h')
|
||||||
add_project_arguments('-DHAS_EXECINFO', language: 'cpp')
|
add_project_arguments('-DHAS_EXECINFO', language: 'cpp')
|
||||||
endif
|
endif
|
||||||
|
@ -65,7 +56,7 @@ if get_option('buildtype') == 'debug'
|
||||||
add_project_arguments('-DHYPRLAND_DEBUG', language: 'cpp')
|
add_project_arguments('-DHYPRLAND_DEBUG', language: 'cpp')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
version_h = run_command('sh', '-c', 'scripts/generateVersion.sh')
|
version_h = run_command('sh', '-c', 'scripts/generateVersion.sh', check: true)
|
||||||
|
|
||||||
globber = run_command('find', 'src', '-name', '*.h*', check: true)
|
globber = run_command('find', 'src', '-name', '*.h*', check: true)
|
||||||
headers = globber.stdout().strip().split('\n')
|
headers = globber.stdout().strip().split('\n')
|
||||||
|
|
Loading…
Reference in a new issue