Skip to content

Commit

Permalink
Add build configuration for KWin.
Browse files Browse the repository at this point in the history
  • Loading branch information
Quipyowert2 committed Jun 24, 2023
1 parent 8eb6078 commit 2bba017
Showing 1 changed file with 92 additions and 0 deletions.
92 changes: 92 additions & 0 deletions .kdesrc-buildrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# This file controls options to apply when configuring/building modules, and
# controls which modules are built in the first place.
# List of all options: https://docs.kde.org/trunk5/en/kdesrc-build/kdesrc-build/conf-options-table.html

global
branch-group kf5-qt5

# Finds and includes *KDE*-based dependencies into the build. This makes
# it easier to ensure that you have all the modules needed, but the
# dependencies are not very fine-grained so this can result in quite a few
# modules being installed that you didn't need.
include-dependencies true

# Install directory for KDE software
kdedir ~/kde/usr

# Directory for downloaded source code
source-dir ~/kde/src

# Directory to build KDE into before installing
# relative to source-dir by default
build-dir ~/kde/build

# qtdir ~/kde/qt5 # Where to install Qt5 if kdesrc-build supplies it

cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCXXFLAGS=-isystem /usr/include/qt5/QtCore/5.15.8 -DCMAKE_CXX_STANDARD=20 -DCMAKE_CXX_COMPILER=g++-11 -DCMAKE_C_COMPILER=gcc-11

# kdesrc-build sets 2 options which is used in options like make-options or set-env
# to help manage the number of compile jobs that happen during a build:
#
# 1. num-cores, which is just the number of detected CPU cores, and can be passed
# to tools like make (needed for parallel build) or ninja (completely optional).
#
# 2. num-cores-low-mem, which is set to largest value that appears safe for
# particularly heavyweight modules based on total memory, intended for
# modules like qtwebengine
num-cores 4
num-cores-low-mem 4

# kdesrc-build can install a sample .xsession file for "Custom"
# (or "XSession") logins,
install-session-driver false

# or add a environment variable-setting script to
# ~/.config/kde-env-master.sh
install-environment-driver true

# Stop the build process on the first failure
stop-on-failure true

# Use a flat folder layout under ~/kde/src and ~/kde/build
# rather than nested directories
directory-layout flat

# Build with LSP support for everything that supports it
compile-commands-linking true
compile-commands-export true
end global

module kwin
repository kde:plasma/kwin.git
branch Plasma/5.27
# Compile for fuzzing
cmake-options -DCXXFLAGS=-isystem /usr/include/qt5/QtCore/5.15.8 -DCMAKE_C_COMPILER=afl-clang-lto -DCMAKE_CXX_COMPILER=afl-clang-lto++ -DCMAKE_CXX_STANDARD=20
# multiple ld.lld running in LTO mode exhausts my 16 Gigs memory, so just
# run one at a time.
num-cores 1
end module

# With base options set, the remainder of the file is used to define modules to build, in the
# desired order, and set any module-specific options.
#
# Modules may be grouped into sets, and this is the normal practice.
#
# You can include other files inline using the "include" command. We do this here
# to include files which are updated with kdesrc-build.

# Common options that should be set for some KDE modules no matter how
# kdesrc-build finds them. Do not comment these out unless you know
# what you are doing.
include /home/nathan/src/kde/src/kdesrc-build/kf5-common-options-build-include

# Qt and some Qt-using middleware libraries. Uncomment if your distribution's Qt
# tools are too old but be warned that Qt take a long time to build!
#include /home/nathan/src/kde/src/kdesrc-build/qt5-build-include
#include /home/nathan/src/kde/src/kdesrc-build/custom-qt5-libs-build-include

# KF5 and Plasma :)
include /home/nathan/src/kde/src/kdesrc-build/kf5-qt5-build-include

# To change options for modules that have already been defined, use an
# 'options' block. See kf5-common-options-build-include for an example

0 comments on commit 2bba017

Please sign in to comment.