forked from quickshell/quickshell
build: clarify shared libraries
This commit is contained in:
parent
d9164578a2
commit
9a30333405
2 changed files with 23 additions and 16 deletions
24
BUILD.md
24
BUILD.md
|
@ -41,10 +41,15 @@ Quickshell has a set of base dependencies you will always need, names vary by di
|
||||||
- `cmake`
|
- `cmake`
|
||||||
- `qt6base`
|
- `qt6base`
|
||||||
- `qt6declarative`
|
- `qt6declarative`
|
||||||
- `qtshadertools` (build-time only)
|
- `qtshadertools` (build-time)
|
||||||
- `spirv-tools` (build-time only)
|
- `spirv-tools` (build-time)
|
||||||
- `pkg-config` (build-time only)
|
- `pkg-config` (build-time)
|
||||||
- `cli11` (build-time only)
|
- `cli11` (static library)
|
||||||
|
|
||||||
|
Build time dependencies and static libraries don't have to exist at runtime,
|
||||||
|
however build time dependencies must be compiled for the architecture of
|
||||||
|
the builder, while static libraries must be compiled for the architecture
|
||||||
|
of the target.
|
||||||
|
|
||||||
On some distros, private Qt headers are in separate packages which you may have to install.
|
On some distros, private Qt headers are in separate packages which you may have to install.
|
||||||
We currently require private headers for the following libraries:
|
We currently require private headers for the following libraries:
|
||||||
|
@ -66,7 +71,7 @@ enable us to fix bugs far more easily.
|
||||||
|
|
||||||
To disable: `-DCRASH_REPORTER=OFF`
|
To disable: `-DCRASH_REPORTER=OFF`
|
||||||
|
|
||||||
Dependencies: `google-breakpad`
|
Dependencies: `google-breakpad` (static library)
|
||||||
|
|
||||||
### Jemalloc
|
### Jemalloc
|
||||||
We recommend leaving Jemalloc enabled as it will mask memory fragmentation caused
|
We recommend leaving Jemalloc enabled as it will mask memory fragmentation caused
|
||||||
|
@ -101,8 +106,11 @@ To disable: `-DWAYLAND=OFF`
|
||||||
Dependencies:
|
Dependencies:
|
||||||
- `qt6wayland`
|
- `qt6wayland`
|
||||||
- `wayland` (libwayland-client)
|
- `wayland` (libwayland-client)
|
||||||
- `wayland-scanner` (may be part of your distro's wayland package)
|
- `wayland-scanner` (build time)
|
||||||
- `wayland-protocols`
|
- `wayland-protocols` (static library)
|
||||||
|
|
||||||
|
Note that one or both of `wayland-scanner` and `wayland-protocols` may be bundled
|
||||||
|
with you distro's wayland package.
|
||||||
|
|
||||||
#### Wlroots Layershell
|
#### Wlroots Layershell
|
||||||
Enables wlroots layershell integration through the [zwlr-layer-shell-v1] protocol,
|
Enables wlroots layershell integration through the [zwlr-layer-shell-v1] protocol,
|
||||||
|
@ -220,7 +228,7 @@ To disable: `-DI3_IPC=OFF`
|
||||||
## Building
|
## Building
|
||||||
*For developers and prospective contributors: See [CONTRIBUTING.md](CONTRIBUTING.md).*
|
*For developers and prospective contributors: See [CONTRIBUTING.md](CONTRIBUTING.md).*
|
||||||
|
|
||||||
We highly recommend using `ninja` to run the build, but you can use makefiles if you must.
|
Only `ninja` builds are tested, but makefiles may work.
|
||||||
|
|
||||||
#### Configuring the build
|
#### Configuring the build
|
||||||
```sh
|
```sh
|
||||||
|
|
15
default.nix
15
default.nix
|
@ -46,29 +46,28 @@
|
||||||
}: buildStdenv.mkDerivation {
|
}: buildStdenv.mkDerivation {
|
||||||
pname = "quickshell${lib.optionalString debug "-debug"}";
|
pname = "quickshell${lib.optionalString debug "-debug"}";
|
||||||
version = "0.1.0";
|
version = "0.1.0";
|
||||||
src = nix-gitignore.gitignoreSource "/docs\n/examples\n" ./.;
|
src = nix-gitignore.gitignoreSource [] ./.;
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
cmake
|
cmake
|
||||||
ninja
|
ninja
|
||||||
qt6.qtshadertools
|
qt6.qtshadertools
|
||||||
spirv-tools
|
spirv-tools
|
||||||
cli11
|
|
||||||
qt6.wrapQtAppsHook
|
qt6.wrapQtAppsHook
|
||||||
pkg-config
|
pkg-config
|
||||||
] ++ (lib.optionals withWayland [
|
]
|
||||||
wayland-protocols
|
++ lib.optional withWayland wayland-scanner;
|
||||||
wayland-scanner
|
|
||||||
]);
|
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
qt6.qtbase
|
qt6.qtbase
|
||||||
qt6.qtdeclarative
|
qt6.qtdeclarative
|
||||||
|
cli11
|
||||||
]
|
]
|
||||||
|
++ lib.optional withQtSvg qt6.qtsvg
|
||||||
++ lib.optional withCrashReporter breakpad
|
++ lib.optional withCrashReporter breakpad
|
||||||
++ lib.optional withJemalloc jemalloc
|
++ lib.optional withJemalloc jemalloc
|
||||||
++ lib.optional withQtSvg qt6.qtsvg
|
++ lib.optionals withWayland [ qt6.qtwayland wayland wayland-protocols ]
|
||||||
++ lib.optionals withWayland ([ qt6.qtwayland wayland ] ++ (if libgbm != null then [ libdrm libgbm ] else []))
|
++ lib.optionals (withWayland && libgbm != null) [ libdrm libgbm ]
|
||||||
++ lib.optional withX11 xorg.libxcb
|
++ lib.optional withX11 xorg.libxcb
|
||||||
++ lib.optional withPam pam
|
++ lib.optional withPam pam
|
||||||
++ lib.optional withPipewire pipewire;
|
++ lib.optional withPipewire pipewire;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue