build: expose option to enable or disable precompiled std headers
They are enabled by default, and Meson will also prints whether or not
they're enabled at the bottom at the end of configuration.
Change-Id: I48db238510bf9e74340b86f243f4bbe360794281
This commit is contained in:
parent
8f9bcd20eb
commit
06e65e537b
14
meson.build
14
meson.build
|
@ -129,6 +129,20 @@ endif
|
||||||
|
|
||||||
cxx = meson.get_compiler('cpp')
|
cxx = meson.get_compiler('cpp')
|
||||||
|
|
||||||
|
|
||||||
|
# clangd breaks when GCC is using precompiled headers lmao
|
||||||
|
# https://git.lix.systems/lix-project/lix/issues/374
|
||||||
|
should_pch = get_option('enable-pch-std')
|
||||||
|
summary('PCH C++ stdlib', should_pch, bool_yn : true)
|
||||||
|
if should_pch
|
||||||
|
# Unlike basically everything else that takes a file, Meson requires the arguments to
|
||||||
|
# cpp_pch : to be strings and doesn't accept files(). So absolute path it is.
|
||||||
|
cpp_pch = [meson.project_source_root() / 'src/pch/precompiled-headers.hh']
|
||||||
|
else
|
||||||
|
cpp_pch = []
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Translate some historical and Mesony CPU names to Lixy CPU names.
|
# Translate some historical and Mesony CPU names to Lixy CPU names.
|
||||||
# FIXME(Qyriad): the 32-bit x86 code is not tested right now, because cross compilation for Lix
|
# FIXME(Qyriad): the 32-bit x86 code is not tested right now, because cross compilation for Lix
|
||||||
# to those architectures is currently broken for other reasons, namely:
|
# to those architectures is currently broken for other reasons, namely:
|
||||||
|
|
|
@ -64,3 +64,7 @@ option('internal-api-docs', type : 'feature', value : 'auto',
|
||||||
option('profile-dir', type : 'string', value : 'etc/profile.d',
|
option('profile-dir', type : 'string', value : 'etc/profile.d',
|
||||||
description : 'the path to install shell profile files',
|
description : 'the path to install shell profile files',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
option('enable-pch-std', type : 'boolean', value : true,
|
||||||
|
description : 'whether to use precompiled headers for C++\'s standard library (breaks clangd if you\'re using GCC)',
|
||||||
|
)
|
||||||
|
|
|
@ -54,7 +54,7 @@ libcmd = library(
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
lix_doc
|
lix_doc
|
||||||
],
|
],
|
||||||
cpp_pch : ['../pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
install : true,
|
install : true,
|
||||||
# FIXME(Qyriad): is this right?
|
# FIXME(Qyriad): is this right?
|
||||||
install_rpath : libdir,
|
install_rpath : libdir,
|
||||||
|
|
|
@ -145,7 +145,7 @@ libexpr = library(
|
||||||
include_directories : [
|
include_directories : [
|
||||||
'../libmain',
|
'../libmain',
|
||||||
],
|
],
|
||||||
cpp_pch : ['../pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
install : true,
|
install : true,
|
||||||
# FIXME(Qyriad): is this right?
|
# FIXME(Qyriad): is this right?
|
||||||
install_rpath : libdir,
|
install_rpath : libdir,
|
||||||
|
|
|
@ -30,7 +30,7 @@ libfetchers = library(
|
||||||
liblixutil,
|
liblixutil,
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
],
|
],
|
||||||
cpp_pch : ['../pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
install : true,
|
install : true,
|
||||||
# FIXME(Qyriad): is this right?
|
# FIXME(Qyriad): is this right?
|
||||||
install_rpath : libdir,
|
install_rpath : libdir,
|
||||||
|
|
|
@ -20,7 +20,7 @@ libmain = library(
|
||||||
liblixutil,
|
liblixutil,
|
||||||
liblixstore,
|
liblixstore,
|
||||||
],
|
],
|
||||||
cpp_pch : ['../pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
install : true,
|
install : true,
|
||||||
# FIXME(Qyriad): is this right?
|
# FIXME(Qyriad): is this right?
|
||||||
install_rpath : libdir,
|
install_rpath : libdir,
|
||||||
|
|
|
@ -220,7 +220,7 @@ libstore = library(
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
],
|
],
|
||||||
cpp_args : cpp_args,
|
cpp_args : cpp_args,
|
||||||
cpp_pch : ['../pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
install : true,
|
install : true,
|
||||||
# FIXME(Qyriad): is this right?
|
# FIXME(Qyriad): is this right?
|
||||||
install_rpath : libdir,
|
install_rpath : libdir,
|
||||||
|
|
|
@ -129,7 +129,7 @@ libutil = library(
|
||||||
openssl,
|
openssl,
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
],
|
],
|
||||||
cpp_pch : ['../pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
implicit_include_directories : true,
|
implicit_include_directories : true,
|
||||||
install : true,
|
install : true,
|
||||||
)
|
)
|
||||||
|
|
|
@ -89,7 +89,7 @@ nix = executable(
|
||||||
boehm,
|
boehm,
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
],
|
],
|
||||||
cpp_pch : ['../pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
install : true,
|
install : true,
|
||||||
# FIXME(Qyriad): is this right?
|
# FIXME(Qyriad): is this right?
|
||||||
install_rpath : libdir,
|
install_rpath : libdir,
|
||||||
|
|
|
@ -68,7 +68,7 @@ libutil_tester = executable(
|
||||||
liblixutil_test_support,
|
liblixutil_test_support,
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
],
|
],
|
||||||
cpp_pch : ['../../src/pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
)
|
)
|
||||||
|
|
||||||
test(
|
test(
|
||||||
|
@ -103,7 +103,7 @@ libstore_test_support = library(
|
||||||
include_directories : include_directories(
|
include_directories : include_directories(
|
||||||
'libstore-support',
|
'libstore-support',
|
||||||
),
|
),
|
||||||
cpp_pch : ['../../src/pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
)
|
)
|
||||||
liblixstore_test_support = declare_dependency(
|
liblixstore_test_support = declare_dependency(
|
||||||
include_directories : include_directories('libstore-support'),
|
include_directories : include_directories('libstore-support'),
|
||||||
|
@ -137,7 +137,7 @@ libstore_tester = executable(
|
||||||
gtest,
|
gtest,
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
],
|
],
|
||||||
cpp_pch : ['../../src/pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
)
|
)
|
||||||
|
|
||||||
test(
|
test(
|
||||||
|
@ -169,7 +169,7 @@ libexpr_test_support = library(
|
||||||
include_directories : include_directories(
|
include_directories : include_directories(
|
||||||
'libexpr-support',
|
'libexpr-support',
|
||||||
),
|
),
|
||||||
cpp_pch : ['../../src/pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
)
|
)
|
||||||
liblixexpr_test_support = declare_dependency(
|
liblixexpr_test_support = declare_dependency(
|
||||||
include_directories : include_directories('libexpr-support'),
|
include_directories : include_directories('libexpr-support'),
|
||||||
|
@ -203,7 +203,7 @@ libexpr_tester = executable(
|
||||||
gtest,
|
gtest,
|
||||||
nlohmann_json,
|
nlohmann_json,
|
||||||
],
|
],
|
||||||
cpp_pch : ['../../src/pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
)
|
)
|
||||||
|
|
||||||
test(
|
test(
|
||||||
|
@ -230,7 +230,7 @@ libcmd_tester = executable(
|
||||||
gtest,
|
gtest,
|
||||||
boost,
|
boost,
|
||||||
],
|
],
|
||||||
cpp_pch : ['../../src/pch/precompiled-headers.hh'],
|
cpp_pch : cpp_pch,
|
||||||
)
|
)
|
||||||
|
|
||||||
test(
|
test(
|
||||||
|
|
Loading…
Reference in a new issue