forked from lix-project/lix
devshells: only enable pch for clang
clangd seems to break if GCC is using precompiled headers for C++'s
standard library, so this sets -Denable-pch-std=${stdenv.cc.isClang}
Fixes #374.
Change-Id: Ic4be41ebe7576ebcb9c208275596f953c2003109
This commit is contained in:
parent
06e65e537b
commit
766e718f67
11
package.nix
11
package.nix
|
@ -424,9 +424,14 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
# For Meson to find Boost.
|
# For Meson to find Boost.
|
||||||
env = finalAttrs.env;
|
env = finalAttrs.env;
|
||||||
|
|
||||||
# I guess this is necessary because mesonFlags to mkDerivation doesn't propagate in inputsFrom,
|
mesonFlags =
|
||||||
# which only propagates stuff set in hooks? idk.
|
# I guess this is necessary because mesonFlags to mkDerivation doesn't propagate in inputsFrom,
|
||||||
inherit (finalAttrs) mesonFlags;
|
# which only propagates stuff set in hooks? idk.
|
||||||
|
finalAttrs.mesonFlags
|
||||||
|
# Clangd breaks when GCC is using precompiled headers, so for the devshell specifically
|
||||||
|
# we make precompiled C++ stdlib conditional on using Clang.
|
||||||
|
# https://git.lix.systems/lix-project/lix/issues/374
|
||||||
|
++ [ (lib.mesonBool "enable-pch-std" stdenv.cc.isClang) ];
|
||||||
|
|
||||||
packages =
|
packages =
|
||||||
lib.optional (stdenv.cc.isClang && hostPlatform == buildPlatform) clang-tools_llvm
|
lib.optional (stdenv.cc.isClang && hostPlatform == buildPlatform) clang-tools_llvm
|
||||||
|
|
Loading…
Reference in a new issue