[sdk/kdesrc-build/docbook_historied_per_file] doc: Eliminate distinction between `prefix` and `install-dir`
Git commit 3d5459c7177e61a10e243789922e0dc885b45e98 by Andrew Shark. Committed on 14/01/2024 at 01:38. Pushed by ashark into branch 'docbook_historied_per_file'. Eliminate distinction between `prefix` and `install-dir` We will not use `--prefix` cli option or `prefix` config option anymore, because it means same thing what `install-dir` was meant for. - For those who used '$MODULE' or '${MODULE}' in the `prefix` config option, we now will make that substitution in `install-dir` config option. - Add a warning message if the prefix config option still found in user config Closes #141 Original commit: 9b8ccbfe https://invent.kde.org/sdk/kdesrc-build/-/commit/9b8ccbfe26bc751f42df49b2dc15f4a1ea886480 M +3-4doc/cmdline/supported-cmdline-params.docbook M +7-17 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/3d5459c7177e61a10e243789922e0dc885b45e98 diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index ab7923bc..71993bdc 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -526,11 +526,10 @@ linkend="cmdline-refresh-build">--refresh-build is used. - ---prefix /path/to/kde + +--install-dir path -This allows you to change the directory that will be installed to from -the command line. This option implies --reconfigure, but using --refresh-build may still be required. diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index e74858b1..86e35dbb 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -791,11 +791,17 @@ flag. TypeString Default value~/kde/usr -This option sets the directory that will be installed to after it +This option controls where to install the module after it is built. If you change this to a directory needing root access, you may want to read about the make-install-prefix option as well. + +Changing this option for specific module allows you to install it to a different directory than +where the Platform libraries are installed, such as if you were using + only to build applications. +You can use ${MODULE} or $MODULE +in the path to have them expanded to the module's name. @@ -1001,22 +1007,6 @@ the auto-detection. In this case you can manually specify the correct build type - -prefix - - -TypeString - -This option controls where to install the module (normally the -install-dir setting is used). -Using this option allows you to install a module to a different directory than -where the KDE Platform libraries are installed, such as if you were using - only to build applications. -You can use ${MODULE} or $MODULE -in the path to have them expanded to the module's name. - - - purge-old-logs
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Move --list-installed to kdesrc-build
Git commit b0a0889e854870508c3552c17c7ee7c9de8da01a by Andrew Shark. Committed on 17/02/2024 at 14:09. Pushed by ashark into branch 'docbook_historied_per_file'. Move --list-installed to kdesrc-build Original commit: 733b4924 https://invent.kde.org/sdk/kdesrc-build/-/commit/733b492414f2c1e49986106070f05cf68cd1a752 M +9-0doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/b0a0889e854870508c3552c17c7ee7c9de8da01a diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index a6d1a9aa..fb02d2d3 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -350,6 +350,15 @@ kdepim: master + +--list-installed + + +Print installed modules and exit. This can be used to generate autocompletion for the --run option. + + + +
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Add build-system query mode
Git commit cfe814deaf97af88fcf007c198206e70d0964868 by Andrew Shark. Committed on 10/02/2024 at 12:33. Pushed by ashark into branch 'docbook_historied_per_file'. Add build-system query mode Original commit: 139fdc94 https://invent.kde.org/sdk/kdesrc-build/-/commit/139fdc94f4e4a469ff3b0f245a3626f3b58e3556 M +4-0doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/cfe814deaf97af88fcf007c198206e70d0964868 diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 86eaf976..95367ed7 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -306,6 +306,10 @@ one of the following: output the name of module-set which contains the module. This can be used to generate zsh autocompletion cache. +build-system, which causes to +output the name of build system detected for the module. This can be used +to debug build system auto-detection problems, or when developing tests for specific build systems. + Any option name that is valid for modules in the configuration file.
[sdk/kdesrc-build/docbook_historied_per_file] doc: Add "generate-vscode-project-config" option
Git commit 6bd9334789b5b00a4e4bfc4a5fbf922f2a8b23dd by Andrew Shark, on behalf of Kristen McWilliam. Committed on 02/12/2023 at 16:16. Pushed by ashark into branch 'docbook_historied_per_file'. Add "generate-vscode-project-config" option This change adds `generate-vscode-project-config` option for `kdesrc-buildrc` and the corresponding command line flag. When set to `true`, kdesrc-build will create the `.vscode` folder in the module source directory with configuration that makes VSCode to work properly with KDE projects, such as setting the correct build directory & enabling support for C++, CMake, LSP & IntelliSense. The process specifically checks for an existing `.vscode` folder, in case the user already has custom settings present - and only proceeds if it does not exist yet. Closes #84 Original commit: 1d9b2355 https://invent.kde.org/sdk/kdesrc-build/-/commit/1d9b2355c10db4d8825cefe06c73b07d0b4f4373 M +8-0doc/cmdline/supported-cmdline-params.docbook M +27 -0doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/6bd9334789b5b00a4e4bfc4a5fbf922f2a8b23dd diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index ded50d26..5818d7a6 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -105,6 +105,14 @@ Enable colorful output. (This is the default for interactive terminals). + +--generate-vscode-project-config + +Generate a .vscode directory with configurations for building and debugging +in Visual Studio Code. + + + --nice=value diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index 038b25e0..2f26df6f 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -809,6 +809,33 @@ due to changes in the project metadata. + +generate-vscode-project-config + + + +TypeBoolean +Default valueFalse + + +Module setting overrides global + +Set this option to true to make + create VS Code project files (.vscode directory) in the module +source directory. + +The .vscode folder will be created in the project source directory, only +if it does not already exist. The configurations will enable the use of LSP, +building, debugging, and running the project from within VS Code. + +The configuration also recommends extensions to install that are useful +for working on most KDE projects. + +You can also use the +--generate-vscode-project-config command line flag. + + + include-dependencies
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: doc: Define scopes for modules selection options
Git commit 43eee5b154b425e6ed3072eee4b3635d64c8efb0 by Andrew Shark. Committed on 29/01/2024 at 21:21. Pushed by ashark into branch 'docbook_historied_per_file'. doc: Define scopes for modules selection options Original commit: d974610e https://invent.kde.org/sdk/kdesrc-build/-/commit/d974610efba6140798b10d13d092558e9226f796 M +16 -16 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/43eee5b154b425e6ed3072eee4b3635d64c8efb0 diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index 345ef74e..b35d520c 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -1,17 +1,16 @@ Table of available configuration options -Here is a table of the various options, containing the following +Here are tables of various options, containing the following information: The option name -A description of how responds if the option is -set in both the global section, and the module section of the configuration file while building a -module. +The scope of the option: global, module or module-set. +Options in module or/and module-set scope can also be defined in options sections. + Special comments on the purpose and usage of the option. @@ -1316,7 +1315,7 @@ installations. However this only works on build systems that support no-src -globalmodulemodule-setoptions +globalmodulemodule-set Remove update phase. The other phases that were presented will still be processed. Related command-line option: @@ -1325,7 +1324,7 @@ installations. However this only works on build systems that support no-install -globalmodulemodule-setoptions +globalmodulemodule-set Remove install phase. The other phases that were presented will still be processed. Related command-line option: @@ -1334,7 +1333,7 @@ installations. However this only works on build systems that support no-tests -globalmodulemodule-setoptions +globalmodulemodule-set Remove test phase. The other phases that were presented will still be processed. Related command-line option: --no-tests @@ -1343,7 +1342,7 @@ installations. However this only works on build systems that support no-build -globalmodulemodule-setoptions +globalmodulemodule-set Remove build phase. The other phases that were presented will still be processed. Related command-line option: @@ -1352,7 +1351,7 @@ installations. However this only works on build systems that support build-only -globalmodulemodule-setoptions +globalmodulemodule-set If had build phase, remove any other phases. Otherwise, remove all phases. Related command-line option: @@ -1361,7 +1360,7 @@ installations. However this only works on build systems that support install-only -globalmodulemodule-setoptions +globalmodulemodule-set If had install phase, remove any other phases. Otherwise, remove all phases. Related command-line option: @@ -1370,7 +1369,7 @@ installations. However this only works on build systems that support uninstall -globalmodulemodule-setoptions +globalmodulemodule-set If had uninstall phase, remove any other phases. Otherwise, remove all phases. Related command-line option: --uninstall @@ -1379,7 +1378,7 @@ installations. However this only works on build systems that support filter-out-phases -globalmodulemodule-setoptions +globalmodulemodule-set Remove those phases that are listed (space separated) in this option. The other phases that were presented will still be processed. @@ -1390,12 +1389,13 @@ installations. However this only works on build systems that support -Module-set and global scope options +Modules selection options Option name +Scope Description @@ -1404,12 +1404,12 @@ installations. However this only works on build systems that support ignore-modules +globalmodule-set TypeString Available since1.16 -This option can be used in global section and in module-sets. Note that when specified in global section, cmdline option does not override this, but instead appends. Modules named by this option, which would be chosen by due to a use-modules option, are @@ -1436,12 +1436,12 @@ is compared). use-modules +module-set TypeString Available since1.12.1 -Can only be used in module-set. This option allows you to easily specify many different modules to build at the same point in the configuration file.
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Remove --print-modules and --list-build options
Git commit 75b4b0eb0cb4e472b7ca1c58dd2cc77839a6855f by Andrew Shark. Committed on 10/02/2024 at 09:37. Pushed by ashark into branch 'docbook_historied_per_file'. Remove --print-modules and --list-build options There are already `--query module-set` and `--query branch` options, no need to create unnecessarily entities. The --list-build tree indentation was not properly implemented, but made correctly in dependency-tree. The #dependency-level sticky option was never set, so print-modules indentation was broken forever. The zsh completion script relied on --list-build option and needs to be reworked. Original commit: 08c6bb39 https://invent.kde.org/sdk/kdesrc-build/-/commit/08c6bb39486fc51aca90a20708f65ee3ae7eb0eb M +0-48 doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/75b4b0eb0cb4e472b7ca1c58dd2cc77839a6855f diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index b52bf204..86eaf976 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -323,54 +323,6 @@ kdepim: master - - ---print-modules - - -Takes all actions up to and including dependency reordering of the modules -specified on the command line (or configuration file), prints the modules -that would be processed one per line, and then exits without further action. - - -The kde-project metadata is downloaded first (though, see ---pretend or --no-src). - - -The output is not fully compatible with usage by scripts as other output messages -may be generated until the module list is shown. - - -This is mostly just useful for quickly determining what -understands a module's dependencies to be, which means it's only useful for -kde-projects -modules. This option is also compatible with --resume-from, --resume-after, ---stop-before, ---stop-after. - - - - ---list-build - - -Lists the modules that would be built, in the order in which they would be built. -If applicable, the output listing also mentions which commit/branch/tag would be -selected for checkout. - - -This option is similar to ---print-modules. -For more detailed information on how modules relate to each other, see also: ---dependency-tree. - - - - --dependency-tree
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: query: Make behavior the same when one module is queried
Git commit 7e3a739d6aa461802c2cca38bdc904ae4aa82f4a by Andrew Shark. Committed on 05/02/2024 at 14:20. Pushed by ashark into branch 'docbook_historied_per_file'. query: Make behavior the same when one module is queried Original commit: 49ec03c7 https://invent.kde.org/sdk/kdesrc-build/-/commit/49ec03c7dca5a0cabaeb54fb34a9100dd6c2b2e4 M +0-7doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/7e3a739d6aa461802c2cca38bdc904ae4aa82f4a diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 7c4f8f31..4cb6e494 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -307,13 +307,6 @@ one of the following: - -If a single module is passed on the command line, then the output is simply the -value of the parameter being queried. If multiple (or no) modules are passed on -the command line, then each line is prefixed by the name of the module. Either way, - stops running once each value is output. - - For example, the command kdesrc-build --query branch kactivities kdepim
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: RecursiveFH: Support variables in include lines
Git commit 17b9fd13a5236d572d3e502811e91d1cb604477b by Andrew Shark. Committed on 02/02/2024 at 08:07. Pushed by ashark into branch 'docbook_historied_per_file'. RecursiveFH: Support variables in include lines Original commit: 399806c1 https://invent.kde.org/sdk/kdesrc-build/-/commit/399806c1efd4514b75c9f1254bb4b408f02a7221 M +12 -0doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/17b9fd13a5236d572d3e502811e91d1cb604477b diff --git a/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook b/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook index 0ac0cf6f..3469e11d 100644 --- a/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook +++ b/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook @@ -219,6 +219,18 @@ end global the file will be searched for starting from the directory containing the source file. This works recursively as well. +You can use variables in the value of include instruction: + +global + _ver 6 + source-dir ~/kde${_ver}/src + ... + persistent-data-file ~/kde${_ver}/persistent-options.json +end global + +include ~/kde6/src/kdesrc-build/data/build-include/kf${_ver}-qt${_ver}.ksb + +
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Remove update-shellrc step
Git commit ba7e1d479cb21d3fa05efbd4a88adaae539f084d by Andrew Shark. Committed on 15/02/2024 at 11:44. Pushed by ashark into branch 'docbook_historied_per_file'. Remove update-shellrc step It basically just added to the shellrc the path to the running script. That is not handled correctly in all cases. Also, it tried to add kdesrc-run bash autocompletion, but the code was not handling all cases correctly anyway. Instead, we will offer to install the file in the correct place in the first place. Regarding PATH, that should be in user's control. Original commit: 5d7dcace https://invent.kde.org/sdk/kdesrc-build/-/commit/5d7dcacee6fd89feae01f197e278f61a1ddead8b M +1-12 doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/ba7e1d479cb21d3fa05efbd4a88adaae539f084d diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index c3202192..a6d1a9aa 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -564,12 +564,11 @@ software to run. Installing known dependencies (on supported distributions) Adding required environment variables to ~/.bashrc -Setting up a configuration file This option is exactly equivalent to using --install-distro-packages --generate-config ---update-shellrc at the same time. +at the same time. @@ -593,16 +592,6 @@ Generate the configuration file. - ---update-shellrc - -Edit the "~/.bashrc" (or other shell rc file) to add to your $PATH variable and enable autocompletion. - -See also --initial-setup - - - -
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: doc: List --run in commonly used options
Git commit 219908425b341589dc901d7158b7a687e0d121ef by Andrew Shark. Committed on 20/02/2024 at 21:29. Pushed by ashark into branch 'docbook_historied_per_file'. doc: List --run in commonly used options Reference full documentation from --help. No need to keep yet another place of options listing. Original commit: 19044150 https://invent.kde.org/sdk/kdesrc-build/-/commit/19044150a44a2f7a18d89a1e74dbcc0b5f696c6e M +54 -42 doc/cmdline/cmdline-usage.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/219908425b341589dc901d7158b7a687e0d121ef diff --git a/doc/cmdline/cmdline-usage.docbook b/doc/cmdline/cmdline-usage.docbook index 3bad3988..e0110ce9 100644 --- a/doc/cmdline/cmdline-usage.docbook +++ b/doc/cmdline/cmdline-usage.docbook @@ -14,48 +14,6 @@ kdesrc-build will build all modules defined in its configuration file, in the order listed in that file (although this can be modified by various configuration file options). - -Commonly used command line options - -The full list of command line options is given in . The most-commonly used options -include: - - - ---pretend (or -p) -This option causes to indicate what actions -it would take, without actually really implementing them. This can be -useful to make sure that the modules you think you are building will -actually get built. - - - ---refresh-build -This option forces to build the given -modules from an absolutely fresh start point. Any existing build directory -for that module is removed and it is rebuilt. This option is useful if you -have errors building a module, and sometimes is required when or -libraries change. - - - ---no-src -This option skips the source update process. You might use -it if you have very recently updated the source code (perhaps you did it -manually or recently ran ) but still want to rebuild some -modules. - - - ---no-build -This option is similar to --no-src above, -but this time the build process is skipped. - - - - - Specifying modules to build @@ -93,4 +51,58 @@ option before building a new module set to ensure it is only building the modules you want. + + +Commonly used command line options + + + +--pretend (or -p) +This option causes to indicate what actions + it would take, without actually really implementing them. This can be + useful to make sure that the modules you think you are building will + actually get built. + + + +--no-src +This option skips the source update process. You might use + it if you have very recently updated the source code (perhaps you did it + manually or recently ran ) but still want to rebuild some + modules. + + + +--no-include-dependencies (or -D) +Only process the selected modules, skipping their dependencies. + Useful when you have changed only selected modules, and you are sure you + do not need to rebuild the others. + + + +--refresh-build (or -r) +This option forces to build the given + modules from an absolutely fresh start point. Any existing build directory + for that module is removed and it is rebuilt. This option is useful if you + have errors building a module, and sometimes is required when or + libraries change. + + + +--resume-from module +Skips modules until just before the given module, then operates as normal. + Useful when the previous build failed on specific module, you fixed it, and then you + want to continue the with building the rest of initial set of modules. + + + +--run module +Launch the built application. + + + + The full list of command line options is given in . + +
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Fix default value for "directory-layout" option
Git commit b638608f66252e84f507afb8cd56b7f7c65c05c2 by Andrew Shark. Committed on 09/01/2024 at 07:52. Pushed by ashark into branch 'docbook_historied_per_file'. Fix default value for "directory-layout" option It was silently allowed to have unset "directory-layout" option value, that was treated as "metadata" value. Previously, it defaulted to "metadata". Then commit 7fe7c940 (BUG: 461279) changed the default value in documentation to "flat", but not in the code. This commit treats any incorrect value (not one of "flat", "invent", "metadata"), including empty string, as a "flat" value with warning. Add the forgotten default BuildContext value, and add it in FirstRun. Original commit: 642bdc2e https://invent.kde.org/sdk/kdesrc-build/-/commit/642bdc2e326f8eae6cbc2a07bfe37fc1044952b9 M +8-7doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/b638608f66252e84f507afb8cd56b7f7c65c05c2 diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index c23c2c1b..e74858b1 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -695,10 +695,11 @@ on also use that proxy server, if possible, by setting the TypeString Valid valuesflat, invent, metadata +Default valueflat This option is used to configure the layout which should use when creating source and build directories. -The flat layout is the default value, and will group all modules +The flat layout will group all modules directly underneath the top level source and build directories. For example, source/extragear/network/telepathy/ktp-text-ui in the metadata layout would be source/ktp-text-ui using the flat layout @@ -727,19 +728,19 @@ due to changes in the project metadata. TypeBoolean Default valueFalse - + Module setting overrides global -Set this option to true to make - create VS Code project files (.vscode directory) in the module +Set this option to true to make + create VS Code project files (.vscode directory) in the module source directory. -The .vscode folder will be created in the project source directory, only -if it does not already exist. The configurations will enable the use of LSP, +The .vscode folder will be created in the project source directory, only +if it does not already exist. The configurations will enable the use of LSP, building, debugging, and running the project from within VS Code. -The configuration also recommends extensions to install that are useful +The configuration also recommends extensions to install that are useful for working on most KDE projects. You can also use the
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: doc: Add related cli options to the config options table
Git commit f42ffd21926b310715e8ab7ccd0c4dc850380f82 by Andrew Shark. Committed on 24/01/2024 at 22:36. Pushed by ashark into branch 'docbook_historied_per_file'. doc: Add related cli options to the config options table Original commit: 54b5af83 https://invent.kde.org/sdk/kdesrc-build/-/commit/54b5af830ceb16b844a81b4707cb3e5a9ac943ef M +63 -8doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/f42ffd21926b310715e8ab7ccd0c4dc850380f82 diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index e19ac4d0..0573f12d 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -40,7 +40,9 @@ option. This option enables the asynchronous mode of operation, where the source code update and the build process will be performed in parallel, instead of waiting for -all of the source code updates before starting the build process. +all of the source code updates before starting the build process. +Related command-line option: + @@ -52,6 +54,7 @@ all of the source code updates before starting the build process. Note that will not output the color codes to anything but a terminal (such as xterm, , or the normal console). +Related command-line option: @@ -67,6 +70,7 @@ color codes to anything but a terminal (such as xterm, , or the normal make sure that if you are using ssh-agent, it is actually managing some identities. This is to try and prevent from asking for your pass phrase for every module. +Related command-line option: --disable-agent-check, --no-disable-agent-check @@ -137,6 +141,7 @@ also disabled. unless you also pass the --delete-my-settings command-line option. +Related command-line option: --install-environment-driver, --no-install-environment-driver @@ -167,6 +172,7 @@ option to false. If enabled, this feature also enabl unless you also pass the --delete-my-settings command-line option. +Related command-line option: --install-session-driver, --no-install-session-driver @@ -180,6 +186,7 @@ command-line option. Set this option to a number between 20 and 0. The higher the number, the lower a priority will set for itself, i.e. the higher the number, the "nicer" the program is. +Related command-line option: @@ -198,6 +205,7 @@ number of CPUs, this value is set to 4. See for an example of this option's usage. +Related command-line option: --num-cores value @@ -225,6 +233,7 @@ any module in the same way that num-cores is used. If cannot detect available memory then this value will be set to 2. +Related command-line option: --num-cores-low-mem value @@ -245,6 +254,7 @@ be saved to ~/.local/state/kdesrc-build-data configurations in the same directory, you may want to manually set this option, so that different configurations do not end up with conflicting persistent data. +Related command-line option: --persistent-data-file file @@ -273,6 +283,7 @@ linkend="ssh-agent-reminder"/>. Use lower priority for disk and other I/O, which can significantly improve the responsiveness of the rest of the system at the expense of slightly longer running times for . +Related command-line option: --use-idle-io-priority, --no-use-idle-io-priority @@ -284,6 +295,7 @@ running times for . Default valueFalse Allow kdesrc-build to also clone and pull from repositories marked as inactive. +Related command-line option: --use-inactive-modules, --no-use-inactive-modules @@ -319,6 +331,7 @@ variable should include the colon-separated paths of your development toolchain. The paths ${install-dir}/bin and ${qt-install-dir}/bin are automatically added. You may use the tilde (~) for any paths you add using this option. +Related command-line option: --binpath path @@ -333,6 +346,7 @@ may use the tilde (~) for any paths you add using this option. For most modules you probably wish to use the branch-group option instead and use this option for case-by-case exceptions. +Related command-line option: --branch value @@ -369,6 +383,7 @@ modules (the common case). See also . +Related command-line option: --branch-group value @@ -404,6 +419,7 @@ class="directory">/home/user-name/builddir. Perhaps surprisingly, this option can be changed per module. +Related command-line option: --build-dir path @@ -431,6 +447,7 @@ other optimizations, there are trade-offs for the correctness of your installation. For instance, changes to the qt or kdelibs modules may cause a rebuild of other modules to be necessary, even if the source code doesn't change at all. +Related command-line option: @@ -450,7 +467,9 @@ as if unset. Note that if a valid generator is also specified through cmake-options it will override the -value for cmake-generator. +value for cmake-generator. +Related command-l
[sdk/kdesrc-build/docbook_historied_per_file] doc: Allow ignoring modules from global config
Git commit 24f6b604e110113070dfef7e3d3951fbe55a1a2f by Andrew Shark. Committed on 28/01/2024 at 07:28. Pushed by ashark into branch 'docbook_historied_per_file'. Allow ignoring modules from global config This will let users to constantly ignore specified modules in global section, so they do not need to pass it in command line each time. Also, it will allow to ignore some defined modules that are not in any module set (for example, gpgme). BUG: 472917 Original commit: 66bff6dc https://invent.kde.org/sdk/kdesrc-build/-/commit/66bff6dc56039cc75bcc64bc5a7c6fb38f9b1e82 M +3-1doc/cmdline/supported-cmdline-params.docbook M +2-2doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/24f6b604e110113070dfef7e3d3951fbe55a1a2f diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 494a3363..7c4f8f31 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -53,7 +53,9 @@ Do not include the modules passed on the rest of the command line in the update/build process (this is useful if you want to build most of the modules in your configuration file and just skip a few). - + +Note that this option does not override ignore-modules config option in global section. Instead, it appends it. + diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index 8722b1ae..ed52e6bc 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -1335,8 +1335,8 @@ installations. However this only works on build systems that support TypeString Available since1.16 -Currently can only be used in module-set, see https://bugs.kde.org/show_bug.cgi?id=472917;>Bug 472917. +This option can be used in global section and in module-sets. +Note that when specified in global section, cmdline option does not override this, but instead appends. Modules named by this option, which would be chosen by due to a use-modules option, are instead skipped entirely. Use this option when you want to build an entire
[sdk/kdesrc-build/docbook_historied_per_file] doc/using-kdesrc-build: doc: Create table of debug levels
Git commit ada8af00cd80e5f217cdb3999ae9382a5709ce12 by Andrew Shark. Committed on 24/02/2024 at 16:26. Pushed by ashark into branch 'docbook_historied_per_file'. doc: Create table of debug levels Original commit: fd57dd66 https://invent.kde.org/sdk/kdesrc-build/-/commit/fd57dd6695550f522a2c2c16d09d1ca9bfee6ad1 M +52 -19 doc/using-kdesrc-build/other-features.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/ada8af00cd80e5f217cdb3999ae9382a5709ce12 diff --git a/doc/using-kdesrc-build/other-features.docbook b/doc/using-kdesrc-build/other-features.docbook index 96215a58..c42d97fe 100644 --- a/doc/using-kdesrc-build/other-features.docbook +++ b/doc/using-kdesrc-build/other-features.docbook @@ -6,25 +6,58 @@ has several options to control the amount of output the script generates. In any case, errors will always be output. - -The --quiet option (short form is --q) causes to be mostly silent. Only important -messages, warnings, or errors will be shown. When available, build progress -information is still shown. - -The --really-quiet option (no short form) -causes to only display important warnings or errors while it is -running. - -The --verbose option (short form is --v) causes to be very detailed in its -output. - -The --debug option is for debugging purposes -only, it causes to act as if --verbose was -turned on, causes commands to also output to the terminal, and will display -debugging information for many functions. - + + Table of debug levels + + + + + Debug level + Level name + Command line option + + + + + +0 +DEBUG +--debug + + + +1 +WHISPER +--verbose + + + +2 +INFO +Selected by default + + + +3 +NOTE +--quiet + + + +4 +WARNING +--really-quiet + + + +5 +ERROR +No way to select + + + + +
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Merge kdesrc-build --run and kdesrc-run
Git commit 9113a2a9a8b27dd9f70e812fa958367cfa9dcec6 by Andrew Shark. Committed on 17/02/2024 at 17:50. Pushed by ashark into branch 'docbook_historied_per_file'. Merge kdesrc-build --run and kdesrc-run This fixes multiple issues with kdesrc-run and kdesrc-build --run When using the --run parameter, the environment variables of global module were applied (from set-env options). But this is incorrect, since global cannot be treated as usual module. Its build system is defined as generic. In its prepareModuleBuildEnvironment these variables were setted: - PKG_CONFIG_PATH - LD_LIBRARY_PATH - PATH They have nothing to do with launched module's variables, except PATH, but even that was because of global install-dir matches the module's install-dir in most cases. The kdesrc-run did sourced module's prefix.sh instead (located in its build-dir). That setted the following variables: - PATH (the correct, from module) - XDG_DATA_DIRS - XDG_CONFIG_DIRS - QT_PLUGIN_PATH - QML2_IMPORT_PATH - QT_QUICK_CONTROLS_STYLE_PATH This commit fixes the broken behavior of --run, and the broken behavior of kdesrc-run. Fixes: #145 Fixes: #114 Other fixes: - Now the parameters after --run that starts with minuses are passed to the start-program, and not considered as options of kdesrc-build - When setting parameters to the runned executable, they are actually applied. Previously the run script surrounded the $@ in the quotes. - Fixed indentation and unnecessary semicolons in executable script. - Made more clear note information when launching. The debug level controls if it will be displayed. Original commit: 301b9b4c https://invent.kde.org/sdk/kdesrc-build/-/commit/301b9b4caf1b84bf2e14bd616fec06683f5a2d18 M +3-23 doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/9113a2a9a8b27dd9f70e812fa958367cfa9dcec6 diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index fb02d2d3..2a8014b6 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -59,31 +59,11 @@ a few). ---run (or --start-program) program [parameters ...] +--run (or --start-program) [-e|--exec name] [-f|--fork] program [parameters ...] This option interprets the next item on the command line as a program to run, -and will then finish reading the configuration file, update the -environment as normal, and then execute the given program. - -This will not work to start a shell with the environment -in most cases however, since interactive shells typically reset at least part -of the environment variables (such as PATH and -${install-dir}) in the startup sequence. - - -If you want to see the environment used by , you -can run the printenv command: - -$ kdesrc-build --run printenv -KDE_SESSION_VERSION=4 -SDL_AUDIODRIVER=alsa -LANGUAGE= -XCURSOR_THEME=Oxygen_Blue -LESS=-R -M --shift 5 -QMAIL_CONTROLDIR=/var/qmail/control -... etc. - - +and will then finish reading the configuration file, source the +prefix.sh to apply environment variables, and then execute the given program.
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Use distro-dependencies defined in repo-metadata
Git commit 4d3784b2b6b8c2c67ac6ef0c6cd6d3ee2af47f5a by Andrew Shark. Committed on 18/02/2024 at 11:02. Pushed by ashark into branch 'docbook_historied_per_file'. Use distro-dependencies defined in repo-metadata Distro dependencies (data/pkg) moved here: https://invent.kde.org/sysadmin/repo-metadata/-/tree/master/distro-dependencies Original commit: 75bfc436 https://invent.kde.org/sdk/kdesrc-build/-/commit/75bfc43675938761ee0f23efa36ebbfd70ea0322 M +1-0doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/4d3784b2b6b8c2c67ac6ef0c6cd6d3ee2af47f5a diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 2a8014b6..25ccfc7c 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -558,6 +558,7 @@ software to run. --install-distro-packages --generate-config at the same time. +In kdesrc-build (perl implementation) it additionally uses "--install-distro-packages-perl".
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Cmdline: Use -M as short form of --no-metadata
Git commit c9e12ff425d114fc071eea9a2c17b91ee28d4671 by Andrew Shark. Committed on 14/02/2024 at 09:45. Pushed by ashark into branch 'docbook_historied_per_file'. Cmdline: Use -M as short form of --no-metadata Original commit: 6bcfb320 https://invent.kde.org/sdk/kdesrc-build/-/commit/6bcfb3205897b8d0b40f66e88f7ee155076f79e4 M +1-1doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/c9e12ff425d114fc071eea9a2c17b91ee28d4671 diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 95367ed7..c3202192 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -358,7 +358,7 @@ kdepim: master ---no-metadata +--no-metadata (or -M) Do not automatically download the extra metadata needed for git modules. The source updates for the modules themselves will still occur unless you pass
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: query: Add module-set query mode
Git commit 8ed4a1a3ccd135c7bbf68acb03b9ab45694371f1 by Andrew Shark. Committed on 05/02/2024 at 15:28. Pushed by ashark into branch 'docbook_historied_per_file'. query: Add module-set query mode This can be used for example for querying all defined modules and module-sets, for preparing zsh autocompletion cache Original commit: abe4cf12 https://invent.kde.org/sdk/kdesrc-build/-/commit/abe4cf121e3691008de810105bb6f1e7901945b6 M +4-0doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/8ed4a1a3ccd135c7bbf68acb03b9ab45694371f1 diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 4cb6e494..b52bf204 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -302,6 +302,10 @@ one of the following: linkend="conf-branch">branch and branch-group settings in effect. +module-set, which causes to +output the name of module-set which contains the module. This can be used +to generate zsh autocompletion cache. + Any option name that is valid for modules in the configuration file.
[sdk/kdesrc-build/docbook_historied_per_file] doc: Rename qtdir option to qt-install-dir
Git commit a3230652ba0ab05f2b2213515fe5f65565e80694 by Andrew Shark. Committed on 17/01/2024 at 16:57. Pushed by ashark into branch 'docbook_historied_per_file'. Rename qtdir option to qt-install-dir Also remove usage of ancient environment variable QTDIR, which is not used today. CC: #142 Original commit: 2a2f6fd7 https://invent.kde.org/sdk/kdesrc-build/-/commit/2a2f6fd7a956a3657908b91dfe074c544e954e74 M +6-7doc/appendix-profile/old-profile-setup.docbook M +2-2doc/features/features-overview.docbook M +0-1doc/index.docbook M +7-7doc/kdesrc-buildrc/conf-options-table.docbook M +1-1doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook M +1-6doc/using-kdesrc-build/basic-features.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/a3230652ba0ab05f2b2213515fe5f65565e80694 diff --git a/doc/appendix-profile/old-profile-setup.docbook b/doc/appendix-profile/old-profile-setup.docbook index 987925fe..8942b9fe 100644 --- a/doc/appendix-profile/old-profile-setup.docbook +++ b/doc/appendix-profile/old-profile-setup.docbook @@ -25,25 +25,24 @@ and add to the end of the file: If you are building the qt module (you are by default), add instead: -QTDIR=(path to qtdir) # Such as ~/kdesrc/build/qt by default. -PATH=${install-dir}/bin:$QTDIR/bin:$PATH -MANPATH=$QTDIR/doc/man:$MANPATH +PATH=${install-dir}/bin:${qt-install-dir}/bin:$PATH +MANPATH=${qt-install-dir}/doc/man:$MANPATH # Act appropriately if LD_LIBRARY_PATH is not already set. if [ -z $LD_LIBRARY_PATH ]; then - LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib + LD_LIBRARY_PATH=${install-dir}:/lib:${qt-install-dir}/lib else - LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib:$LD_LIBRARY_PATH + LD_LIBRARY_PATH=${install-dir}:/lib:${qt-install-dir}/lib:$LD_LIBRARY_PATH fi -export QTDIR PATH MANPATH LD_LIBRARY_PATH +export PATH MANPATH LD_LIBRARY_PATH or, if you are not building qt (and are using your system instead), add this instead: -PATH=${install-dir}/bin:$QTDIR/bin:$PATH +PATH=${install-dir}/bin:${qt-install-dir}/bin:$PATH # Act appropriately if LD_LIBRARY_PATH is not already set. if [ -z $LD_LIBRARY_PATH ]; then diff --git a/doc/features/features-overview.docbook b/doc/features/features-overview.docbook index 3f6c9de1..6637dc14 100644 --- a/doc/features/features-overview.docbook +++ b/doc/features/features-overview.docbook @@ -142,7 +142,7 @@ a base single-user installation from the anonymous source repositories. Tilde-expansion for your configuration options. For example, you can specify: -qtdir ~/kdesrc/build/qt +install-dir ~/kde/usr @@ -163,7 +163,7 @@ Forced full rebuilds, by running You can specify various environment values to be used during the build, -including QTDIR, DO_NOT_COMPILE, +including DO_NOT_COMPILE and CXXFLAGS. diff --git a/doc/index.docbook b/doc/index.docbook index a7dcc0d2..748187ca 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -39,7 +39,6 @@ configure-flags'> install-dir'> - qtdir'> build-dir'> source-dir'> colorful-output'> diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index 7ee10c94..be58e68b 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -316,8 +316,8 @@ running times for . You cannot override this setting in a module option. The default value is the $PATH that is set when the script starts. This environment variable should include the colon-separated paths of your development -toolchain. The paths install-dir/bin and -$QTDIR/bin are automatically added. You +toolchain. The paths ${install-dir}/bin and +${install-dir}/bin are automatically added. You may use the tilde (~) for any paths you add using this option. @@ -811,7 +811,7 @@ in the path to have them expanded to the module's name. Default valueAuto detected Set this option to change the default name of the installed library directory -inside ${install-dir} and $QTDIR. On many systems this is either +inside ${install-dir} and ${qt-install-dir}. On many systems this is either "lib" or "lib64". Auto-detection is attempted to set the correct name by default, but if the guess is wrong then it can be changed with this setting. @@ -827,7 +827,7 @@ but if the guess is wrong then it can be changed with this setting. LD_LIBRARY_PATH while building. You cannot override this setting in a module option. The default value is blank, but the paths ${install-dir}/$LIBNAME and $QTDIR/$LIBNAME are automatically added. +class="directory">${qt-install-dir}/$LIBNAME are automatically added. You may use the tilde (~) for any paths you add using this option. @@ -1033,13 +1033,13 @@ installs the module. - -qtdir + +qt-install-dir TypeString -Set this option to set the environment variable QTDIR while building. +This option controls
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Fix git-repository-base option
Git commit 31ff822811e6823777de3f7a61e3eba980336ac9 by Andrew Shark. Committed on 26/01/2024 at 04:17. Pushed by ashark into branch 'docbook_historied_per_file'. Fix git-repository-base option Before this commit, only the last occurrence of this option was applied to the build context. Now we actually can use it several times in the global section, as it was intended. - The actual reading of 'git-repository-base' was done when constructing OptionBase from the global section of the config. - The merging options from the constructed OptionsBase object into the BuildContext was done in setOption of BuildContext, but because it was not properly handled in OptionsBase, only the last value was appeared in BuildContext's handling. - Now it is handled in the OptionsBase also when merging (we expect that the type of value is a hash then). - Remove incorrect placement of 'git-repository-base' to the checking of module-set option in the Module, so our BuildContex::setOption can call its parent class Module::setOption, which then can pass this option handling to its parent class OptionsBase::setOption. Also: - Move endWord suggestion next to the printed message. The actual endWord does not matter when parsing, so it makes code a bit more readable when understanding how it parses - Edit comment so it better explains why we remove some options that we read from the config - Move the config description in docbook to the correct scope Original commit: 56023880 https://invent.kde.org/sdk/kdesrc-build/-/commit/5602388099291523942b475b51a2f6a2334012af M +60 -59 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/31ff822811e6823777de3f7a61e3eba980336ac9 diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index 0573f12d..8722b1ae 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -108,6 +108,66 @@ protocol is most efficient. + +git-repository-base + + +TypeString +Available since1.12.1 + +This option is used to create a short +name to reference a specific Git repository base URL in later module set declarations, which is useful for +quickly declaring many Git modules to build. + +You must specify two things (separated by a space): The name to assign +to the base URL, and the actual base URL itself. For example: + + + +global +# other options +# This is the common path to all anonymous Git server modules. +git-repository-base kde-git kde: +end global + +# Module declarations + +module-set +# Now you can use the alias you defined earlier, but only in a module-set. +repository kde-git +use-modules module1.git module2.git +end module-set + + + +The module-set's use-modules option created two modules +internally, with behaving as if it had read: + + +module module1 +repository kde:module1.git +end module + +module module2 +repository kde:module2.git +end module + + +The kde: repository prefix used above is a +shortcut which will be setup by automatically. See the TechBase +https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL +Renaming article for more information. Note that unlike most other +options, this option can be specified multiple times in order to create as +many aliases as necessary. + +It is not required to use this option to take advantage of module-set, +this option exists to make it easy to use the same repository across many +different module sets. + + + install-environment-driver @@ -1267,65 +1327,6 @@ installations. However this only works on build systems that support - -git-repository-base - - -TypeString -Available since1.12.1 - -This option is used to create a short -name to reference a specific Git repository base URL in later module set declarations, which is useful for -quickly declaring many Git modules to build. - -You must specify two things (separated by a space): The name to assign -to the base URL, and the actual base URL itself. For example: - - - -global -# other options -# This is the common path to all anonymous Git server modules. -git-repository-base kde-git kde: -end global - -# Module declarations - -module-set -# Now you can use the alias you defined earlier, but only in a module-set. -repository kde-git -use-modules module1.git module2.git -end module-set - - - -The module-set's use-modules option created two modules -internally, with behaving as if it had read: - - -module module1 -repository kde:module1.git -end module - -module module2 -repository kde:module2.git -end module - - -The kde: repository prefix used above is a -shortcut which will be setup by automatically. See the TechBase -https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL -Renaming article for more information. Note that unlike most other -options, this option can be specified multiple times in
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: doc: Group cli parameters to logical sections
Git commit 3665f792bc29c1072848f42671e7b62a27dda820 by Andrew Shark. Committed on 07/01/2024 at 09:09. Pushed by ashark into branch 'docbook_historied_per_file'. doc: Group cli parameters to logical sections - Indicate mandatory parameters of options. - Add missing (undocumented) alternative option names - Change semantic markup "parameter" -> "option" to differentiate with changing part ("replaceable") - Fix some grammar The https://l10n.kde.org/docs/doc-primer/actions-and-commands.html does not describe (at the moment of writing) the "parameter" tag for some reason. Original commit: 5d7e870d https://invent.kde.org/sdk/kdesrc-build/-/commit/5d7e870dd7658498d427451aed386a60063e0e80 M +495 -479 doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/3665f792bc29c1072848f42671e7b62a27dda820 diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index f5c288dd..3114de5f 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -1,227 +1,254 @@ Supported command-line parameters - -The script accepts the following command-line options: - - + +Generic - ---async - -Enables the asynchronous mode, which can -perform the source code updates and module builds at the same time. This is -the default, this option only needs specified if you have disabled it in the -configuration. - - - - ---help (or -h) + +--pretend (or --dry-run or -p) -Only display simple help on this script. - - + will run through the update and build process, but instead of +performing any actions to update or build, will instead output what the +script would have done (e.g. what commands to run, general steps being taken, +etc.). - ---version (or -v) - -Display the program version. - - +Simple read-only commands (such as reading file information) may +still be run to make the output more relevant (such as correctly simulating +whether source code would be checked out or updated). + - ---show-info - -Displays information about and the operating system, that may -prove useful in bug reports or when asking for help in forums or mailing lists. - -Available since version 18.11. +This option requires that some needed metadata is available, +which is normally automatically downloaded, but downloads are disabled in +pretend mode. If you've never run (and therefore, don't have +this metadata), you should run kdesrc-build +--metadata-only to download the required metadata +first. + - ---initial-setup + +--include-dependencies (or -d), --no-include-dependencies (or -D) -Has perform the one-time initial setup necessary to prepare -the system for to operate, and for the newly-installed -software to run. - -This includes: - -Installing known dependencies (on supported distributions) -Adding required environment variables to ~/.bashrc -Setting up a configuration file - -This option is exactly equivalent to using ---install-distro-packages ---generate-config ---update-shellrc at the same time. - - - +This option causes to automatically include other and +modules in the build, if required for the modules you have requested to build +on the command line or in your +configuration file. - ---install-distro-packages - -Installs distro packages (on supported distributions) necessary to prepare the system for to operate, and for the newly-installed -software to run. - -See also --initial-setup +The modules that are added are as recorded within the source code +management system. See . + +The corresponding configuration file option is +include-dependencies. + +This option is enabled by default. - ---generate-config + +--ignore-modules (or -!) module [module ...] -Generate the configuration file. - -See also --initial-setup - +Do not include the modules passed on the rest of the command line in the +update/build process (this is useful if you want to build most of the modules +in your configuration file and just skip +a few). + - ---update-shellrc + +--run (or --start-program) program [parameters ...] -Edit the "~/.bashrc" (or other shell rc file) to add to your $PATH variable and enable autocompletion. +This option interprets the next item on the command line as a program to run, +and will then finish reading the configuration file, update the +environment as normal, and then execute the given program. + +This will not work to start a shell with the environment +in most cases however, since interactive shells typically reset at least part +of the environment variables (such as PATH and +${install-dir}) in the startup sequence. -See also --initial-setup + +If you want to see the environment used by , you +can run the printenv command: + +$ kdesrc-build --run printenv +KDE_SESSION_VERSION=4 +SDL_AUDIODRIVER=alsa +LANGUAGE= +XCURSOR_THEME=Oxygen_Blue +LESS=-R -M --shift 5 +QMAIL_CONTROLD
[sdk/kdesrc-build/docbook_historied_per_file] doc: doc: Add self links to the listed entries
Git commit ccfbc22e4e3b0bfeba955a8fe9c3b8cd40792806 by Andrew Shark. Committed on 16/01/2024 at 19:55. Pushed by ashark into branch 'docbook_historied_per_file'. doc: Add self links to the listed entries Currently, the anchors are not rendered, see https://bugs.kde.org/show_bug.cgi?id=479910 To workaround, we will use links to the items itself, so users could easily copy and share the link to the option. Original commit: 4e0a8ad0 https://invent.kde.org/sdk/kdesrc-build/-/commit/4e0a8ad0db52e3f519214c740aa21ea7f0efa5c8 M +53 -53 doc/cmdline/supported-cmdline-params.docbook M +60 -60 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/ccfbc22e4e3b0bfeba955a8fe9c3b8cd40792806 diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 219c9099..494a3363 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -6,7 +6,7 @@ ---pretend (or --dry-run or -p) +--pretend (or --dry-run or -p) will run through the update and build process, but instead of performing any actions to update or build, will instead output what the @@ -29,7 +29,7 @@ first. ---include-dependencies (or -d), --no-include-dependencies (or -D) +--include-dependencies (or -d), --no-include-dependencies (or -D) This option causes to automatically include other and modules in the build, if required for the modules you have requested to build @@ -47,7 +47,7 @@ management system. See . ---ignore-modules (or -!) module [module ...] +--ignore-modules (or -!) module [module ...] Do not include the modules passed on the rest of the command line in the update/build process (this is useful if you want to build most of the modules @@ -57,7 +57,7 @@ a few). ---run (or --start-program) program [parameters ...] +--run (or --start-program) program [parameters ...] This option interprets the next item on the command line as a program to run, and will then finish reading the configuration file, update the @@ -86,7 +86,7 @@ QMAIL_CONTROLDIR=/var/qmail/control ---revision id +--revision id This option causes to checkout a specific numbered revision for each module, overriding any branch, @@ -99,7 +99,7 @@ compatibility with older scripts. ---delete-my-patches, --no-delete-my-patches +--delete-my-patches, --no-delete-my-patches This option is used to let delete source directories that may contain user data, so that the module can be re-downloaded. This would normally @@ -112,7 +112,7 @@ deleted). ---delete-my-settings, --no-delete-my-settings +--delete-my-settings, --no-delete-my-settings This option is used to let overwrite existing files which may contain user data. @@ -123,8 +123,8 @@ with it if it is needed. - ---option-name value + +--option-name value You can use this option to override an option in your configuration file for every module. For instance, to override the - ---set-module-option-value module-name,option-name,option-value + +--set-module-option-value module-name,option-name,option-value You can use this option to override an option in your configuration file for a specific module. @@ -159,7 +159,7 @@ a specific module. ---resume-from (or --from or -f) module +--resume-from (or --from or -f) module This option is used to resume the build starting from the given module. You should not specify other module names on the command line. @@ -176,7 +176,7 @@ build. ---resume-after (or --after or -a) module +--resume-after (or --after or -a) module This option is used to resume the build starting after the given module. You should not specify other module names on the command line. @@ -195,7 +195,7 @@ module. ---resume +--resume This option can be used to run after it has had a build failure. @@ -211,7 +211,7 @@ building the modules you were building before, without fiddling with ---stop-before (or --until) module +--stop-before (or --until) module This option is used to stop the normal build process just before a module would ordinarily be built. @@ -224,7 +224,7 @@ then --stop-before moduleB would cau ---stop-after (or --to) module +--stop-after (or --to) module This option is used to stop the normal build process just after a module would ordinarily be built. @@ -237,7 +237,7 @@ then --stop-after moduleB would caus ---stop-on-failure, --no-stop-on-failure +--stop-on-failure, --no-stop-on-failure This option controls if the build will be aborted as soon as a failure occurs. Default behavior is --stop-on-failure. You may override it if you wish to press on with the rest of the modules in the build, @@ -248,7 +248,7 @@ See also the stop-on-failure configu ---rebuild-failures +--rebuild-failures Use this option to build only those modules which failed to build on a previous run
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Add --show-options-specifiers option
Git commit d921bdd7368d4f95b9fc6f0c05f8e58988d286a4 by Andrew Shark. Committed on 15/01/2024 at 17:23. Pushed by ashark into branch 'docbook_historied_per_file'. Add --show-options-specifiers option Original commit: 35e68fb5 https://invent.kde.org/sdk/kdesrc-build/-/commit/35e68fb5b925ef438cf441ead6dce3285f0fdbc8 M +8-8doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/d921bdd7368d4f95b9fc6f0c05f8e58988d286a4 diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 71993bdc..219c9099 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -704,14 +704,6 @@ Display the program version. - ---author - -Display contact information for the -author. - - - --help (or -h) @@ -728,6 +720,14 @@ prove useful in bug reports or when asking for help in forums or mailing lists. + +--show-options-specifiers + +Print the specifier lines (in the format that GetOpts::Long accepts) for all command line options supported by the script. +This may be used by developers, for example, for generating zsh autocompletion functions. + + +
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Check that all option names read from config are recognised
Git commit cafef6c2228c7f489ce18cc80da5008a796f0b97 by Andrew Shark. Committed on 10/01/2024 at 09:26. Pushed by ashark into branch 'docbook_historied_per_file'. Check that all option names read from config are recognised For every option name read from the config, we will check if it is in `@all_possible_options` array. And if not, raise an exception. To differentiate between normal config options and non-standard config options (options with custom name defined by user), we will prepend non-standard options with underscore. So users can still use this convenience feature. Other changes of this commit: - Allow substituting references to global options when they have underscore in their name. - Add ability to _use_ custom variable immediately after defining in global section - Fix end word typo in `t/data/kde-projects/kdesrc-buildrc-with-deps`. - Temporary show a help message for the recently renamed option "kdedir". Original commit: f99141ca https://invent.kde.org/sdk/kdesrc-build/-/commit/f99141cadf12bbb7221ddc88ea6ce3e208b492df M +19 -1doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/cafef6c2228c7f489ce18cc80da5008a796f0b97 diff --git a/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook b/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook index d5c7e1e7..adebe815 100644 --- a/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook +++ b/doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook @@ -92,7 +92,7 @@ linkend="conf-use-modules">use-modules for more information. option-value. One modification that performs is that a sequence -${name-of-option} is replaced +"${name-of-option}" is replaced with the value of that option from the global configuration. This allows you to reference the value of existing options, including options already set by . @@ -101,6 +101,24 @@ to reference the value of existing options, including options already set by To see an example of this in use, see . +You can also introduce your own non-standard global variables for referencing them further in the config. +To do this, your option name should be prepended with underscore symbol. Example: + +Introducing your own global option for referencing later in config + +global + _ver 6 # ← your custom variable (starting with underscore) + _kde ~/kde${_ver} # ← custom variable can contain another defined variable + source-dir ${_kde}/src # ← note that nested variable (_kde → _ver) is also resolved +end global + +options kdepim + log-dir /custom/path/logs${_ver} # ← you can use custom variable just like a standard +end options + + + +
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Add specification for configuration options
Git commit 3fca6a373cd094293c9f43dc69d010e9bfed7f8d by Andrew Shark. Committed on 29/11/2023 at 13:06. Pushed by ashark into branch 'docbook_historied_per_file'. Add specification for configuration options Original commit: d9a2fb13 https://invent.kde.org/sdk/kdesrc-build/-/commit/d9a2fb130cd9a096df5bc6ea182e36a66d814b9d M +419 -258 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/3fca6a373cd094293c9f43dc69d010e9bfed7f8d diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index df4ff911..5545dc53 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -20,53 +20,67 @@ option. Global scope only options - + -Option-name -Module - Global Behavior -Notes +Option name +Description async -Cannot be overridden -This option enables the asynchronous mode of operation, where the source + + +TypeBoolean +Default valueTrue +Available since1.6 + +This option enables the asynchronous mode of operation, where the source code update and the build process will be performed in parallel, instead of waiting for -all of the source code updates before starting the build process. This option defaults -to enabling asynchronous mode. To disable, set this option to false -This option is available since the 1.6 release. +all of the source code updates before starting the build process. colorful-output -Cannot be overridden -Set this option to false to disable the colorful output of . -This option defaults to true. Note that will not output the + +TypeBoolean +Default valueTrue +Set this option to false to disable the colorful output of . +Note that will not output the color codes to anything but a terminal (such as xterm, , or the normal - console). + console). disable-agent-check -Cannot be overridden -Normally if you are using to download the sources -(such as if you are using the git+ssh protocol), will try and + + +TypeBoolean +Default valueFalse + +If you are using to download the sources +(such as if you are using the git+ssh protocol), this option controls if will try and make sure that if you are using ssh-agent, it is actually managing some identities. This is to try and prevent from asking for your pass phrase -for every module. You can disable this check by setting -disable-agent-check to true. +for every module. git-desired-protocol -Cannot be overridden -This option only applies to modules from a + +TypeString +Default valuegit +History informationThis option was added in 1.16. Prior to 20.06 this option +was used to configure the fetch URL instead of the push URL. As of 20.06 +https is always used when updating KDE projects. + +This option only applies to modules from a project repository. What this option actually does is configure which network protocol to @@ -87,16 +101,17 @@ needed for network traffic. In any other situation you should not set this option as the default protocol is most efficient. -This option was added in 1.16. Prior to 20.06 this option -was used to configure the fetch URL instead of the push URL. As of 20.06 -https is always used when updating KDE projects. git-repository-base -Cannot be overridden -This option, added in version 1.12.1, is used to create a short + + +TypeString +Available since1.12.1 + +This option is used to create a short name to reference a specific Git repository base URL in later module set declarations, which is useful for quickly declaring many Git modules to build. @@ -105,26 +120,21 @@ quickly declaring many Git modules to build. to the base URL, and the actual base URL itself. For example: - global -# other options - -# This is the common path to all anonymous Git server modules. -git-repository-base kde-git kde: +# other options +# This is the common path to all anonymous Git server modules. +git-repository-base kde-git kde: end global # Module declarations module-set -# Now you can use the alias you defined earlier, but only -# in a module-set. -repository kde-git - -use-modules module1.git module2.git +# Now you can use the alias you defined earlier, but only in a module-set. +repository kde-git +use-modules module1.git module2.git end module-set - The module-set's use-modules option created two modules @@ -132,11 +142,11 @@ internally, with behaving as if it had read: module module1 -repository kde:module1.git +repository kde:module1.git end module module module2 -repository kde:module2.git +repository kde:module2.git end module @@ -156,8 +166,12 @@ different module sets. ignore-modules -Can't be overridden -Modules named by this option, which would be chosen by + + +TypeString +Available since1.16 + +Modules named by this option, which would be chosen by due to a use-modules option, are instead skipped entirely. Use
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Support phase selection individually for modules and module-sets
Git commit 68dbc8f847165e08fcd7559df8eefd7971d8a68b by Andrew Shark. Committed on 28/01/2024 at 21:24. Pushed by ashark into branch 'docbook_historied_per_file'. Support phase selection individually for modules and module-sets Previously we could only select phases globally from command line. They were applied to all modules. Sometimes user want to control phase selection for individual module. The clone is happening from the remote/origin by default. This becomes a problem when user is working with a local branch that is not presented in remote. For example, user may not have a developer account, or just does not want to upload his work even in work/user branch yet. He just wants kdesrc-build to not touch the sources of that module (while the other modules still be updated), and does not want to exclude module from build phase. Let's say user wants to work with `kio`, and testing it with `ark`. Previously, user could achieve this task by running `kdesrc-build` several times. Different quirks were needed. Example: - `kdesrc-build ark --include-dependencies` - build ark with dependencies (including kio) as normal - `...` - make changes to the kio project - `kdesrc-build kio --no-src --no-include-dependencies` - `kdesrc-build ark --include-dependencies --ignore-modules kio` After this commit user can specify the `no-src` option for the `kio` module, and then just run `kdesrc-build ark --include-dependencies`. The `kio` will not be updated in this process, but will not be excluded from build phase. BUG: 354796 Original commit: d8104fa8 https://invent.kde.org/sdk/kdesrc-build/-/commit/d8104fa8e9defa5b25f7eab538a7b0f2fc652e1d M +88 -14 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/68dbc8f847165e08fcd7559df8eefd7971d8a68b diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index ed52e6bc..63adbf01 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -1038,20 +1038,6 @@ end options - -no-src - - -TypeBoolean -Default valueFalse - -If this option is set to true then will not update the -source code for the module automatically. It will still try to build the -module if it normally would have tried anyways. -Related command-line option: - - - override-build-system @@ -1314,6 +1300,94 @@ installations. However this only works on build systems that support + +These options do not require any value (except "filter-out-phases"). They are applied if they are presented in a section. +Phase selection options + + + + +Option name +Scope +Description + + + + + +no-src +globalmodulemodule-setoptions + +Remove update phase. The other phases that were presented will still be processed. +Related command-line option: + + + + +no-install +globalmodulemodule-setoptions + +Remove install phase. The other phases that were presented will still be processed. +Related command-line option: + + + + +no-tests +globalmodulemodule-setoptions + +Remove test phase. The other phases that were presented will still be processed. +Related command-line option: --no-tests + + + + +no-build +globalmodulemodule-setoptions + +Remove build phase. The other phases that were presented will still be processed. +Related command-line option: + + + + +build-only +globalmodulemodule-setoptions + +If had build phase, remove any other phases. Otherwise, remove all phases. +Related command-line option: + + + + +install-only +globalmodulemodule-setoptions + +If had install phase, remove any other phases. Otherwise, remove all phases. +Related command-line option: + + + + +uninstall +globalmodulemodule-setoptions + +If had uninstall phase, remove any other phases. Otherwise, remove all phases. +Related command-line option: --uninstall + + + + +filter-out-phases +globalmodulemodule-setoptions + +Remove those phases that are listed (space separated) in this option. The other phases that were presented will still be processed. + + + + + + Module-set and global scope options
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: doc: Fix mistake in variable name
Git commit e07bf87b7abb766f394a1e68ea29a4724af4f884 by Andrew Shark. Committed on 19/01/2024 at 01:34. Pushed by ashark into branch 'docbook_historied_per_file'. doc: Fix mistake in variable name Original commit: 4d990277 https://invent.kde.org/sdk/kdesrc-build/-/commit/4d990277cfe27c0fdcab5e422a37654b01aa2740 M +1-1doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/e07bf87b7abb766f394a1e68ea29a4724af4f884 diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index be58e68b..e19ac4d0 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -317,7 +317,7 @@ You cannot override this setting in a module option. The default value is the $PATH that is set when the script starts. This environment variable should include the colon-separated paths of your development toolchain. The paths ${install-dir}/bin and -${install-dir}/bin are automatically added. You +${qt-install-dir}/bin are automatically added. You may use the tilde (~) for any paths you add using this option.
[sdk/kdesrc-build/docbook_historied_per_file] doc: Rename option "kdedir" to "install-dir"
Git commit 266f2e3bf47a1bc20da87d3d8e9cc0a871f5e2cb by Andrew Shark. Committed on 03/01/2024 at 18:43. Pushed by ashark into branch 'docbook_historied_per_file'. Rename option "kdedir" to "install-dir" The kdedir is ambiguous, it is not clear if it is source, build or install dir. The kdedir naming dates back to the 2003 era when you had to define KDEDIR to define where KDE 3 was installed, just as QTDIR was used to define the location of the Qt 3 install. mpyne later added prefix for non-KDE modules and should have switched things over afterwards but never got around to it. By KDE SC 5 the requirement to use KDEDIR (or as it was by then, KDEDIRS) was dropped in favor of searching PATH. See https://invent.kde.org/sdk/kdesrc-build/-/commit/2f7b9477b7d44a2f88c148846c8f80f6921fd4ef#note_839381 Original commit: e5c028cd https://invent.kde.org/sdk/kdesrc-build/-/commit/e5c028cd18fa9f5e508e7b88d64033880eca7fa6 M +10 -14 doc/appendix-profile/old-profile-setup.docbook M +1-1doc/cmdline/supported-cmdline-params.docbook M +1-1doc/features/features-overview.docbook M +1-1doc/getting-started/configure-data.docbook M +1-1doc/index.docbook M +6-6doc/kdesrc-buildrc/conf-options-table.docbook M +1-1doc/kdesrc-buildrc/kdesrc-buildrc-overview.docbook M +0-5doc/using-kdesrc-build/basic-features.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/266f2e3bf47a1bc20da87d3d8e9cc0a871f5e2cb diff --git a/doc/appendix-profile/old-profile-setup.docbook b/doc/appendix-profile/old-profile-setup.docbook index 1aa44da4..987925fe 100644 --- a/doc/appendix-profile/old-profile-setup.docbook +++ b/doc/appendix-profile/old-profile-setup.docbook @@ -26,37 +26,33 @@ If you are building the qt module (you are by default), add instead: QTDIR=(path to qtdir) # Such as ~/kdesrc/build/qt by default. -KDEDIR=(path to kdedir) # Such as ~/kde/usr by default. -KDEDIRS=$KDEDIR -PATH=$KDEDIR/bin:$QTDIR/bin:$PATH +PATH=${install-dir}/bin:$QTDIR/bin:$PATH MANPATH=$QTDIR/doc/man:$MANPATH # Act appropriately if LD_LIBRARY_PATH is not already set. if [ -z $LD_LIBRARY_PATH ]; then - LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib + LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib else - LD_LIBRARY_PATH=$KDEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH + LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib:$LD_LIBRARY_PATH fi -export QTDIR KDEDIRS PATH MANPATH LD_LIBRARY_PATH +export QTDIR PATH MANPATH LD_LIBRARY_PATH or, if you are not building qt (and are using your system instead), add this instead: -KDEDIR=(path to kdedir) # Such as ~/kde/usr by default. -KDEDIRS=$KDEDIR -PATH=$KDEDIR/bin:$QTDIR/bin:$PATH +PATH=${install-dir}/bin:$QTDIR/bin:$PATH # Act appropriately if LD_LIBRARY_PATH is not already set. if [ -z $LD_LIBRARY_PATH ]; then - LD_LIBRARY_PATH=$KDEDIR/lib + LD_LIBRARY_PATH=${install-dir}/lib else - LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH + LD_LIBRARY_PATH=${install-dir}/lib:$LD_LIBRARY_PATH fi -export KDEDIRS PATH LD_LIBRARY_PATH +export PATH LD_LIBRARY_PATH @@ -80,7 +76,7 @@ variables in your .bash_profile: XDG_CONFIG_DIRS="/etc/xdg" -XDG_DATA_DIRS="${KDEDIR}/share:/usr/share" +XDG_DATA_DIRS="${install-dir}/share:/usr/share" export XDG_CONFIG_DIRS XDG_DATA_DIRS @@ -102,7 +98,7 @@ Open the .xinitrc text file from the home directory, or create it if necessary. Add the line: -exec ${KDEDIR}/bin/startkde +exec ${install-dir}/bin/startkde diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index c44823ad..f5c288dd 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -608,7 +608,7 @@ environment as normal, and then execute the given program. This will not work to start a shell with the environment in most cases however, since interactive shells typically reset at least part of the environment variables (such as PATH and -KDEDIRS) in the startup sequence. +${install-dir}) in the startup sequence. If you want to see the environment used by , you diff --git a/doc/features/features-overview.docbook b/doc/features/features-overview.docbook index 937f2941..3f6c9de1 100644 --- a/doc/features/features-overview.docbook +++ b/doc/features/features-overview.docbook @@ -163,7 +163,7 @@ Forced full rebuilds, by running You can specify various environment values to be used during the build, -including KDEDIR, QTDIR, DO_NOT_COMPILE, +including QTDIR, DO_NOT_COMPILE, and CXXFLAGS. diff --git a/doc/getting-started/configure-data.docbook b/doc/getting-started/configure-data.docbook index 59021d25..a4019619 100644 --- a/doc/getting-started/configure-data.docbook +++ b/doc/getting-started/configure-data.docbook @@ -28,7 +28,7 @@ The default settings should be appropriate to perform a -kdedir, which changes the +install-dir, which chan
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Add support for --no-build-when-unchanged
Git commit d8fb6b82a84f32232294ef35f16cf2f74f269474 by Andrew Shark. Committed on 16/01/2024 at 11:49. Pushed by ashark into branch 'docbook_historied_per_file'. Add support for --no-build-when-unchanged This option was mistakenly not marked as negatable. Adding the negatable form allows to override the `true` value set to this option from config. Fixes: #351 Original commit: fe8dbd69 https://invent.kde.org/sdk/kdesrc-build/-/commit/fe8dbd69e35a9367181fe5d27c10d25786f192a4 M +2-4doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/d8fb6b82a84f32232294ef35f16cf2f74f269474 diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index 86e35dbb..da8b7da1 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -417,13 +417,11 @@ class="directory">/home/user-name/builddir. Control whether always tries to build a module that has not had any source code updates. -By setting build-when-unchanged to -true, always attempts the build phase +If set to true, always attempts the build phase for a module, even if the module did not have any source code updates. With this value it will more likely lead to a correct build. -By setting build-when-unchanged to -false, will only attempt to run the +If set to false, will only attempt to run the build phase for a module if the module has a source code update, or in other situations where it is likely that a rebuild is actually required. This can save time, especially if you run daily, or more frequently.
[sdk/kdesrc-build/docbook_historied_per_file] doc: Split index.docbook to separate docbook files
Git commit 4e02da6ffdcd40d258a3d39a3b8c10937f62cb4a by Andrew Shark. Committed on 05/01/2024 at 19:02. Pushed by ashark into branch 'docbook_historied_per_file'. Split index.docbook to separate docbook files Original commit: ff360536 https://invent.kde.org/sdk/kdesrc-build/-/commit/ff360536e7dad4a5d58a8f51386aa4035d58bed2 M +4-0doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/4e02da6ffdcd40d258a3d39a3b8c10937f62cb4a diff --git a/doc/index.docbook b/doc/index.docbook index 64dc254d..a7dcc0d2 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -63,6 +63,10 @@ --resume-after'> --reconfigure'> --refresh-build'> + +
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: doc: Remove final paragraph about the selectors
Git commit 5c755544cb012cb250e543f1214d21958eb8961d by Andrew Shark. Committed on 08/01/2024 at 21:42. Pushed by ashark into branch 'docbook_historied_per_file'. doc: Remove final paragraph about the selectors The previous commit wrongly moved this paragraph to the specific section, but it was intentional to keep it outside the specific sections. However, this paragraph originates from the very initial lifetime of the index.docbook, and is no more accurate. So remove it. Original commit: cb3a389d https://invent.kde.org/sdk/kdesrc-build/-/commit/cb3a389d27de1f1ca8fe1e529435fe73ad35e3d4 M +0-5doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/5c755544cb012cb250e543f1214d21958eb8961d diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index f27563dd..ab7923bc 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -731,10 +731,5 @@ prove useful in bug reports or when asking for help in forums or mailing lists. - -Any other command-line options are assumed to be modules to update and build. -Please, do not mix building with installing. - -
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Move the module-set scope options to their table
Git commit 3ef19771ab890c89fbc6cdb5bf32e2f259f1c9a1 by Andrew Shark. Committed on 12/12/2023 at 09:53. Pushed by ashark into branch 'docbook_historied_per_file'. Move the module-set scope options to their table Original commit: 4ef24d2f https://invent.kde.org/sdk/kdesrc-build/-/commit/4ef24d2f1150cb209f9d9c97cfef415f7dd0f69d M +93 -90 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/3ef19771ab890c89fbc6cdb5bf32e2f259f1c9a1 diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index 2f26df6f..04faa8a4 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -104,95 +104,6 @@ protocol is most efficient. - -git-repository-base - - -TypeString -Available since1.12.1 - -This option is used to create a short -name to reference a specific Git repository base URL in later module set declarations, which is useful for -quickly declaring many Git modules to build. - -You must specify two things (separated by a space): The name to assign -to the base URL, and the actual base URL itself. For example: - - - -global -# other options -# This is the common path to all anonymous Git server modules. -git-repository-base kde-git kde: -end global - -# Module declarations - -module-set -# Now you can use the alias you defined earlier, but only in a module-set. -repository kde-git -use-modules module1.git module2.git -end module-set - - - -The module-set's use-modules option created two modules -internally, with behaving as if it had read: - - -module module1 -repository kde:module1.git -end module - -module module2 -repository kde:module2.git -end module - - -The kde: repository prefix used above is a -shortcut which will be setup by automatically. See the TechBase -https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL -Renaming article for more information. Note that unlike most other -options, this option can be specified multiple times in order to create as -many aliases as necessary. - -It is not required to use this option to take advantage of module-set, -this option exists to make it easy to use the same repository across many -different module sets. - - - - -ignore-modules - - -TypeString -Available since1.16 - -Modules named by this option, which would be chosen by -due to a use-modules option, are -instead skipped entirely. Use this option when you want to build an entire -kde-projects project grouping -except for some specific modules. - -The option value does not necessarily have to name the module directly. -Any module that has full consecutive parts of its projects module path match one -of the option values will be ignored, so you can ignore multiple modules this -way. - -For example, an option value of libs would -result in both kde/kdegraphics/libs and -playground/libs being excluded (though not -kde/kdelibs since the full part kdelibs is what -is compared). - -See also . - - - install-environment-driver @@ -1302,7 +1213,7 @@ installations. However this only works on build systems that support -Module-set scope only options +Module-set and global scope options @@ -1313,6 +1224,97 @@ installations. However this only works on build systems that support + +git-repository-base + + +TypeString +Available since1.12.1 + +This option is used to create a short +name to reference a specific Git repository base URL in later module set declarations, which is useful for +quickly declaring many Git modules to build. + +You must specify two things (separated by a space): The name to assign +to the base URL, and the actual base URL itself. For example: + + + +global +# other options +# This is the common path to all anonymous Git server modules. +git-repository-base kde-git kde: +end global + +# Module declarations + +module-set +# Now you can use the alias you defined earlier, but only in a module-set. +repository kde-git +use-modules module1.git module2.git +end module-set + + + +The module-set's use-modules option created two modules +internally, with behaving as if it had read: + + +module module1 +repository kde:module1.git +end module + +module module2 +repository kde:module2.git +end module + + +The kde: repository prefix used above is a +shortcut which will be setup by automatically. See the TechBase +https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL +Renaming article for more information. Note that unlike most other +options, this option can be specified multiple times in order to create as +many aliases as necessary. + +It is not required to use this option to take advantage of module-set, +this option exists to make it easy to use the same repository across many +different module sets. + + + + +ignore-modules + + +TypeString +Available since1.16 + +Currently can only be used in module-set, see
[sdk/kdesrc-build/docbook_historied_per_file] doc/cmdline: Add --dependency-tree-fullpath option
Git commit 74be34cc1b3b4c4a259bc25fb4e69407bc97309c by Andrew Shark. Committed on 28/12/2023 at 09:43. Pushed by ashark into branch 'docbook_historied_per_file'. Add --dependency-tree-fullpath option This option will do similar thing as --dependency-tree, but will print the full path on the line of each tree entry. This may be convenient when you want to grep something from the printed tree, but want to still be able to see the paths. Original commit: 42483187 https://invent.kde.org/sdk/kdesrc-build/-/commit/42483187d75c2787f6c627d6ed1f84e0529a9b6f M +11 -0doc/cmdline/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/74be34cc1b3b4c4a259bc25fb4e69407bc97309c diff --git a/doc/cmdline/supported-cmdline-params.docbook b/doc/cmdline/supported-cmdline-params.docbook index 5818d7a6..c44823ad 100644 --- a/doc/cmdline/supported-cmdline-params.docbook +++ b/doc/cmdline/supported-cmdline-params.docbook @@ -587,6 +587,17 @@ If this file doesn't exist, ~/.config/kdesrc-buildrc + +--dependency-tree-fullpath + + +Prints out dependency information on the modules that would be built using a tree +format (recursive). In fullpath format. Note: the generated +output may become quite large for applications with many dependencies. + + + + --run
[sdk/kdesrc-build/docbook_historied_per_file] doc/kdesrc-buildrc: Remove unused option kde-languages
Git commit 88753fbe303969744cc4f158fe6f83b6b896047c by Andrew Shark. Committed on 16/11/2023 at 14:03. Pushed by ashark into branch 'docbook_historied_per_file'. Remove unused option kde-languages Original commit: aec5f8b9 https://invent.kde.org/sdk/kdesrc-build/-/commit/aec5f8b9c19bed58a633f9fb2c72392c0a70cf68 M +0-24 doc/kdesrc-buildrc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/88753fbe303969744cc4f158fe6f83b6b896047c diff --git a/doc/kdesrc-buildrc/conf-options-table.docbook b/doc/kdesrc-buildrc/conf-options-table.docbook index 42599f39..7831bf87 100644 --- a/doc/kdesrc-buildrc/conf-options-table.docbook +++ b/doc/kdesrc-buildrc/conf-options-table.docbook @@ -743,30 +743,6 @@ change this to a directory needing root access, you may want to read about the well. - -kde-languages -Cannot be overridden -This option allows you to choose to download and install -localization packages along with . You might do this if you do not live in -the United States and would like to use translated into your native -language. - -To use this option, set it to a space-separated list of languages to -install. Each language has a language code associated with it, which you -can look up at this page: http://l10n.kde.org/teams-list.php;>http://l10n.kde.org/teams-list.php. - - -It is alright to choose only one language. By default, none are -downloaded, which means will display in American English. - -For instance, to choose to install French, you would set the option to -something like: kde-languages -fr. You would still need to use - in order to choose the French language, however. - - - libname Module setting overrides global
[sdk/kdesrc-build/docbook_historied_per_file] doc: Move xsession.sh and kde-env-master.sh templates to data
Git commit 4a025b73f8a83f57b5c484e10d03116b43829265 by Andrew Shark. Committed on 12/12/2023 at 10:04. Pushed by ashark into branch 'docbook_historied_per_file'. Move xsession.sh and kde-env-master.sh templates to data Original commit: beffd6a8 https://invent.kde.org/sdk/kdesrc-build/-/commit/beffd6a8d7250ffab6307bf1492c6ef751bbd3bb M +1-1doc/appendix-profile/old-profile-setup.docbook M +1-1doc/getting-started/environment.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/4a025b73f8a83f57b5c484e10d03116b43829265 diff --git a/doc/appendix-profile/old-profile-setup.docbook b/doc/appendix-profile/old-profile-setup.docbook index 59de9fd5..1aa44da4 100644 --- a/doc/appendix-profile/old-profile-setup.docbook +++ b/doc/appendix-profile/old-profile-setup.docbook @@ -7,7 +7,7 @@ will normally try to do this automatically (see ). This appendix section can be useful for those who cannot use 's support for login profile setup. However the instructions may not always be up-to-date, it can also be useful to consult the -kde-env-master.sh file included with the +kde-env-master.sh.in file included with the source. diff --git a/doc/getting-started/environment.docbook b/doc/getting-started/environment.docbook index bf606dd6..d5929b59 100644 --- a/doc/getting-started/environment.docbook +++ b/doc/getting-started/environment.docbook @@ -119,7 +119,7 @@ instructions have been moved to an appendix (). If you intend to setup your own login support you can consult that -appendix or view the sample-kde-env-master.sh file +appendix or view the kde-env-master.sh.in file included with the source.
[utilities/ark] /: Make the Compress menu items text consistent
Git commit fe1e8a1d3e2f485bcb37df19fff1871872e97fd1 by Andrew Shark. Committed on 25/03/2024 at 14:25. Pushed by meven into branch 'master'. Make the Compress menu items text consistent The items of Compress submenu were: - Here as "Archive.tar.gz" - Here as "Archive.zip" - Compress to... Make them all be consistent, and be: - Compress to "Archive.tar.gz" - Compress to "Archive.zip" - Compress to... M +1-1app/compressfileitemaction.cpp M +1-1doc/index.docbook https://invent.kde.org/utilities/ark/-/commit/fe1e8a1d3e2f485bcb37df19fff1871872e97fd1 diff --git a/app/compressfileitemaction.cpp b/app/compressfileitemaction.cpp index 06bb938b3..850db43ab 100644 --- a/app/compressfileitemaction.cpp +++ b/app/compressfileitemaction.cpp @@ -84,7 +84,7 @@ QAction *CompressFileItemAction::createAction(const QIcon , QWidget *parent fileName = fileName.left(10) + QStringLiteral("…") + fileName.right(10); } -name = i18nc("@action:inmenu Part of Compress submenu in Dolphin context menu, %1 filename", "Here as \"%1\"", fileName); +name = i18nc("@action:inmenu Part of Compress submenu in Dolphin context menu, %1 filename", "Compress to \"%1\"", fileName); } QAction *action = new QAction(icon, name, parent); diff --git a/doc/index.docbook b/doc/index.docbook index 709a284ba..18fec9a21 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -412,7 +412,7 @@ subfolder in the folder with the archive, extracts the folders and files into it -Here as "Archive.tar.gz" and Here as "Archive.zip" creates these archive types in the current folder. +Compress to "Archive.tar.gz" and Compress to "Archive.zip" creates these archive types in the current folder. Compress to... opens a dialog where you can select folder, name and archive type.
[sdk/kdesrc-build/move_authors] /: SPDX: Add headers in docbook
Git commit 01535ba40b3d77feae8c0b58a840836d042b4faf by Andrew Shark. Committed on 11/03/2024 at 08:19. Pushed by ashark into branch 'move_authors'. SPDX: Add headers in docbook M +8-0LICENSES/kdesrc-build authors.txt M +7-0doc/advanced-features.docbook M +7-0doc/appendix-modules.docbook M +7-0doc/appendix-profile.docbook M +7-0doc/basic-features.docbook M +7-0doc/building-and-troubleshooting.docbook M +7-0doc/building-specific-modules.docbook M +7-0doc/cmdline.docbook M +7-0doc/conf-options-table.docbook M +7-0doc/configure-data.docbook M +7-0doc/credits-and-license.docbook M +7-0doc/developer-features.docbook M +7-0doc/environment.docbook M +7-0doc/features.docbook M +7-0doc/getting-started.docbook M +8-18 doc/index.docbook M +7-0doc/intro-toc.docbook M +7-0doc/introduction.docbook M +7-0doc/kde-cmake.docbook M +7-0doc/kde-modules-and-selection.docbook M +7-0doc/kdesrc-build-logging.docbook M +7-0doc/kdesrc-buildrc.docbook M +5-10 doc/man-kdesrc-build.1.docbook M +7-0doc/other-features.docbook M +7-0doc/quick-start-conclusion.docbook M +7-0doc/supported-cmdline-params.docbook M +7-0doc/supported-envvars.docbook M +7-0doc/using-kdesrc-build.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/01535ba40b3d77feae8c0b58a840836d042b4faf diff --git a/LICENSES/kdesrc-build authors.txt b/LICENSES/kdesrc-build authors.txt index 1d9fb5de..fccfef04 100644 --- a/LICENSES/kdesrc-build authors.txt +++ b/LICENSES/kdesrc-build authors.txt @@ -11,3 +11,11 @@ Contributors include: Pino Toscano ... and others. Check the git source repository for specifics. + +Documentation contributors include: +2005 Carlos Leonhard Woelz +2009 Burkhard Lück +2007, 2011 Federico Zenith +2009-2011 Yuri Chornoivan +2023, 2024 Andrew Shark +... and others. Check the git source repository for specifics. diff --git a/doc/advanced-features.docbook b/doc/advanced-features.docbook index edb19da7..17627c8f 100644 --- a/doc/advanced-features.docbook +++ b/doc/advanced-features.docbook @@ -1,3 +1,10 @@ + + Advanced features diff --git a/doc/appendix-modules.docbook b/doc/appendix-modules.docbook index 109f2daf..1dd8032b 100644 --- a/doc/appendix-modules.docbook +++ b/doc/appendix-modules.docbook @@ -1,3 +1,10 @@ + + modules and source code organization diff --git a/doc/appendix-profile.docbook b/doc/appendix-profile.docbook index 517465fc..a014d90b 100644 --- a/doc/appendix-profile.docbook +++ b/doc/appendix-profile.docbook @@ -1,3 +1,10 @@ + + Superseded profile setup procedures diff --git a/doc/basic-features.docbook b/doc/basic-features.docbook index f9ce58c1..4f501ace 100644 --- a/doc/basic-features.docbook +++ b/doc/basic-features.docbook @@ -1,3 +1,10 @@ + + Basic features diff --git a/doc/building-and-troubleshooting.docbook b/doc/building-and-troubleshooting.docbook index b9d478eb..7512811b 100644 --- a/doc/building-and-troubleshooting.docbook +++ b/doc/building-and-troubleshooting.docbook @@ -1,3 +1,10 @@ + + Using the script With the configuration data established, now you are ready to run the diff --git a/doc/building-specific-modules.docbook b/doc/building-specific-modules.docbook index d0e30a76..af268a67 100644 --- a/doc/building-specific-modules.docbook +++ b/doc/building-specific-modules.docbook @@ -1,3 +1,10 @@ + + Building specific modules diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook index a3380279..2dc1362a 100644 --- a/doc/cmdline.docbook +++ b/doc/cmdline.docbook @@ -1,3 +1,10 @@ + + Command Line Options and Environment Variables diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index b35d520c..6c101e59 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -1,3 +1,10 @@ + + Table of available configuration options diff --git a/doc/configure-data.docbook b/doc/configure-data.docbook index a4019619..a2a36b49 100644 --- a/doc/configure-data.docbook +++ b/doc/configure-data.docbook @@ -1,3 +1,10 @@ + + Setting the Configuration Data diff --git a/doc/credits-and-license.docbook b/doc/credits-and-license.docbook index c1cde3c6..ae1da0a4 100644 --- a/doc/credits-and-license.docbook +++ b/doc/credits-and-license.docbook @@ -1,3 +1,10 @@ + + Credits And License diff --git a/doc/developer-features.docbook b/doc/developer-features.docbook index 1a5dc69a..550f2403 100644 --- a/doc/developer-features.docbook +++ b/doc/developer-features.docbook @@ -1,3 +1,10 @@ + + Features for developers diff --git a/doc/environment.docbook b/doc/environment.docbook index d5929b59..af163528 100644 --- a/doc/environment.docbook +++ b/doc/environment.docbook @@ -1,3 +1,10 @@ + + Setting the Environment to Run Your Desktop diff --git
[sdk/kde-builder] /: Use os.cpu_count() instead of running subprocess
Git commit 4f769b8417b23d27a037aede0baf5d99ad78025f by Andrew Shark, on behalf of Christoph Cullmann. Committed on 09/03/2024 at 17:55. Pushed by ashark into branch 'master'. Use os.cpu_count() instead of running subprocess This also unifies the code, so we do not need to distinct between linux/freebsd/macos specific command to get number of threads. M +1-3doc/conf-options-table.docbook M +2-4ksblib/BuildSystem/BuildSystem.py M +1-6ksblib/FirstRun.py M +5-2tests/unit/build-system/test_empty-num-cores.py https://invent.kde.org/sdk/kde-builder/-/commit/4f769b8417b23d27a037aede0baf5d99ad78025f diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index b35d520c..a0008112 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -258,9 +258,7 @@ number, the "nicer" the program is. Available since20.07 This option is defined by (when using kdesrc-build --generate-config), set to be the number of -available CPUs (as indicated by the external application -nproc). If cannot detect the -number of CPUs, this value is set to 4. +available CPUs. If cannot detect the number of CPUs, this value is set to 4. See for an example of this option's usage. diff --git a/ksblib/BuildSystem/BuildSystem.py b/ksblib/BuildSystem/BuildSystem.py index 3fe13b77..6523bf20 100644 --- a/ksblib/BuildSystem/BuildSystem.py +++ b/ksblib/BuildSystem/BuildSystem.py @@ -97,10 +97,8 @@ class BuildSystem: if self.supportsAutoParallelism() and cores == "auto": return {} -try: -out = [line.removesuffix("\n") for line in Util.filter_program_output(None, "nproc")] -max_cores = max(1, int(out[0])) -except BuildException: +max_cores = os.cpu_count() +if not max_cores: max_cores = 1 if cores == "auto" and max_cores > 1: diff --git a/ksblib/FirstRun.py b/ksblib/FirstRun.py index 95ea6204..356aea77 100644 --- a/ksblib/FirstRun.py +++ b/ksblib/FirstRun.py @@ -194,12 +194,7 @@ class FirstRun: with open(os.path.dirname(os.path.realpath(__file__)) + "/../data/kdesrc-buildrc.in", "r") as data_file: sampleRc = data_file.read() -numCores = None -if self.oss.vendorID() in [*self.supportedDistros, "linux"]: -numCores = int(subprocess.run(["nproc"], shell=False, capture_output=True, check=True).stdout.decode("utf-8").removesuffix("\n")) -elif self.oss.vendorID() == "freebsd": -numCores = int(subprocess.run(["sysctl", "-n", "hw.ncpu"], shell=False, capture_output=True, check=True).stdout.decode("utf-8").removesuffix("\n")) - +numCores = os.cpu_count() if not numCores: numCores = 4 diff --git a/tests/unit/build-system/test_empty-num-cores.py b/tests/unit/build-system/test_empty-num-cores.py index b2ad9a03..a2c2f334 100644 --- a/tests/unit/build-system/test_empty-num-cores.py +++ b/tests/unit/build-system/test_empty-num-cores.py @@ -1,3 +1,4 @@ +import os import pytest import subprocess from ksblib.Module.Module import Module @@ -29,8 +30,10 @@ def test_empty_numcores(mock_buildsystem): # The -j logic will take off one CPU if you ask for too many so try to ensure # test cases don't ask for too many. -max_cores = int(subprocess.run(["nproc"], shell=True, capture_output=True, check=True).stdout.decode("utf-8").removesuffix("\n")) -max_cores = int(max_cores // 2) +max_cores = os.cpu_count() +if max_cores is None: +max_cores = 2 + if max_cores < 2: max_cores = 2
[sdk/kdesrc-build] doc: doc: Create table of debug levels
Git commit fd57dd6695550f522a2c2c16d09d1ca9bfee6ad1 by Andrew Shark. Committed on 24/02/2024 at 16:26. Pushed by ashark into branch 'master'. doc: Create table of debug levels M +52 -19 doc/other-features.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/fd57dd6695550f522a2c2c16d09d1ca9bfee6ad1 diff --git a/doc/other-features.docbook b/doc/other-features.docbook index 96215a58..c42d97fe 100644 --- a/doc/other-features.docbook +++ b/doc/other-features.docbook @@ -6,25 +6,58 @@ has several options to control the amount of output the script generates. In any case, errors will always be output. - -The --quiet option (short form is --q) causes to be mostly silent. Only important -messages, warnings, or errors will be shown. When available, build progress -information is still shown. - -The --really-quiet option (no short form) -causes to only display important warnings or errors while it is -running. - -The --verbose option (short form is --v) causes to be very detailed in its -output. - -The --debug option is for debugging purposes -only, it causes to act as if --verbose was -turned on, causes commands to also output to the terminal, and will display -debugging information for many functions. - + + Table of debug levels + + + + + Debug level + Level name + Command line option + + + + + +0 +DEBUG +--debug + + + +1 +WHISPER +--verbose + + + +2 +INFO +Selected by default + + + +3 +NOTE +--quiet + + + +4 +WARNING +--really-quiet + + + +5 +ERROR +No way to select + + + + +
[sdk/kdesrc-build] /: doc: List --run in commonly used options
Git commit 19044150a44a2f7a18d89a1e74dbcc0b5f696c6e by Andrew Shark. Committed on 20/02/2024 at 21:29. Pushed by ashark into branch 'master'. doc: List --run in commonly used options Reference full documentation from --help. No need to keep yet another place of options listing. M +54 -42 doc/cmdline.docbook M +6-69 modules/ksb/Cmdline.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/19044150a44a2f7a18d89a1e74dbcc0b5f696c6e diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook index a3380279..0ad480d0 100644 --- a/doc/cmdline.docbook +++ b/doc/cmdline.docbook @@ -17,48 +17,6 @@ kdesrc-build will build all modules defined in its configuration file, in the order listed in that file (although this can be modified by various configuration file options). - -Commonly used command line options - -The full list of command line options is given in . The most-commonly used options -include: - - - ---pretend (or -p) -This option causes to indicate what actions -it would take, without actually really implementing them. This can be -useful to make sure that the modules you think you are building will -actually get built. - - - ---refresh-build -This option forces to build the given -modules from an absolutely fresh start point. Any existing build directory -for that module is removed and it is rebuilt. This option is useful if you -have errors building a module, and sometimes is required when or -libraries change. - - - ---no-src -This option skips the source update process. You might use -it if you have very recently updated the source code (perhaps you did it -manually or recently ran ) but still want to rebuild some -modules. - - - ---no-build -This option is similar to --no-src above, -but this time the build process is skipped. - - - - - Specifying modules to build @@ -96,6 +54,60 @@ option before building a new module set to ensure it is only building the modules you want. + + +Commonly used command line options + + + +--pretend (or -p) +This option causes to indicate what actions + it would take, without actually really implementing them. This can be + useful to make sure that the modules you think you are building will + actually get built. + + + +--no-src +This option skips the source update process. You might use + it if you have very recently updated the source code (perhaps you did it + manually or recently ran ) but still want to rebuild some + modules. + + + +--no-include-dependencies (or -D) +Only process the selected modules, skipping their dependencies. + Useful when you have changed only selected modules, and you are sure you + do not need to rebuild the others. + + + +--refresh-build (or -r) +This option forces to build the given + modules from an absolutely fresh start point. Any existing build directory + for that module is removed and it is rebuilt. This option is useful if you + have errors building a module, and sometimes is required when or + libraries change. + + + +--resume-from module +Skips modules until just before the given module, then operates as normal. + Useful when the previous build failed on specific module, you fixed it, and then you + want to continue the with building the rest of initial set of modules. + + + +--run module +Launch the built application. + + + + The full list of command line options is given in . + + diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm index cb1666e4..a935286a 100644 --- a/modules/ksb/Cmdline.pm +++ b/modules/ksb/Cmdline.pm @@ -323,77 +323,14 @@ sub _showVersionAndExit sub _showHelpAndExit { -# According to XDG spec, if $XDG_CONFIG_HOME is not set, then we should -# default to ~/.config -my $xdgConfigHome = $ENV{XDG_CONFIG_HOME} // "$ENV{HOME}/.config"; -my $xdgConfigHomeShort = $xdgConfigHome =~ s/^$ENV{HOME}/~/r; # Replace $HOME with ~ - -my $pwd = $ENV{PWD}; -my $pwdShort = $pwd =~ s/^$ENV{HOME}/~/r; # Replace $HOME with ~ - -my $scriptVersion = scriptVersion(); - say <<~DONE; -kdesrc-build $scriptVersion -Copyright (c) 2003 - 2023 Michael Pyne and others, and is -distributed under the terms of the GNU GPL v2. - -This script automates the download, build, and install process for KDE software -using the latest available source code. - -Configuration is controlled from "$pwdShort/kdesrc-buildrc" or -"$xdgConfigHomeShort/kdesrc-buildrc". -See kdesrc-buildrc-sample for an example. - -Us
[sdk/kdesrc-build] /: Use distro-dependencies defined in repo-metadata
Git commit 75bfc43675938761ee0f23efa36ebbfd70ea0322 by Andrew Shark. Committed on 18/02/2024 at 11:02. Pushed by ashark into branch 'master'. Use distro-dependencies defined in repo-metadata Distro dependencies (data/pkg) moved here: https://invent.kde.org/sysadmin/repo-metadata/-/tree/master/distro-dependencies D +0-104 data/pkg/alpine.ini D +0-126 data/pkg/arch.ini D +0-175 data/pkg/debian.ini D +0-166 data/pkg/fedora.ini D +0-39 data/pkg/freebsd.ini D +0-32 data/pkg/gentoo.ini D +0-36 data/pkg/mageia.ini D +0-158 data/pkg/opensuse.ini M +1-0doc/man-kdesrc-build.1.docbook M +1-0doc/supported-cmdline-params.docbook M +5-0kdesrc-build M +29 -38 modules/ksb/FirstRun.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/75bfc43675938761ee0f23efa36ebbfd70ea0322 diff --git a/data/pkg/alpine.ini b/data/pkg/alpine.ini deleted file mode 100644 index 3eef1ea4.. --- a/data/pkg/alpine.ini +++ /dev/null @@ -1,104 +0,0 @@ -[pkg/alpine/unknown] -alpine-sdk -attr-dev -autoconf -automake -bison -boost-dev -clang-extra-tools -cmake -corrosion -curl-dev -cyrus-sasl-dev -doxygen -eudev-dev -exiv2-dev -ffmpeg-dev -flex -giflib-dev -gperf -gpgme-dev -grantlee-dev -graphviz -gst-plugins-base-dev -gstreamer-dev -kdsoap-dev -lcms2-dev -libaccounts-qt-dev -libcanberra-dev -libdbusmenu-qt-dev -libdisplay-info-dev -libdmtx-dev -libepoxy-dev -libgcrypt-dev -libgit2-dev -libical-dev -libinput-dev -libnl3-dev -libqalculate-dev -libqrencode-dev -libsecret-dev -libva-dev -libxcvt-dev -libxkbfile-dev -libxmlb-dev -libxrender-dev -libxslt-dev -libxtst-dev -linux-pam-dev -lm-sensors-dev -lmdb-dev -meson -modemmanager-dev -mpv-dev -musl-fts-dev -networkmanager-dev -ninja -olm-dev -openjpeg-dev -openldap-dev -pcre-dev -pipewire-dev -polkit-elogind-dev -pulseaudio-dev -py3-sphinx -py3-setuptools -qca-dev -qcoro-dev -qt5-qtbase-dev -qt5-qtdeclarative-dev -qt5-qtmultimedia-dev -qt5-qtnetworkauth-dev -qt5-qtquickcontrols2-dev -qt5-qtscript-dev -qt5-qtsensors-dev -qt5-qtsvg-dev -qt5-qttools-dev -qt5-qtwayland-dev -qt5-qtx11extras-dev -qt5-qtxmlpatterns-dev -qt6-qt5compat-dev -qt6-qtbase-dev -qt6-qtmultimedia-dev -qt6-qtpositioning-dev -qt6-qtsensors-dev -qt6-qtspeech-dev -qt6-qtsvg-dev -qt6-qttools-dev -qt6-qtwayland-dev -qt6-qtwebengine-dev -qt6-qtwebview-dev -qtkeychain-dev -signond-dev -stb -texinfo -utfcpp -wayland-protocols -xapian-core-dev -xcb-util-cursor-dev -xcb-util-image-dev -xcb-util-keysyms-dev -xcb-util-wm-dev -xkeyboard-config-dev -xmlto -yaml-dev diff --git a/data/pkg/arch.ini b/data/pkg/arch.ini deleted file mode 100644 index 4a9077af.. --- a/data/pkg/arch.ini +++ /dev/null @@ -1,126 +0,0 @@ -[pkg/arch/unknown] -# Basic build tools - -# .. gnu -autoconf -automake -bison -flex -gcc -gperf -make - -# .. llvm -clang -cmake - -# .. build systems -ninja -meson - -# .. rust -corrosion - -# .. others -boost -docbook-xsl -doxygen -intltool -pkg-config -git -gi-docgen - -# Qt-related -qt6 -poppler-qt6 -qca-qt6 -qtkeychain-qt6 -qcoro-qt6 -qt5-base -qt5-script -qt5-websockets -qt5-svg -qt5-tools -qt5-x11extras -qca-qt5 -libaccounts-qt -libdbusmenu-qt5 -poppler-qt5 -qtkeychain-qt5 -phonon-qt5 -packagekit - -# Others/Unsorted -wayland-protocols -qrencode -signond -xapian-core -qgpgme -kdsoap -xsd -xerces-c -vlc -ruby-sass -eigen -mlt -freecell-solver -sane -vala -check -libolm -xmlto -itstool -libdisplay-info -python-sphinx -python-setuptools -enchant -jasper -openexr -libutempter -docbook-xsl -shared-mime-info -giflib -libxss -upower -udisks2 -xorg-server-devel -libpwquality -libfakekey -eigen -xapian-core -libdmtx -ruby-test-unit -plymouth -libical -openal -libxmlb -exiv2 -lmdb -libqalculate -libraw -mpv -sccache -python-cairo -python-pip -flatpak -xf86-input-wacom -black-hole-solver -fluidsynth -libgit2 -microsoft-gsl -power-profiles-daemon - -#plasma-desktop -xdotool - -# appstream -gobject-introspection -xf86-input-evdev -python-chai - -#okular -libspectre -libzip -discount -djvulibre -ebook-tools diff --git a/data/pkg/debian.ini b/data/pkg/debian.ini deleted file mode 100644 index fbce96cd.. --- a/data/pkg/debian.ini +++ /dev/null @@ -1,175 +0,0 @@ -[pkg/debian/unknown] -# Basic build tools -bison -build-essential -cmake -flex -gettext -git -gperf -libssl-dev -intltool -meson -ninja-build -shared-mime-info -clang-format -apt-file -# Qt-related -qtwayland5-private-dev -libdbusmenu-qt5-dev -libqt5svg5-dev -libqt5waylandclient5-dev -libqt5x11extras5-dev -qtbase5-private-dev -qtdeclarative5-dev -qtmultimedia5-dev -qtquickcontrols2-5-dev -qtscript5-dev -qttools5-dev -qtwayland5-dev-tools -qtxmlpatterns5-dev-tools -qt6-tools-dev -qt6-declarative-dev -qt6-wayland -qt6-wayland-dev -qt6-wayland-dev-tools -qt6-base-private-dev -qt6-speech-dev -qt6-multimedia-dev -libqt6svg6-dev -libqt6core5compat6-dev -libqt6opengl6-dev -libqt6shadertools6-dev -packagekit -# Frameworks dependencies -# .. polkit-qt-1 -libpolkit-gobject-1-dev -libpolkit
[sdk/kdesrc-build] /: Merge kdesrc-build --run and kdesrc-run
Git commit 301b9b4caf1b84bf2e14bd616fec06683f5a2d18 by Andrew Shark. Committed on 17/02/2024 at 17:50. Pushed by ashark into branch 'master'. Merge kdesrc-build --run and kdesrc-run This fixes multiple issues with kdesrc-run and kdesrc-build --run When using the --run parameter, the environment variables of global module were applied (from set-env options). But this is incorrect, since global cannot be treated as usual module. Its build system is defined as generic. In its prepareModuleBuildEnvironment these variables were setted: - PKG_CONFIG_PATH - LD_LIBRARY_PATH - PATH They have nothing to do with launched module's variables, except PATH, but even that was because of global install-dir matches the module's install-dir in most cases. The kdesrc-run did sourced module's prefix.sh instead (located in its build-dir). That setted the following variables: - PATH (the correct, from module) - XDG_DATA_DIRS - XDG_CONFIG_DIRS - QT_PLUGIN_PATH - QML2_IMPORT_PATH - QT_QUICK_CONTROLS_STYLE_PATH This commit fixes the broken behavior of --run, and the broken behavior of kdesrc-run. Fixes: #145 Fixes: #114 Other fixes: - Now the parameters after --run that starts with minuses are passed to the start-program, and not considered as options of kdesrc-build - When setting parameters to the runned executable, they are actually applied. Previously the run script surrounded the $@ in the quotes. - Fixed indentation and unnecessary semicolons in executable script. - Made more clear note information when launching. The debug level controls if it will be displayed. M +0-1CMakeLists.txt M +0-1README.md M +0-1completions/zsh/_kdesrc-build M +4-4data/kdesrc-run-completions.sh M +1-1doc/man-kdesrc-build.1.docbook M +3-23 doc/supported-cmdline-params.docbook D +0-134 kdesrc-run M +2-40 modules/ksb/Application.pm M +22 -5modules/ksb/Cmdline.pm A +122 -0modules/ksb/StartProgram.pm M +2-2modules/ksb/TaskManager.pm M +1-1scripts/gen_zsh_completions.py https://invent.kde.org/sdk/kdesrc-build/-/commit/301b9b4caf1b84bf2e14bd616fec06683f5a2d18 diff --git a/CMakeLists.txt b/CMakeLists.txt index bae5fd53..03047adb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,6 @@ endif() # Currently, kdesrc-build real file (not a symlink) expects to be near its data and modules. Need to make a symlink in PKGBUILD then. install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kdesrc-build DESTINATION ${KDE_INSTALL_DATADIR}/kdesrc-build) -install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kdesrc-run DESTINATION ${KDE_INSTALL_DATADIR}/kdesrc-build) install(DIRECTORY data/ DESTINATION ${KDE_INSTALL_DATADIR}/kdesrc-build/data) diff --git a/README.md b/README.md index c95e6d8b..8f253dcc 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,6 @@ For other distributions, you will need to make a local installation: $ cd ~/.local/share $ git clone https://invent.kde.org/sdk/kdesrc-build.git $ ln -sf ~/.local/share/kdesrc-build/kdesrc-build ~/.local/bin -$ ln -sf ~/.local/share/kdesrc-build/kdesrc-run ~/.local/bin ``` - Make sure it works by running: diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index bc8202e4..600811e8 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -75,7 +75,6 @@ _arguments \ "(--run-tests --no-run-tests)"{--run-tests,--no-run-tests}"[Built the modules with support for running their test suite]" \ "--set-module-option-value""[Override an option in your configuration file for a specific module]"":argument:" \ "--source-dir""[Directory that stores the KDE sources]"":argument:" \ - "(--run --start-program)"{--run,--start-program}"[A program to run with kdesrc-build]"":arguments:" \ "(--stop-on-failure --no-stop-on-failure)"{--stop-on-failure,--no-stop-on-failure}"[Stops/Does not stop the build as soon as a package fails to build]" \ "--tag""[Download a specific release of a module]"":argument:" \ "--uninstall""[Uninstalls the module]" \ diff --git a/data/kdesrc-run-completions.sh b/data/kdesrc-run-completions.sh index 47e222ff..820259e2 100644 --- a/data/kdesrc-run-completions.sh +++ b/data/kdesrc-run-completions.sh @@ -1,5 +1,5 @@ -## Autocomplete for kdesrc-run -function _comp_kdesrc_run +## Autocomplete for kdesrc-build --run +function _comp_kdesrc_build_run { local cur COMPREPLY=() @@ -10,7 +10,7 @@ function _comp_kdesrc_run return 0 fi - # Retrieve build modules through kdesrc-run + # Retrieve build modules through kdesrc-build # If the exit status indicates failure, set the wordlist empty to avoid # unrelated messages. local modules @@ -26,4 +26,4 @@ function _comp_kdesrc_run } ## Register autocomplete function -complet
[sdk/kdesrc-build] /: Move --list-installed to kdesrc-build
Git commit 733b492414f2c1e49986106070f05cf68cd1a752 by Andrew Shark. Committed on 17/02/2024 at 14:09. Pushed by ashark into branch 'master'. Move --list-installed to kdesrc-build M +1-0completions/zsh/_kdesrc-build M +1-1data/kdesrc-run-completions.sh M +9-0doc/supported-cmdline-params.docbook M +1-10 kdesrc-run M +6-0modules/ksb/Application.pm M +1-0modules/ksb/Cmdline.pm M +1-0scripts/gen_zsh_completions.py https://invent.kde.org/sdk/kdesrc-build/-/commit/733b492414f2c1e49986106070f05cf68cd1a752 diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index e563f53d..bc8202e4 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -49,6 +49,7 @@ _arguments \ "(--install-session-driver --no-install-session-driver)"{--install-session-driver,--no-install-session-driver}"[Install a driver for the graphical login manager]" \ "--libname""[Default name of the installed library directory]"":argument:" \ "--libpath""[Set the environment variable LD_LIBRARY_PATH while building]"":argument:" \ + "--list-installed""[Print installed modules and exit]" \ "--log-dir""[Directory used to hold the log files generated by the script]"":argument:" \ "--make-install-prefix""[A command and its options to precede the make install command used to install modules]"":argument:" \ "--make-options""[Pass command line options to the make command]"":argument:" \ diff --git a/data/kdesrc-run-completions.sh b/data/kdesrc-run-completions.sh index a49319d2..47e222ff 100644 --- a/data/kdesrc-run-completions.sh +++ b/data/kdesrc-run-completions.sh @@ -14,7 +14,7 @@ function _comp_kdesrc_run # If the exit status indicates failure, set the wordlist empty to avoid # unrelated messages. local modules - if ! modules=$(kdesrc-run --list-installed); + if ! modules=$(kdesrc-build --list-installed); then modules="" fi diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index a6d1a9aa..fb02d2d3 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -350,6 +350,15 @@ kdepim: master + +--list-installed + + +Print installed modules and exit. This can be used to generate autocompletion for the --run option. + + + + diff --git a/kdesrc-run b/kdesrc-run index b27d82a1..90c55560 100755 --- a/kdesrc-run +++ b/kdesrc-run @@ -18,7 +18,6 @@ kdesrc-run [options] [arguments] -f, --fork Launch the program in a new session. -q, --quiet Do not print run information. -h, --help Print usage information and exit. - --list-installedPrint installed modules and exit. =head1 EXAMPLES @@ -49,17 +48,15 @@ our $optExec; our $optFork = 0; our $optHelp = 0; our $optQuiet = 0; -our $optListInstalled = 0; GetOptions( 'exec|e=s' => \$optExec, 'fork|f' => \$optFork, 'help|h' => sub { pod2usage(0); }, 'quiet|q'=> \$optQuiet, -'list-installed' => \$optListInstalled, ); -if ($#ARGV == -1 && not $optListInstalled) { +if ($#ARGV == -1) { pod2usage(0); } @@ -84,12 +81,6 @@ my $buildData = do { decode_json(<$fh>); }; -if ($optListInstalled) { -say foreach sort { $a cmp $b } -grep { defined $buildData->{$_}{'install-dir'} } keys %$buildData; -exit; -} - if (not defined $buildData->{$module}) { say qq(Module "$module" has not been built yet.); exit 1; diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 53cf4431..952f3f8f 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -311,6 +311,12 @@ EOF unshift @selectors, split(/,\s*/, $moduleList); } +if (exists $cmdlineGlobalOptions->{"list-installed"}) { +say foreach sort { $a cmp $b } +grep { defined $ctx->{persistent_options}->{$_}{'install-dir'} } keys %{$ctx->{persistent_options}}; +exit; +} + my %ignored_in_global_section = map { $_, 1 } split(" ", $ctx->{options}->{"ignore-modules"}); $ctx->{options}->{"ignore-modules"} = ""; diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm index a7d6e51b..2950c890 100644 --- a/modules/ksb/Cmdline.pm +++ b/modules/ksb/Cmdline.pm @@ -426,6 +426,7 @@ sub _supportedOptions 'dependency-tree', 'dependency-tree-fullpath', 'help|h', +"list-installed", 'metadata-only', 'no-metadata|M', 'query=s', diff --git a/scripts/gen_zsh_completions.py b/scripts/gen_zsh_
[sdk/kdesrc-build] /: Remove update-shellrc step
Git commit 5d7dcacee6fd89feae01f197e278f61a1ddead8b by Andrew Shark. Committed on 15/02/2024 at 11:44. Pushed by ashark into branch 'master'. Remove update-shellrc step It basically just added to the shellrc the path to the running script. That is not handled correctly in all cases. Also, it tried to add kdesrc-run bash autocompletion, but the code was not handling all cases correctly anyway. Instead, we will offer to install the file in the correct place in the first place. Regarding PATH, that should be in user's control. M +1-1README.md M +0-1completions/zsh/_kdesrc-build M +1-13 doc/man-kdesrc-build.1.docbook M +1-12 doc/supported-cmdline-params.docbook M +0-4kdesrc-build M +3-4modules/ksb/Cmdline.pm M +0-78 modules/ksb/FirstRun.pm M +0-1scripts/gen_zsh_completions.py https://invent.kde.org/sdk/kdesrc-build/-/commit/5d7dcacee6fd89feae01f197e278f61a1ddead8b diff --git a/README.md b/README.md index c4aaa3fb..c95e6d8b 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,7 @@ $ kdesrc-build --initial-setup ``` This will install the distribution packages dependencies required by `kdesrc-build`, -generate a configuration file, and add itself to your path for convenience. +generate a configuration file. ### Download the KDE project and dependency data: diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index 8dccee6f..ce83af68 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -78,7 +78,6 @@ _arguments \ "(--stop-on-failure --no-stop-on-failure)"{--stop-on-failure,--no-stop-on-failure}"[Stops/Does not stop the build as soon as a package fails to build]" \ "--tag""[Download a specific release of a module]"":argument:" \ "--uninstall""[Uninstalls the module]" \ - "--update-shellrc""[Installs Plasma env vars (~/.bashrc)]" \ "(--use-clean-install --no-use-clean-install)"{--use-clean-install,--no-use-clean-install}"[Run make uninstall directly before running make install]" \ "(--use-idle-io-priority --no-use-idle-io-priority)"{--use-idle-io-priority,--no-use-idle-io-priority} \ "(--use-inactive-modules --no-use-inactive-modules)"{--use-inactive-modules,--no-use-inactive-modules}"[Allow kdesrc-build to also clone and pull from repositories marked as inactive]" \ diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook index 352da7ff..f97209c9 100644 --- a/doc/man-kdesrc-build.1.docbook +++ b/doc/man-kdesrc-build.1.docbook @@ -130,7 +130,7 @@ combining short options into one at this point. (E.g. running default configuration file setup, and changes to your ~/.bashrc to make the software installed by accessible. -This is exactly equivalent to using "--install-distro-packages --generate-config --update-shellrc" at the same time. +This is exactly equivalent to using "--install-distro-packages --generate-config" at the same time. @@ -160,18 +160,6 @@ Generate the configuration file. - - ---update-shellrc - - - - -Edit the "~/.bashrc" (or other shell rc file) to add to your $PATH variable and enable autocompletion. - - - - -p, --pretend diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index c3202192..a6d1a9aa 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -564,12 +564,11 @@ software to run. Installing known dependencies (on supported distributions) Adding required environment variables to ~/.bashrc -Setting up a configuration file This option is exactly equivalent to using --install-distro-packages --generate-config ---update-shellrc at the same time. +at the same time. @@ -593,16 +592,6 @@ Generate the configuration file. - ---update-shellrc - -Edit the "~/.bashrc" (or other shell rc file) to add to your $PATH variable and enable autocompletion. - -See also --initial-setup - - - - diff --git a/kdesrc-build b/kdesrc-build index 9caeb9cb..1db44550 100755 --- a/kdesrc-build +++ b/kdesrc-build @@ -91,7 +91,6 @@ eval { if (grep { $_ eq "--initial-setup" } @ARGV) { push @setup_steps, "install-distro-packages"; push @setup_steps, "generate-config"; -push @setup_steps, "update-shellrc"; } else { if (grep {$_ eq "--install-distro-packages"} @ARGV) { push @setup_steps, "install-distro-packages"; @@ -99,9 +98,6 @@ eval { if (grep {$_ eq "--generate-config"} @ARGV) { push @setup_steps, "generate-config"; } -if (grep {$_ eq "--update-shellrc"} @ARGV) { -push @setup_steps, "update-
[sdk/kdesrc-build] /: Cmdline: Use -M as short form of --no-metadata
Git commit 6bcfb3205897b8d0b40f66e88f7ee155076f79e4 by Andrew Shark. Committed on 14/02/2024 at 09:45. Pushed by ashark into branch 'master'. Cmdline: Use -M as short form of --no-metadata M +1-1doc/man-kdesrc-build.1.docbook M +1-1doc/supported-cmdline-params.docbook M +1-1modules/ksb/Cmdline.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/6bcfb3205897b8d0b40f66e88f7ee155076f79e4 diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook index bdadfe7e..352da7ff 100644 --- a/doc/man-kdesrc-build.1.docbook +++ b/doc/man-kdesrc-build.1.docbook @@ -232,7 +232,7 @@ Edit the "~/.bashrc" (or other shell rc file) to add to your $PAT ---no-metadata +-M, --no-metadata diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index 95367ed7..c3202192 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -358,7 +358,7 @@ kdepim: master ---no-metadata +--no-metadata (or -M) Do not automatically download the extra metadata needed for git modules. The source updates for the modules themselves will still occur unless you pass diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm index ab9edb42..933a82fd 100644 --- a/modules/ksb/Cmdline.pm +++ b/modules/ksb/Cmdline.pm @@ -428,7 +428,7 @@ sub _supportedOptions 'dependency-tree-fullpath', 'help|h', 'metadata-only', -'no-metadata', +'no-metadata|M', 'query=s', 'rc-file=s', 'rebuild-failures',
[sdk/kdesrc-build] /: Add build-system query mode
Git commit 139fdc94f4e4a469ff3b0f245a3626f3b58e3556 by Andrew Shark. Committed on 10/02/2024 at 12:33. Pushed by ashark into branch 'master'. Add build-system query mode M +4-0doc/man-kdesrc-build.1.docbook M +4-0doc/supported-cmdline-params.docbook M +2-0modules/ksb/Application.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/139fdc94f4e4a469ff3b0f245a3626f3b58e3556 diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook index d8c7f41c..bdadfe7e 100644 --- a/doc/man-kdesrc-build.1.docbook +++ b/doc/man-kdesrc-build.1.docbook @@ -683,6 +683,10 @@ one of the following: module-set, which causes to output the name of module-set which contains the module. This can be used to generate zsh autocompletion cache. +build-system, which causes to +output the name of build system detected for the module. This can be used +to debug build system auto-detection problems, or when developing tests for specific build systems. + Otherwise, option names that are valid for modules in the configuration file can be used, the resolved value of which will be listed for each module. diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index 86eaf976..95367ed7 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -306,6 +306,10 @@ one of the following: output the name of module-set which contains the module. This can be used to generate zsh autocompletion cache. +build-system, which causes to +output the name of build system detected for the module. This can be used +to debug build system auto-detection problems, or when developing tests for specific build systems. + Any option name that is valid for modules in the configuration file. diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 0bc1b082..73ec5b12 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -624,6 +624,8 @@ sub runAllModulePhases $query = sub {($_[0]->scm()->_determinePreferredCheckoutSource())[0] // ""} } elsif ($queryMode eq "module-set") { $query = sub { $_[0]->{"module-set"}->{"name"} // "undefined_module-set"} +} elsif ($queryMode eq "build-system") { +$query = sub { $_[0]->buildSystem()->name() } } else { # Default to ->getOption as query method. $query = sub { $_[0]->getOption($queryMode) } }
[sdk/kdesrc-build] /: Remove --print-modules and --list-build options
Git commit 08c6bb39486fc51aca90a20708f65ee3ae7eb0eb by Andrew Shark. Committed on 10/02/2024 at 09:37. Pushed by ashark into branch 'master'. Remove --print-modules and --list-build options There are already `--query module-set` and `--query branch` options, no need to create unnecessarily entities. The --list-build tree indentation was not properly implemented, but made correctly in dependency-tree. The #dependency-level sticky option was never set, so print-modules indentation was broken forever. The zsh completion script relied on --list-build option and needs to be reworked. M +0-2completions/zsh/_kdesrc-build M +1-1completions/zsh/_kdesrc-build_modules M +1-5doc/README.md M +0-67 doc/man-kdesrc-build.1.docbook M +0-48 doc/supported-cmdline-params.docbook M +0-25 modules/ksb/Application.pm M +0-4modules/ksb/Cmdline.pm M +5-3scripts/gen_zsh_completions.py https://invent.kde.org/sdk/kdesrc-build/-/commit/08c6bb39486fc51aca90a20708f65ee3ae7eb0eb diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index 4e42e40c..8dccee6f 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -49,7 +49,6 @@ _arguments \ "(--install-session-driver --no-install-session-driver)"{--install-session-driver,--no-install-session-driver}"[Install a driver for the graphical login manager]" \ "--libname""[Default name of the installed library directory]"":argument:" \ "--libpath""[Set the environment variable LD_LIBRARY_PATH while building]"":argument:" \ - "--list-build""[List what modules would be built in the order in which they would be built]" \ "--log-dir""[Directory used to hold the log files generated by the script]"":argument:" \ "--make-install-prefix""[A command and its options to precede the make install command used to install modules]"":argument:" \ "--make-options""[Pass command line options to the make command]"":argument:" \ @@ -61,7 +60,6 @@ _arguments \ "--override-build-system""[Manually specify the correct build type]"":argument:" \ "--persistent-data-file""[Change where kdesrc-build stores its persistent data]"":argument:" \ "(--dry-run --pretend -p)"{--dry-run,--pretend,-p}"[Dont actually take major actions, instead describe what would be done]" \ - "--print-modules""[Prints the modules that would be processed]" \ "(--purge-old-logs --no-purge-old-logs)"{--purge-old-logs,--no-purge-old-logs}"[Automatically delete old log directories]" \ "--qmake-options""[Options passed to the qmake command]"":argument:" \ "--qt-install-dir""[Where to install qt modules after build]"":argument:" \ diff --git a/completions/zsh/_kdesrc-build_modules b/completions/zsh/_kdesrc-build_modules index 0e5a1d30..ec91aa82 100644 --- a/completions/zsh/_kdesrc-build_modules +++ b/completions/zsh/_kdesrc-build_modules @@ -13,7 +13,7 @@ if _cache_invalid kdesrc_build_modules || ! _retrieve_cache kdesrc_build_modules # (@) array Expansion Flags are needed because we need to operate on each element separately. kdesrc_build_modules=( "${(@)${(@)${(@)${(f)"$( _call_program kdesrc-build-modules \ - kdesrc-build --list-build --no-src + kdesrc-build --query module-set --no-src )"}[1,-2]}# ── }%% *}" ) _store_cache kdesrc_build_modules kdesrc_build_modules fi diff --git a/doc/README.md b/doc/README.md index 0c846677..9d51bc55 100644 --- a/doc/README.md +++ b/doc/README.md @@ -48,10 +48,6 @@ These are some kdesrc-build tricks that probably should be documented with the [KDE Community Wiki page](https://community.kde.org/Get_Involved/development#Set_up_kdesrc-build) but for now they're at least worth nothing here: -- Use `--print-modules` to view which modules kdesrc-build would build, in the - order they would be built in. This implies `--pretend` although it doesn't hurt - to include that. - - Use `kdesrc-build --rebuild-failures` (potentially with `--no-src`) to rebuild modules that failed to build during the last kdesrc-build run. This is particularly useful when a silly local error breaks an important module @@ -107,7 +103,7 @@ but for now they're at least worth nothing here: - Use `--resume-from` (or `--resume-after`) to have kdesrc-build start the build from a later module than normal, and `--stop-before` (or `--stop-after`) to have kdesrc-build stop the build at an earlier module than - normal. This can also be used with `--print-modules`. + normal. - Use the `ignore-modules` option with your module sets if you want to build
[sdk/kdesrc-build] /: query: Add module-set query mode
Git commit abe4cf121e3691008de810105bb6f1e7901945b6 by Andrew Shark. Committed on 05/02/2024 at 15:28. Pushed by ashark into branch 'master'. query: Add module-set query mode This can be used for example for querying all defined modules and module-sets, for preparing zsh autocompletion cache M +3-0doc/man-kdesrc-build.1.docbook M +4-0doc/supported-cmdline-params.docbook M +2-0modules/ksb/Application.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/abe4cf121e3691008de810105bb6f1e7901945b6 diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook index 6402063b..6556b358 100644 --- a/doc/man-kdesrc-build.1.docbook +++ b/doc/man-kdesrc-build.1.docbook @@ -686,6 +686,9 @@ one of the following: branch and branch-group settings in effect. +module-set, which causes to +output the name of module-set which contains the module. This can be used +to generate zsh autocompletion cache. Otherwise, option names that are valid for modules in the configuration file can be used, the resolved value of which will be listed for each module. diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index 4cb6e494..b52bf204 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -302,6 +302,10 @@ one of the following: linkend="conf-branch">branch and branch-group settings in effect. +module-set, which causes to +output the name of module-set which contains the module. This can be used +to generate zsh autocompletion cache. + Any option name that is valid for modules in the configuration file. diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index c4cf0a59..320ce3e8 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -647,6 +647,8 @@ sub runAllModulePhases $query = sub { $_[0]->fullProjectPath() } } elsif ($queryMode eq "branch") { $query = sub {($_[0]->scm()->_determinePreferredCheckoutSource())[0] // ""} +} elsif ($queryMode eq "module-set") { +$query = sub { $_[0]->{"module-set"}->{"name"} // "undefined_module-set"} } else { # Default to ->getOption as query method. $query = sub { $_[0]->getOption($queryMode) } }
[sdk/kdesrc-build] /: query: Make behavior the same when one module is queried
Git commit 49ec03c7dca5a0cabaeb54fb34a9100dd6c2b2e4 by Andrew Shark. Committed on 05/02/2024 at 14:20. Pushed by ashark into branch 'master'. query: Make behavior the same when one module is queried M +0-7doc/man-kdesrc-build.1.docbook M +0-7doc/supported-cmdline-params.docbook M +3-9modules/ksb/Application.pm M +0-5modules/ksb/Cmdline.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/49ec03c7dca5a0cabaeb54fb34a9100dd6c2b2e4 diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook index 59279ee1..6402063b 100644 --- a/doc/man-kdesrc-build.1.docbook +++ b/doc/man-kdesrc-build.1.docbook @@ -692,13 +692,6 @@ one of the following: - -If a single module is passed on the command line, then the output is simply the -value of the parameter being queried. If multiple (or no) modules are passed on -the command line, then each line is prefixed by the name of the module. Either -way, kdesrc-build stops running once each value is output. - - This option was added with kdesrc-build 16.05. diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index 7c4f8f31..4cb6e494 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -307,13 +307,6 @@ one of the following: - -If a single module is passed on the command line, then the output is simply the -value of the parameter being queried. If multiple (or no) modules are passed on -the command line, then each line is prefixed by the name of the module. Either way, - stops running once each value is output. - - For example, the command kdesrc-build --query branch kactivities kdepim diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 3aaa41e7..bebc229e 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -642,16 +642,10 @@ sub runAllModulePhases $query = sub { $_[0]->fullpath('build') } if $queryMode eq 'build-dir'; $query = sub { $_[0]->installationPath() } if $queryMode eq 'install-dir'; $query = sub { $_[0]->fullProjectPath() } if $queryMode eq 'project-path'; -$query = sub { ($_[0]->scm()->_determinePreferredCheckoutSource())[0] // '' } -if $queryMode eq 'branch'; +$query = sub { ($_[0]->scm()->_determinePreferredCheckoutSource())[0] // '' } if $queryMode eq 'branch'; -if (@modules == 1) { -# No leading module name, just the value -say $query->($modules[0]); -} else { -for my $m (@modules) { -say "$m: ", $query->($m); -} +for my $m (@modules) { +say "$m: ", $query->($m); } return 0; diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm index 055676b8..efb13ab2 100644 --- a/modules/ksb/Cmdline.pm +++ b/modules/ksb/Cmdline.pm @@ -198,11 +198,6 @@ sub readCommandLineOptionsAndSelectors (@options) die("Invalid query mode $arg") unless $arg =~ $validMode; -# Add useful aliases -$arg = 'source-dir' if $arg =~ /^src-?dir$/; -$arg = 'build-dir' if $arg =~ /^build-?dir$/; -$arg = 'install-dir' if $arg =~ /^install-?dir$/; - $opts->{run_mode} = 'query'; $auxOptions{query} = $arg; $auxOptions{pretend} = 1; # Implied pretend mode
[sdk/kdesrc-build] /: RecursiveFH: Support variables in include lines
Git commit 399806c1efd4514b75c9f1254bb4b408f02a7221 by Andrew Shark. Committed on 02/02/2024 at 08:07. Pushed by ashark into branch 'master'. RecursiveFH: Support variables in include lines M +12 -0doc/kdesrc-buildrc.docbook M +1-1modules/ksb/Application.pm M +22 -1modules/ksb/RecursiveFH.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/399806c1efd4514b75c9f1254bb4b408f02a7221 diff --git a/doc/kdesrc-buildrc.docbook b/doc/kdesrc-buildrc.docbook index 1ad21432..dd038296 100644 --- a/doc/kdesrc-buildrc.docbook +++ b/doc/kdesrc-buildrc.docbook @@ -222,6 +222,18 @@ end global the file will be searched for starting from the directory containing the source file. This works recursively as well. +You can use variables in the value of include instruction: + +global + _ver 6 + source-dir ~/kde${_ver}/src + ... + persistent-data-file ~/kde${_ver}/persistent-options.json +end global + +include ~/kde6/src/kdesrc-build/data/build-include/kf${_ver}-qt${_ver}.ksb + + diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 3d33a988..3aaa41e7 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -1097,7 +1097,7 @@ sub _readConfigurationOptions ($ctx, $fh, $cmdlineGlobalOptions, $deferredOption my $rcfile = $ctx->rcFile(); my ($option, %readModules); -my $fileReader = ksb::RecursiveFH->new($rcfile); +my $fileReader = ksb::RecursiveFH->new($rcfile, $ctx); $fileReader->addFile($fh, $rcfile); # Read in global settings diff --git a/modules/ksb/RecursiveFH.pm b/modules/ksb/RecursiveFH.pm index 86d752b3..c5fcdb42 100644 --- a/modules/ksb/RecursiveFH.pm +++ b/modules/ksb/RecursiveFH.pm @@ -12,13 +12,14 @@ use File::Basename; # dirname # TODO: Replace make_exception with appropriate croak_* function. sub new { -my ($class, $rcfile) = @_; +my ($class, $rcfile, $ctx) = @_; my $data = { 'filehandles' => [],# Stack of filehandles to read 'filenames' => [],# Corresponding tack of filenames (full paths) 'base_path' => [],# Base directory path for relative includes 'current' => undef, # Current filehandle to read 'current_fn' => undef, # Current filename +'ctx' => $ctx, }; my $self = bless($data, $class); @@ -158,6 +159,26 @@ sub readLine EOM } +my $optionRE = qr/\$\{([a-zA-Z0-9-_]+)\}/; # Example of matched string is "${option-name}" or "${_option-name}". +my $ctx = $self->{ctx}; + +# Replace reference to global option with their value. +my ($sub_var_name) = ($filename =~ $optionRE); +while ($sub_var_name) +{ +my $sub_var_value = $ctx->getOption($sub_var_name) || ""; +if(!$ctx->hasOption($sub_var_name)) { +warning (" *\n * WARNING: y[$sub_var_name] used in $self->{current_fn}:$. is not set in global context.\n *"); +} + +debug ("Substituting \${$sub_var_name} with $sub_var_value"); + +$filename =~ s/\$\{$sub_var_name\}/$sub_var_value/g; + +# Replace other references as well. +($sub_var_name) = ($filename =~ $optionRE); +} + open ($newFh, '<', $filename) or die make_exception('Config', "Unable to open file '$filename' which was included from $self->{current_fn}:$.");
[sdk/kdesrc-build] doc: doc: Define scopes for modules selection options
Git commit d974610efba6140798b10d13d092558e9226f796 by Andrew Shark. Committed on 29/01/2024 at 21:21. Pushed by ashark into branch 'master'. doc: Define scopes for modules selection options M +16 -16 doc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/d974610efba6140798b10d13d092558e9226f796 diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index 345ef74e..b35d520c 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -1,17 +1,16 @@ Table of available configuration options -Here is a table of the various options, containing the following +Here are tables of various options, containing the following information: The option name -A description of how responds if the option is -set in both the global section, and the module section of the configuration file while building a -module. +The scope of the option: global, module or module-set. +Options in module or/and module-set scope can also be defined in options sections. + Special comments on the purpose and usage of the option. @@ -1316,7 +1315,7 @@ installations. However this only works on build systems that support no-src -globalmodulemodule-setoptions +globalmodulemodule-set Remove update phase. The other phases that were presented will still be processed. Related command-line option: @@ -1325,7 +1324,7 @@ installations. However this only works on build systems that support no-install -globalmodulemodule-setoptions +globalmodulemodule-set Remove install phase. The other phases that were presented will still be processed. Related command-line option: @@ -1334,7 +1333,7 @@ installations. However this only works on build systems that support no-tests -globalmodulemodule-setoptions +globalmodulemodule-set Remove test phase. The other phases that were presented will still be processed. Related command-line option: --no-tests @@ -1343,7 +1342,7 @@ installations. However this only works on build systems that support no-build -globalmodulemodule-setoptions +globalmodulemodule-set Remove build phase. The other phases that were presented will still be processed. Related command-line option: @@ -1352,7 +1351,7 @@ installations. However this only works on build systems that support build-only -globalmodulemodule-setoptions +globalmodulemodule-set If had build phase, remove any other phases. Otherwise, remove all phases. Related command-line option: @@ -1361,7 +1360,7 @@ installations. However this only works on build systems that support install-only -globalmodulemodule-setoptions +globalmodulemodule-set If had install phase, remove any other phases. Otherwise, remove all phases. Related command-line option: @@ -1370,7 +1369,7 @@ installations. However this only works on build systems that support uninstall -globalmodulemodule-setoptions +globalmodulemodule-set If had uninstall phase, remove any other phases. Otherwise, remove all phases. Related command-line option: --uninstall @@ -1379,7 +1378,7 @@ installations. However this only works on build systems that support filter-out-phases -globalmodulemodule-setoptions +globalmodulemodule-set Remove those phases that are listed (space separated) in this option. The other phases that were presented will still be processed. @@ -1390,12 +1389,13 @@ installations. However this only works on build systems that support -Module-set and global scope options +Modules selection options Option name +Scope Description @@ -1404,12 +1404,12 @@ installations. However this only works on build systems that support ignore-modules +globalmodule-set TypeString Available since1.16 -This option can be used in global section and in module-sets. Note that when specified in global section, cmdline option does not override this, but instead appends. Modules named by this option, which would be chosen by due to a use-modules option, are @@ -1436,12 +1436,12 @@ is compared). use-modules +module-set TypeString Available since1.12.1 -Can only be used in module-set. This option allows you to easily specify many different modules to build at the same point in the configuration file.
[sdk/kdesrc-build] /: Support phase selection individually for modules and module-sets
Git commit d8104fa8e9defa5b25f7eab538a7b0f2fc652e1d by Andrew Shark. Committed on 28/01/2024 at 21:24. Pushed by ashark into branch 'master'. Support phase selection individually for modules and module-sets Previously we could only select phases globally from command line. They were applied to all modules. Sometimes user want to control phase selection for individual module. The clone is happening from the remote/origin by default. This becomes a problem when user is working with a local branch that is not presented in remote. For example, user may not have a developer account, or just does not want to upload his work even in work/user branch yet. He just wants kdesrc-build to not touch the sources of that module (while the other modules still be updated), and does not want to exclude module from build phase. Let's say user wants to work with `kio`, and testing it with `ark`. Previously, user could achieve this task by running `kdesrc-build` several times. Different quirks were needed. Example: - `kdesrc-build ark --include-dependencies` - build ark with dependencies (including kio) as normal - `...` - make changes to the kio project - `kdesrc-build kio --no-src --no-include-dependencies` - `kdesrc-build ark --include-dependencies --ignore-modules kio` After this commit user can specify the `no-src` option for the `kio` module, and then just run `kdesrc-build ark --include-dependencies`. The `kio` will not be updated in this process, but will not be excluded from build phase. BUG: 354796 M +88 -14 doc/conf-options-table.docbook M +2-1modules/ksb/Application.pm M +0-1modules/ksb/BuildContext.pm M +13 -9modules/ksb/Cmdline.pm M +47 -1modules/ksb/Module.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/d8104fa8e9defa5b25f7eab538a7b0f2fc652e1d diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index ed52e6bc..63adbf01 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -1038,20 +1038,6 @@ end options - -no-src - - -TypeBoolean -Default valueFalse - -If this option is set to true then will not update the -source code for the module automatically. It will still try to build the -module if it normally would have tried anyways. -Related command-line option: - - - override-build-system @@ -1314,6 +1300,94 @@ installations. However this only works on build systems that support + +These options do not require any value (except "filter-out-phases"). They are applied if they are presented in a section. +Phase selection options + + + + +Option name +Scope +Description + + + + + +no-src +globalmodulemodule-setoptions + +Remove update phase. The other phases that were presented will still be processed. +Related command-line option: + + + + +no-install +globalmodulemodule-setoptions + +Remove install phase. The other phases that were presented will still be processed. +Related command-line option: + + + + +no-tests +globalmodulemodule-setoptions + +Remove test phase. The other phases that were presented will still be processed. +Related command-line option: --no-tests + + + + +no-build +globalmodulemodule-setoptions + +Remove build phase. The other phases that were presented will still be processed. +Related command-line option: + + + + +build-only +globalmodulemodule-setoptions + +If had build phase, remove any other phases. Otherwise, remove all phases. +Related command-line option: + + + + +install-only +globalmodulemodule-setoptions + +If had install phase, remove any other phases. Otherwise, remove all phases. +Related command-line option: + + + + +uninstall +globalmodulemodule-setoptions + +If had uninstall phase, remove any other phases. Otherwise, remove all phases. +Related command-line option: --uninstall + + + + +filter-out-phases +globalmodulemodule-setoptions + +Remove those phases that are listed (space separated) in this option. The other phases that were presented will still be processed. + + + + + + Module-set and global scope options diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 24459d07..3d33a988 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -951,7 +951,8 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, $endRE=undef) _markModuleSource($module, $fileReader->currentFilename() . ":$."); $module->setOption('#entry_num', $moduleID++); -my @all_possible_options = sort keys %{$ctx->{build_options}->{global}}; +my @phase_changing_options_canonical = map { my $element = $_; $element =~ s/\|.*//; $element } @ksb::Cmdline::phase_changing_options; +my @all_possible_options = sort keys %{$ctx->{build_options}->{global}}, @phase_changing_options_canonical; # Read in each option while (($_ = _readNextLogicalLine($fileReader)) && ($_ !~ $endRE)) diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm
[sdk/kdesrc-build] /: Allow ignoring modules from global config
Git commit 66bff6dc56039cc75bcc64bc5a7c6fb38f9b1e82 by Andrew Shark. Committed on 28/01/2024 at 07:28. Pushed by ashark into branch 'master'. Allow ignoring modules from global config This will let users to constantly ignore specified modules in global section, so they do not need to pass it in command line each time. Also, it will allow to ignore some defined modules that are not in any module set (for example, gpgme). BUG: 472917 M +2-2doc/conf-options-table.docbook M +3-1doc/supported-cmdline-params.docbook M +8-1modules/ksb/Application.pm M +13 -3modules/ksb/BuildContext.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/66bff6dc56039cc75bcc64bc5a7c6fb38f9b1e82 diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index 8722b1ae..ed52e6bc 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -1335,8 +1335,8 @@ installations. However this only works on build systems that support TypeString Available since1.16 -Currently can only be used in module-set, see https://bugs.kde.org/show_bug.cgi?id=472917;>Bug 472917. +This option can be used in global section and in module-sets. +Note that when specified in global section, cmdline option does not override this, but instead appends. Modules named by this option, which would be chosen by due to a use-modules option, are instead skipped entirely. Use this option when you want to build an entire diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index 494a3363..7c4f8f31 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -53,7 +53,9 @@ Do not include the modules passed on the rest of the command line in the update/build process (this is useful if you want to build most of the modules in your configuration file and just skip a few). - + +Note that this option does not override ignore-modules config option in global section. Instead, it appends it. + diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 7847092a..24459d07 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -264,7 +264,7 @@ EOF } # Convert list to hash for lookup -my %ignoredSelectors = +my %ignored_in_cmdline = map { $_, 1 } @{$opts->{'ignore-modules'}}; my @startProgramAndArgs = @{$opts->{'start-program'}}; @@ -313,6 +313,13 @@ EOF _readConfigurationOptions($ctx, $fh, $cmdlineGlobalOptions, $deferredOptions); close $fh; +my %ignored_in_global_section = +map { $_, 1 } split(" ", $ctx->{options}->{"ignore-modules"}); +$ctx->{options}->{"ignore-modules"} = ""; + +# For user convenience, cmdline ignored selectors would not override the config selectors. Instead, they will be merged. +my %ignoredSelectors = (%ignored_in_cmdline, %ignored_in_global_section); + # Check if we're supposed to drop into an interactive shell instead. If so, # here's the stop off point. diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm index a7b0e15b..b247796f 100644 --- a/modules/ksb/BuildContext.pm +++ b/modules/ksb/BuildContext.pm @@ -795,13 +795,23 @@ sub getOption ($self, $key, $level = 'module') $self->ksb::OptionsBase::getOption($key); } -# OVERRIDE: Overrides OptionsBase::setOption to handle some global-only options. +# OVERRIDE sub setOption { my ($self, %options) = @_; -# Actually set options. -$self->SUPER::setOption(%options); +# Special case handling. +if (exists $options{'filter-out-phases'}) { +for my $phase (split(' ', $options{'filter-out-phases'})) { +$self->phases()->filterOutPhase($phase); +} +delete $options{'filter-out-phases'}; +} + +# Our immediate parent class Module overrides this, but we actually +# want the OptionsBase version to be used instead, because Module's version specifically checks for +# some options prohibited for it (such as "ignore-modules") but we may want such for BuildContext. +$self->ksb::OptionsBase::setOption(%options); # Automatically respond to various global option changes. while (my ($key, $value) = each %options) {
[sdk/kdesrc-build] /: Fix git-repository-base option
Git commit 5602388099291523942b475b51a2f6a2334012af by Andrew Shark. Committed on 26/01/2024 at 05:17. Pushed by ashark into branch 'master'. Fix git-repository-base option Before this commit, only the last occurrence of this option was applied to the build context. Now we actually can use it several times in the global section, as it was intended. - The actual reading of 'git-repository-base' was done when constructing OptionBase from the global section of the config. - The merging options from the constructed OptionsBase object into the BuildContext was done in setOption of BuildContext, but because it was not properly handled in OptionsBase, only the last value was appeared in BuildContext's handling. - Now it is handled in the OptionsBase also when merging (we expect that the type of value is a hash then). - Remove incorrect placement of 'git-repository-base' to the checking of module-set option in the Module, so our BuildContex::setOption can call its parent class Module::setOption, which then can pass this option handling to its parent class OptionsBase::setOption. Also: - Move endWord suggestion next to the printed message. The actual endWord does not matter when parsing, so it makes code a bit more readable when understanding how it parses - Edit comment so it better explains why we remove some options that we read from the config - Move the config description in docbook to the correct scope M +60 -59 doc/conf-options-table.docbook M +6-5modules/ksb/Application.pm M +1-18 modules/ksb/BuildContext.pm M +1-1modules/ksb/Module.pm M +28 -0modules/ksb/OptionsBase.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/5602388099291523942b475b51a2f6a2334012af diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index 0573f12d..8722b1ae 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -108,6 +108,66 @@ protocol is most efficient. + +git-repository-base + + +TypeString +Available since1.12.1 + +This option is used to create a short +name to reference a specific Git repository base URL in later module set declarations, which is useful for +quickly declaring many Git modules to build. + +You must specify two things (separated by a space): The name to assign +to the base URL, and the actual base URL itself. For example: + + + +global +# other options +# This is the common path to all anonymous Git server modules. +git-repository-base kde-git kde: +end global + +# Module declarations + +module-set +# Now you can use the alias you defined earlier, but only in a module-set. +repository kde-git +use-modules module1.git module2.git +end module-set + + + +The module-set's use-modules option created two modules +internally, with behaving as if it had read: + + +module module1 +repository kde:module1.git +end module + +module module2 +repository kde:module2.git +end module + + +The kde: repository prefix used above is a +shortcut which will be setup by automatically. See the TechBase +https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL +Renaming article for more information. Note that unlike most other +options, this option can be specified multiple times in order to create as +many aliases as necessary. + +It is not required to use this option to take advantage of module-set, +this option exists to make it easy to use the same repository across many +different module sets. + + + install-environment-driver @@ -1267,65 +1327,6 @@ installations. However this only works on build systems that support - -git-repository-base - - -TypeString -Available since1.12.1 - -This option is used to create a short -name to reference a specific Git repository base URL in later module set declarations, which is useful for -quickly declaring many Git modules to build. - -You must specify two things (separated by a space): The name to assign -to the base URL, and the actual base URL itself. For example: - - - -global -# other options -# This is the common path to all anonymous Git server modules. -git-repository-base kde-git kde: -end global - -# Module declarations - -module-set -# Now you can use the alias you defined earlier, but only in a module-set. -repository kde-git -use-modules module1.git module2.git -end module-set - - - -The module-set's use-modules option created two modules -internally, with behaving as if it had read: - - -module module1 -repository kde:module1.git -end module - -module module2 -repository kde:module2.git -end module - - -The kde: repository prefix used above is a -shortcut which will be setup by automatically. See the TechBase -https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL -Renaming article for more information. Note that unlike most other -options, this option can be specified multiple times in order to create as -many aliases as nec
[sdk/kdesrc-build] doc: doc: Add related cli options to the config options table
Git commit 54b5af830ceb16b844a81b4707cb3e5a9ac943ef by Andrew Shark. Committed on 24/01/2024 at 23:36. Pushed by ashark into branch 'master'. doc: Add related cli options to the config options table M +63 -8doc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/54b5af830ceb16b844a81b4707cb3e5a9ac943ef diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index e19ac4d0..0573f12d 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -40,7 +40,9 @@ option. This option enables the asynchronous mode of operation, where the source code update and the build process will be performed in parallel, instead of waiting for -all of the source code updates before starting the build process. +all of the source code updates before starting the build process. +Related command-line option: + @@ -52,6 +54,7 @@ all of the source code updates before starting the build process. Note that will not output the color codes to anything but a terminal (such as xterm, , or the normal console). +Related command-line option: @@ -67,6 +70,7 @@ color codes to anything but a terminal (such as xterm, , or the normal make sure that if you are using ssh-agent, it is actually managing some identities. This is to try and prevent from asking for your pass phrase for every module. +Related command-line option: --disable-agent-check, --no-disable-agent-check @@ -137,6 +141,7 @@ also disabled. unless you also pass the --delete-my-settings command-line option. +Related command-line option: --install-environment-driver, --no-install-environment-driver @@ -167,6 +172,7 @@ option to false. If enabled, this feature also enabl unless you also pass the --delete-my-settings command-line option. +Related command-line option: --install-session-driver, --no-install-session-driver @@ -180,6 +186,7 @@ command-line option. Set this option to a number between 20 and 0. The higher the number, the lower a priority will set for itself, i.e. the higher the number, the "nicer" the program is. +Related command-line option: @@ -198,6 +205,7 @@ number of CPUs, this value is set to 4. See for an example of this option's usage. +Related command-line option: --num-cores value @@ -225,6 +233,7 @@ any module in the same way that num-cores is used. If cannot detect available memory then this value will be set to 2. +Related command-line option: --num-cores-low-mem value @@ -245,6 +254,7 @@ be saved to ~/.local/state/kdesrc-build-data configurations in the same directory, you may want to manually set this option, so that different configurations do not end up with conflicting persistent data. +Related command-line option: --persistent-data-file file @@ -273,6 +283,7 @@ linkend="ssh-agent-reminder"/>. Use lower priority for disk and other I/O, which can significantly improve the responsiveness of the rest of the system at the expense of slightly longer running times for . +Related command-line option: --use-idle-io-priority, --no-use-idle-io-priority @@ -284,6 +295,7 @@ running times for . Default valueFalse Allow kdesrc-build to also clone and pull from repositories marked as inactive. +Related command-line option: --use-inactive-modules, --no-use-inactive-modules @@ -319,6 +331,7 @@ variable should include the colon-separated paths of your development toolchain. The paths ${install-dir}/bin and ${qt-install-dir}/bin are automatically added. You may use the tilde (~) for any paths you add using this option. +Related command-line option: --binpath path @@ -333,6 +346,7 @@ may use the tilde (~) for any paths you add using this option. For most modules you probably wish to use the branch-group option instead and use this option for case-by-case exceptions. +Related command-line option: --branch value @@ -369,6 +383,7 @@ modules (the common case). See also . +Related command-line option: --branch-group value @@ -404,6 +419,7 @@ class="directory">/home/user-name/builddir. Perhaps surprisingly, this option can be changed per module. +Related command-line option: --build-dir path @@ -431,6 +447,7 @@ other optimizations, there are trade-offs for the correctness of your installation. For instance, changes to the qt or kdelibs modules may cause a rebuild of other modules to be necessary, even if the source code doesn't change at all. +Related command-line option: @@ -450,7 +467,9 @@ as if unset. Note that if a valid generator is also specified through cmake-options it will override the -value for cmake-generator. +value for cmake-generator. +Related command-line option: --cmake-generator value + @@ -470,7 +489,9 @@ of standard flags added by for more information. Note that if a valid toolchain is also specified through cmake-options it will override th
[sdk/kdesrc-build] doc: doc: Fix mistake in variable name
Git commit 4d990277cfe27c0fdcab5e422a37654b01aa2740 by Andrew Shark. Committed on 19/01/2024 at 02:34. Pushed by ashark into branch 'master'. doc: Fix mistake in variable name M +1-1doc/conf-options-table.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/4d990277cfe27c0fdcab5e422a37654b01aa2740 diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index be58e68b..e19ac4d0 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -317,7 +317,7 @@ You cannot override this setting in a module option. The default value is the $PATH that is set when the script starts. This environment variable should include the colon-separated paths of your development toolchain. The paths ${install-dir}/bin and -${install-dir}/bin are automatically added. You +${qt-install-dir}/bin are automatically added. You may use the tilde (~) for any paths you add using this option.
[sdk/kdesrc-build] /: Rename qtdir option to qt-install-dir
Git commit 2a2f6fd7a956a3657908b91dfe074c544e954e74 by Andrew Shark. Committed on 17/01/2024 at 17:57. Pushed by ashark into branch 'master'. Rename qtdir option to qt-install-dir Also remove usage of ancient environment variable QTDIR, which is not used today. CC: #142 M +1-1completions/zsh/_kdesrc-build M +2-2data/build-include/qt5.ksb M +2-2data/build-include/qt6.ksb M +1-1data/kde-env-master.sh.in M +1-1data/kdesrc-buildrc.in M +6-7doc/appendix-profile.docbook M +1-6doc/basic-features.docbook M +7-7doc/conf-options-table.docbook M +2-2doc/features.docbook M +0-1doc/index.docbook M +1-1doc/kdesrc-buildrc.docbook M +5-2modules/ksb/Application.pm M +1-1modules/ksb/BuildContext.pm M +8-10 modules/ksb/BuildSystem/KDECMake.pm M +3-3modules/ksb/BuildSystem/Qt4.pm M +5-5modules/ksb/BuildSystem/Qt5.pm M +1-1modules/ksb/BuildSystem/Qt6.pm M +3-3modules/ksb/Module.pm M +1-1t/data/bug-395627/kdesrc-buildrc M +4-4t/unit/build-environment/platform-env-prepend.t M +1-1vim/syntax/kdesrc-buildrc.vim https://invent.kde.org/sdk/kdesrc-build/-/commit/2a2f6fd7a956a3657908b91dfe074c544e954e74 diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index 3741e76f..8260529f 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -64,7 +64,7 @@ _arguments \ "--print-modules" \ "(--purge-old-logs --no-purge-old-logs)"{--purge-old-logs,--no-purge-old-logs} \ "--qmake-options"":argument:" \ - "--qtdir"":argument:" \ + "--qt-install-dir"":argument:" \ "--query"":argument:" \ "--rc-file"":::_files" \ "--rebuild-failures" \ diff --git a/data/build-include/qt5.ksb b/data/build-include/qt5.ksb index 7dee09f2..d64b3da6 100644 --- a/data/build-include/qt5.ksb +++ b/data/build-include/qt5.ksb @@ -14,8 +14,8 @@ module-set qt5-set # you cannot get it to compile by uncommenting the next line. # ignore-modules qtwebengine -# install path. This *MUST* match your qtdir setting in kdesrc-buildrc! -install-dir ${qtdir} +# install path. This *MUST* match your qt-install-dir setting in kdesrc-buildrc! +install-dir ${qt-install-dir} configure-flags -release -reduce-relocations -force-debug-info -separate-debug-info -skip qtdocgallery diff --git a/data/build-include/qt6.ksb b/data/build-include/qt6.ksb index 4259b401..26c7384d 100644 --- a/data/build-include/qt6.ksb +++ b/data/build-include/qt6.ksb @@ -9,8 +9,8 @@ module-set qt6-set repository qt6-copy # as defined in kdesrc-buildrc-kf6-sample branch 6.6 -# install path. This *MUST* match your qtdir setting in kdesrc-buildrc! -install-dir ${qtdir} +# install path. This *MUST* match your qt-install-dir setting in kdesrc-buildrc! +install-dir ${qt-install-dir} # These have been manually placed in dependency order based on the # .gitmodules file in https://code.qt.io/cgit/qt/qt5.git/tree/.gitmodules diff --git a/data/kde-env-master.sh.in b/data/kde-env-master.sh.in index df107888..70e8452e 100644 --- a/data/kde-env-master.sh.in +++ b/data/kde-env-master.sh.in @@ -32,7 +32,7 @@ kde_prefix="<% install-dir %>" # E.g. "$HOME/kf5" # Where Qt is installed to. If using the system Qt, leave blank and this script # will try to auto-detect. -qt_prefix="<% qtdir %>"# E.g. "$HOME/qt5" or "/usr" on many systems. +qt_prefix="<% qt-install-dir %>"# E.g. "$HOME/qt5" or "/usr" on many systems. else # kdesrc-build: filter kde_prefix="$HOME/kf5" # kdesrc-build: filter qt_prefix="$HOME/qt5" # kdesrc-build: filter diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in index 62de3d1a..771d5aa9 100644 --- a/data/kdesrc-buildrc.in +++ b/data/kdesrc-buildrc.in @@ -21,7 +21,7 @@ global # relative to source-dir by default build-dir %{build-dir} -# qtdir ~/kde/qt # Where to install Qt6 if kdesrc-build supplies it +# qt-install-dir ~/kde/qt # Where to install Qt6 if kdesrc-build supplies it cmake-options -DCMAKE_BUILD_TYPE=RelWithDebInfo diff --git a/doc/appendix-profile.docbook b/doc/appendix-profile.docbook index a9293a92..517465fc 100644 --- a/doc/appendix-profile.docbook +++ b/doc/appendix-profile.docbook @@ -28,25 +28,24 @@ and add to the end of the file: If you are building the qt module (you are by default), add instead: -QTDIR=(path to qtdir) # Such as ~/kdesrc/build/qt by default. -PATH=${install-dir}/bin:$QTDIR/bin:$PATH -MANPATH=$QTDIR/
[sdk/kdesrc-build] doc: doc: Add self links to the listed entries
Git commit 4e0a8ad0db52e3f519214c740aa21ea7f0efa5c8 by Andrew Shark. Committed on 16/01/2024 at 20:55. Pushed by ashark into branch 'master'. doc: Add self links to the listed entries Currently, the anchors are not rendered, see https://bugs.kde.org/show_bug.cgi?id=479910 To workaround, we will use links to the items itself, so users could easily copy and share the link to the option. M +60 -60 doc/conf-options-table.docbook M +53 -53 doc/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/4e0a8ad0db52e3f519214c740aa21ea7f0efa5c8 diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index da8b7da1..7ee10c94 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -31,7 +31,7 @@ option. -async +async TypeBoolean @@ -44,7 +44,7 @@ all of the source code updates before starting the build process. -colorful-output +colorful-output TypeBoolean Default valueTrue @@ -56,7 +56,7 @@ color codes to anything but a terminal (such as xterm, , or the normal -disable-agent-check +disable-agent-check TypeBoolean @@ -71,7 +71,7 @@ for every module. -git-desired-protocol +git-desired-protocol TypeString @@ -105,7 +105,7 @@ protocol is most efficient. -install-environment-driver +install-environment-driver TypeBoolean @@ -141,7 +141,7 @@ command-line option. -install-session-driver +install-session-driver TypeBoolean @@ -171,7 +171,7 @@ command-line option. -niceness +niceness TypeInteger @@ -184,7 +184,7 @@ number, the "nicer" the program is. -num-cores +num-cores TypeInteger @@ -202,7 +202,7 @@ option's usage. -num-cores-low-mem +num-cores-low-mem TypeInteger @@ -229,7 +229,7 @@ set to 2. -persistent-data-file +persistent-data-file TypeString @@ -249,7 +249,7 @@ so that different configurations do not end up with conflicting persistent data. -ssh-identity-file +ssh-identity-file TypeString @@ -263,7 +263,7 @@ linkend="ssh-agent-reminder"/>. -use-idle-io-priority +use-idle-io-priority TypeBoolean @@ -277,7 +277,7 @@ running times for . -use-inactive-modules +use-inactive-modules TypeBoolean @@ -307,7 +307,7 @@ running times for . -binpath +binpath TypeString @@ -323,7 +323,7 @@ may use the tilde (~) for any paths you add using this option. -branch +branch TypeString @@ -337,7 +337,7 @@ option for case-by-case exceptions. -branch-group +branch-group TypeString @@ -373,7 +373,7 @@ linkend="kde-projects-module-sets"/>. -build-dir +build-dir TypeString @@ -408,7 +408,7 @@ class="directory">/home/user-name/builddir. -build-when-unchanged +build-when-unchanged TypeBoolean @@ -435,7 +435,7 @@ change at all. -cmake-generator +cmake-generator TypeString @@ -454,7 +454,7 @@ value for cmake-generator. -cmake-toolchain +cmake-toolchain TypeString @@ -474,7 +474,7 @@ value for cmake-toolchain. -cmake-options +cmake-options TypeString @@ -516,7 +516,7 @@ are set for you automatically) -compile-commands-export +compile-commands-export TypeBoolean @@ -528,7 +528,7 @@ are set for you automatically) -compile-commands-linking +compile-commands-linking TypeBoolean @@ -541,7 +541,7 @@ inside the build directory to the matching source directory. -configure-flags +configure-flags TypeString @@ -560,7 +560,7 @@ only works for qt. -custom-build-command +custom-build-command TypeString @@ -580,7 +580,7 @@ only works for qt. -cxxflags +cxxflags TypeString @@ -603,7 +603,7 @@ linkend="conf-cmake-options">cmake-options option. -dest-dir +dest-dir TypeString @@ -619,7 +619,7 @@ or directory separators in the name as this will interfere with any -do-not-compile +do-not-compile TypeString @@ -640,7 +640,7 @@ options. -git-user +git-user TypeString @@ -669,7 +669,7 @@ email address f...@abc.xyz would use: -http-proxy +http-proxy TypeString @@ -687,7 +687,7 @@ on also use that proxy server, if possible, by setting the -directory-layout +directory-layout TypeString @@ -720,7 +720,7 @@ due to changes in the project metadata. -generate-vscode-project-config +generate-vscode-project-config @@ -747,7 +747,7 @@ for working on most KDE projects. -include-dependencies +include-dependencies TypeBoolean @@ -769,7 +769,7 @@ common operating systems. -install-after-build +install-after-build TypeString @@ -783,7 +783,7 @@ flag. -install-dir +install-dir TypeString @@ -804,7 +804,7 @@ in the path to have them expanded to the module's name. -libname +libname TypeString @@ -818,7 +818,7 @@ but if the guess is wrong then it can be changed with this setting. -libpath +libpath TypeString @@ -833,7 +
[frameworks-kdoctools] [Bug 467128] kde-no-chunk.xsl and kde-web.xsl do not work
https://bugs.kde.org/show_bug.cgi?id=467128 Andrew Shark changed: What|Removed |Added CC||ash...@linuxcomp.ru -- You are receiving this mail because: You are the assignee for the bug.
[frameworks-kdoctools] [Bug 479910] New: There should be a way to easily get anchor (hyperlink) to the section
https://bugs.kde.org/show_bug.cgi?id=479910 Bug ID: 479910 Summary: There should be a way to easily get anchor (hyperlink) to the section Classification: Frameworks and Libraries Product: frameworks-kdoctools Version: unspecified Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: general Assignee: kde-doc-english@kde.org Reporter: ash...@linuxcomp.ru CC: kdelibs-b...@kde.org Target Milestone: --- When browsing documentation, it is very inconvenient to actually extract the anchor to the specified section of documentation, even when you know it is there. The every other documentation representation system do allow you to get such an anchor. For example, visit this page: https://mesonbuild.com You see, when you hover over the section title, the "chain" icon is shown to the right of it, so you can actually copy and share that link. We should do similar thing when representing documentation generated from the docbook files. -- You are receiving this mail because: You are the assignee for the bug.
[sdk/kdesrc-build] /: Add support for --no-build-when-unchanged
Git commit fe8dbd69e35a9367181fe5d27c10d25786f192a4 by Andrew Shark. Committed on 16/01/2024 at 12:49. Pushed by ashark into branch 'master'. Add support for --no-build-when-unchanged This option was mistakenly not marked as negatable. Adding the negatable form allows to override the `true` value set to this option from config. Fixes: #351 M +1-1completions/zsh/_kdesrc-build M +2-4doc/conf-options-table.docbook M +1-1modules/ksb/Cmdline.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/fe8dbd69e35a9367181fe5d27c10d25786f192a4 diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index 17f2f153..3741e76f 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -20,7 +20,7 @@ _arguments \ "--branch"":argument:" \ "--build-dir"":argument:" \ "--build-system-only" \ - "(--build-when-unchanged --force-build)"{--build-when-unchanged,--force-build}"[Disable skipping the build process.]" \ + "(--build-when-unchanged --no-build-when-unchanged --force-build --no-force-build)"{--build-when-unchanged,--no-build-when-unchanged,--force-build,--no-force-build}"[Disable skipping the build process.]" \ "--cmake-generator"":argument:" \ "--cmake-options"":argument:" \ "--cmake-toolchain"":argument:" \ diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index 86e35dbb..da8b7da1 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -417,13 +417,11 @@ class="directory">/home/user-name/builddir. Control whether always tries to build a module that has not had any source code updates. -By setting build-when-unchanged to -true, always attempts the build phase +If set to true, always attempts the build phase for a module, even if the module did not have any source code updates. With this value it will more likely lead to a correct build. -By setting build-when-unchanged to -false, will only attempt to run the +If set to false, will only attempt to run the build phase for a module if the module has a source code update, or in other situations where it is likely that a rebuild is actually required. This can save time, especially if you run daily, or more frequently. diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm index 2422cd83..8c7a6dba 100644 --- a/modules/ksb/Cmdline.pm +++ b/modules/ksb/Cmdline.pm @@ -449,7 +449,7 @@ sub _supportedOptions ); my @context_options_with_extra_specifier = ( -'build-when-unchanged|force-build', +'build-when-unchanged|force-build!', 'colorful-output|color!', 'ignore-modules|!=s{,}', 'niceness|nice:10',
[sdk/kdesrc-build] /: Add --show-options-specifiers option
Git commit 35e68fb5b925ef438cf441ead6dce3285f0fdbc8 by Andrew Shark. Committed on 15/01/2024 at 18:23. Pushed by ashark into branch 'master'. Add --show-options-specifiers option M +8-8doc/supported-cmdline-params.docbook M +9-10 modules/ksb/Cmdline.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/35e68fb5b925ef438cf441ead6dce3285f0fdbc8 diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index 71993bdc..219c9099 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -704,14 +704,6 @@ Display the program version. - ---author - -Display contact information for the -author. - - - --help (or -h) @@ -728,6 +720,14 @@ prove useful in bug reports or when asking for help in forums or mailing lists. + +--show-options-specifiers + +Print the specifier lines (in the format that GetOpts::Long accepts) for all command line options supported by the script. +This may be used by developers, for example, for generating zsh autocompletion functions. + + + diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm index b11dc63a..2422cd83 100644 --- a/modules/ksb/Cmdline.pm +++ b/modules/ksb/Cmdline.pm @@ -142,7 +142,7 @@ sub readCommandLineOptionsAndSelectors (@options) %foundOptions = ( 'show-info' => sub { _showInfoAndExit();}, version => sub { _showVersionAndExit(); }, -author => sub { _showAuthorAndExit(); }, +'show-options-specifiers' => sub { _showOptionsSpecifiersAndExit(); }, help=> sub { _showHelpAndExit();}, # Intended as a short option, -d would imply --include-dependencies and @@ -399,17 +399,16 @@ sub _showInfoAndExit exit; } -sub _showAuthorAndExit +sub _showOptionsSpecifiersAndExit { -my $version = "kdesrc-build " . scriptVersion(); -say <<~DONE; -$version was written (mostly) by: - Michael Pyne +my @supportedOptions = _supportedOptions(); -Many people have contributed code, bugfixes, and documentation. +# The initial setup options are handled outside of Cmdline (in the starting script). +my @initial_options = ("initial-setup", "install-distro-packages", "generate-config", "update-shellrc"); -Please report bugs using the KDE Bugzilla, at https://bugs.kde.org/ -DONE +foreach my $option (@supportedOptions, @initial_options) { +print "$option\n"; +} exit; } @@ -420,7 +419,6 @@ sub _supportedOptions # See https://perldoc.perl.org/5.005/Getopt::Long for options specification format my @non_context_options = ( -'author', 'build-only', 'dependency-tree', 'dependency-tree-fullpath', @@ -441,6 +439,7 @@ sub _supportedOptions 'resume-from|from|f=s', 'set-module-option-value=s', 'show-info', +'show-options-specifiers', 'src-only|s', 'start-program|run=s{,}', 'stop-after|to=s',
[sdk/kdesrc-build] /: Eliminate distinction between `prefix` and `install-dir`
Git commit 9b8ccbfe26bc751f42df49b2dc15f4a1ea886480 by Andrew Shark. Committed on 14/01/2024 at 02:38. Pushed by ashark into branch 'master'. Eliminate distinction between `prefix` and `install-dir` We will not use `--prefix` cli option or `prefix` config option anymore, because it means same thing what `install-dir` was meant for. - For those who used '$MODULE' or '${MODULE}' in the `prefix` config option, we now will make that substitution in `install-dir` config option. - Add a warning message if the prefix config option still found in user config Closes #141 M +1-1data/build-include/qt5.ksb M +1-1data/build-include/qt6.ksb M +7-17 doc/conf-options-table.docbook M +0-18 doc/man-kdesrc-build.1.docbook M +3-4doc/supported-cmdline-params.docbook M +3-0modules/ksb/Application.pm M +0-1modules/ksb/BuildContext.pm M +4-4modules/ksb/BuildSystem/KDECMake.pm M +6-6modules/ksb/BuildSystem/Qt5.pm M +3-5modules/ksb/Cmdline.pm M +3-9modules/ksb/Module.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/9b8ccbfe26bc751f42df49b2dc15f4a1ea886480 diff --git a/data/build-include/qt5.ksb b/data/build-include/qt5.ksb index f90f241d..7dee09f2 100644 --- a/data/build-include/qt5.ksb +++ b/data/build-include/qt5.ksb @@ -15,7 +15,7 @@ module-set qt5-set # ignore-modules qtwebengine # install path. This *MUST* match your qtdir setting in kdesrc-buildrc! -prefix ${qtdir} +install-dir ${qtdir} configure-flags -release -reduce-relocations -force-debug-info -separate-debug-info -skip qtdocgallery diff --git a/data/build-include/qt6.ksb b/data/build-include/qt6.ksb index 35cedc94..4259b401 100644 --- a/data/build-include/qt6.ksb +++ b/data/build-include/qt6.ksb @@ -10,7 +10,7 @@ module-set qt6-set branch 6.6 # install path. This *MUST* match your qtdir setting in kdesrc-buildrc! -prefix ${qtdir} +install-dir ${qtdir} # These have been manually placed in dependency order based on the # .gitmodules file in https://code.qt.io/cgit/qt/qt5.git/tree/.gitmodules diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index e74858b1..86e35dbb 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -791,11 +791,17 @@ flag. TypeString Default value~/kde/usr -This option sets the directory that will be installed to after it +This option controls where to install the module after it is built. If you change this to a directory needing root access, you may want to read about the make-install-prefix option as well. + +Changing this option for specific module allows you to install it to a different directory than +where the Platform libraries are installed, such as if you were using + only to build applications. +You can use ${MODULE} or $MODULE +in the path to have them expanded to the module's name. @@ -1001,22 +1007,6 @@ the auto-detection. In this case you can manually specify the correct build type - -prefix - - -TypeString - -This option controls where to install the module (normally the -install-dir setting is used). -Using this option allows you to install a module to a different directory than -where the KDE Platform libraries are installed, such as if you were using - only to build applications. -You can use ${MODULE} or $MODULE -in the path to have them expanded to the module's name. - - - purge-old-logs diff --git a/doc/man-kdesrc-build.1.docbook b/doc/man-kdesrc-build.1.docbook index fd0cb45f..59279ee1 100644 --- a/doc/man-kdesrc-build.1.docbook +++ b/doc/man-kdesrc-build.1.docbook @@ -606,24 +606,6 @@ Edit the "~/.bashrc" (or other shell rc file) to add to your $PAT - - ---prefix=foo - - - - -Overrides the install-dir setting to be -foo for this run. In addition, implies ---reconfigure. It does not actually -perform the action you would think it does (overriding the -prefix option to change where modules are installed), -although by default modules are installed to the install-dir -setting if prefix is not set. - - - - --nice=foo diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index ab7923bc..71993bdc 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -526,11 +526,10 @@ linkend="cmdline-refresh-build">--refresh-build is used. - ---prefix /path/to/kde + +--install-dir path -This allows you to change the directory that will be installed to from -the command line. This option implies --reconfigure, but using --refresh-build may still be required. diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 2a99c248..92c63258 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -960,6 +960,9 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, $endRE=undef) if ($option
[sdk/kdesrc-build] /: Check that all option names read from config are recognised
Git commit f99141cadf12bbb7221ddc88ea6ce3e208b492df by Andrew Shark. Committed on 10/01/2024 at 10:26. Pushed by ashark into branch 'master'. Check that all option names read from config are recognised For every option name read from the config, we will check if it is in `@all_possible_options` array. And if not, raise an exception. To differentiate between normal config options and non-standard config options (options with custom name defined by user), we will prepend non-standard options with underscore. So users can still use this convenience feature. Other changes of this commit: - Allow substituting references to global options when they have underscore in their name. - Add ability to _use_ custom variable immediately after defining in global section - Fix end word typo in `t/data/kde-projects/kdesrc-buildrc-with-deps`. - Temporary show a help message for the recently renamed option "kdedir". M +19 -1doc/kdesrc-buildrc.docbook M +18 -6modules/ksb/Application.pm M +2-2t/data/branch-time-based/kdesrc-buildrc M +1-1t/data/kde-projects/kdesrc-buildrc-with-deps https://invent.kde.org/sdk/kdesrc-build/-/commit/f99141cadf12bbb7221ddc88ea6ce3e208b492df diff --git a/doc/kdesrc-buildrc.docbook b/doc/kdesrc-buildrc.docbook index 53396e46..68cd4d7e 100644 --- a/doc/kdesrc-buildrc.docbook +++ b/doc/kdesrc-buildrc.docbook @@ -95,7 +95,7 @@ linkend="conf-use-modules">use-modules for more information. option-value. One modification that performs is that a sequence -${name-of-option} is replaced +"${name-of-option}" is replaced with the value of that option from the global configuration. This allows you to reference the value of existing options, including options already set by . @@ -104,6 +104,24 @@ to reference the value of existing options, including options already set by To see an example of this in use, see . +You can also introduce your own non-standard global variables for referencing them further in the config. +To do this, your option name should be prepended with underscore symbol. Example: + +Introducing your own global option for referencing later in config + +global + _ver 6 # ← your custom variable (starting with underscore) + _kde ~/kde${_ver} # ← custom variable can contain another defined variable + source-dir ${_kde}/src # ← note that nested variable (_kde → _ver) is also resolved +end global + +options kdepim + log-dir /custom/path/logs${_ver} # ← you can use custom variable just like a standard +end options + + + + diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 26cf9ec2..2a99c248 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -805,18 +805,18 @@ sub _readNextLogicalLine # Takes an input line, and extracts it into an option name, and simplified # value. The value has "false" converted to 0, white space simplified (like in -# Qt), and tildes (~) in what appear to be path-like entries are converted to -# the home directory path. +# Qt), tildes (~) in what appear to be path-like entries are converted to +# the home directory path, and reference to global option is substituted with its value. # # First parameter is the build context (used for translating option values). # Second parameter is the line to split. # Return value is (option-name, option-value) -sub _splitOptionAndValue +sub _splitOptionAndValue_and_substitute_value { my $ctx = assert_isa(shift, 'ksb::BuildContext'); my $input = shift; my $fileName = shift->currentFilename(); -my $optionRE = qr/\$\{([a-zA-Z0-9-]+)\}/; +my $optionRE = qr/\$\{([a-zA-Z0-9-_]+)\}/; # Example of matched string is "${option-name}" or "${_option-name}". # The option is the first word, followed by the # flags on the rest of the line. The interpretation @@ -836,7 +836,6 @@ sub _splitOptionAndValue $value = 0 if lc($value) eq 'false'; # Replace reference to global option with their value. -# The regex basically just matches ${option-name}. my ($sub_var_name) = ($value =~ $optionRE); while ($sub_var_name) { @@ -936,6 +935,8 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, $endRE=undef) _markModuleSource($module, $fileReader->currentFilename() . ":$."); $module->setOption('#entry_num', $moduleID++); +my @all_possible_options = sort keys %{$ctx->{build_options}->{global}}; + # Read in each option while (($_ = _readNextLogicalLine($fileReader)) && ($_ !~ $endRE)) { @@ -949,7 +950,18 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, $endRE=undef) die make_exception('Config', "Invalid file $current_file"); } -my ($option, $value) = _splitOptionAndValue($ctx, $_, $fileReader); +my ($option, $value) = _splitOptionAndValue_and_substitute_value($ctx, $_, $fileReader); + +
[sdk/kdesrc-build/underscore_names] /: Check that all option names read from config are recognised
Git commit d78948069ac534e936969f25bacdfed5ccffa194 by Andrew Shark. Committed on 09/01/2024 at 22:08. Pushed by ashark into branch 'underscore_names'. Check that all option names read from config are recognised For every option name read from the config, we will check if it is in `@all_possible_options` array. And if not, raise an exception. To differentiate between normal config options and non-standard config options (options with custom name defined by user), we will prepend non-standard options with underscore. So users can still use this convenience feature. Other changes of this commit: - Allow substituting references to global options when they have underscore in their name. - Add ability to _use_ custom variable immediately after defining in global section - Fix end word typo in `t/data/kde-projects/kdesrc-buildrc-with-deps`. - Temporary show a help message for the recently renamed option "kdedir". M +19 -1doc/kdesrc-buildrc.docbook M +18 -6modules/ksb/Application.pm M +2-2t/data/branch-time-based/kdesrc-buildrc M +1-1t/data/kde-projects/kdesrc-buildrc-with-deps https://invent.kde.org/sdk/kdesrc-build/-/commit/d78948069ac534e936969f25bacdfed5ccffa194 diff --git a/doc/kdesrc-buildrc.docbook b/doc/kdesrc-buildrc.docbook index 53396e46..68cd4d7e 100644 --- a/doc/kdesrc-buildrc.docbook +++ b/doc/kdesrc-buildrc.docbook @@ -95,7 +95,7 @@ linkend="conf-use-modules">use-modules for more information. option-value. One modification that performs is that a sequence -${name-of-option} is replaced +"${name-of-option}" is replaced with the value of that option from the global configuration. This allows you to reference the value of existing options, including options already set by . @@ -104,6 +104,24 @@ to reference the value of existing options, including options already set by To see an example of this in use, see . +You can also introduce your own non-standard global variables for referencing them further in the config. +To do this, your option name should be prepended with underscore symbol. Example: + +Introducing your own global option for referencing later in config + +global + _ver 6 # ← your custom variable (starting with underscore) + _kde ~/kde${_ver} # ← custom variable can contain another defined variable + source-dir ${_kde}/src # ← note that nested variable (_kde → _ver) is also resolved +end global + +options kdepim + log-dir /custom/path/logs${_ver} # ← you can use custom variable just like a standard +end options + + + + diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 26cf9ec2..2a99c248 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -805,18 +805,18 @@ sub _readNextLogicalLine # Takes an input line, and extracts it into an option name, and simplified # value. The value has "false" converted to 0, white space simplified (like in -# Qt), and tildes (~) in what appear to be path-like entries are converted to -# the home directory path. +# Qt), tildes (~) in what appear to be path-like entries are converted to +# the home directory path, and reference to global option is substituted with its value. # # First parameter is the build context (used for translating option values). # Second parameter is the line to split. # Return value is (option-name, option-value) -sub _splitOptionAndValue +sub _splitOptionAndValue_and_substitute_value { my $ctx = assert_isa(shift, 'ksb::BuildContext'); my $input = shift; my $fileName = shift->currentFilename(); -my $optionRE = qr/\$\{([a-zA-Z0-9-]+)\}/; +my $optionRE = qr/\$\{([a-zA-Z0-9-_]+)\}/; # Example of matched string is "${option-name}" or "${_option-name}". # The option is the first word, followed by the # flags on the rest of the line. The interpretation @@ -836,7 +836,6 @@ sub _splitOptionAndValue $value = 0 if lc($value) eq 'false'; # Replace reference to global option with their value. -# The regex basically just matches ${option-name}. my ($sub_var_name) = ($value =~ $optionRE); while ($sub_var_name) { @@ -936,6 +935,8 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, $endRE=undef) _markModuleSource($module, $fileReader->currentFilename() . ":$."); $module->setOption('#entry_num', $moduleID++); +my @all_possible_options = sort keys %{$ctx->{build_options}->{global}}; + # Read in each option while (($_ = _readNextLogicalLine($fileReader)) && ($_ !~ $endRE)) { @@ -949,7 +950,18 @@ sub _parseModuleOptions ($ctx, $fileReader, $module, $endRE=undef) die make_exception('Config', "Invalid file $current_file"); } -my ($option, $value) = _splitOptionAndValue($ctx, $_, $fileReader); +my ($option, $value) = _splitOptionAndValue_and_substitute_value($ctx, $_, $fileReade
[sdk/kdesrc-build] /: Fix default value for "directory-layout" option
Git commit 642bdc2e326f8eae6cbc2a07bfe37fc1044952b9 by Andrew Shark. Committed on 09/01/2024 at 08:52. Pushed by ashark into branch 'master'. Fix default value for "directory-layout" option It was silently allowed to have unset "directory-layout" option value, that was treated as "metadata" value. Previously, it defaulted to "metadata". Then commit 7fe7c940 (BUG: 461279) changed the default value in documentation to "flat", but not in the code. This commit treats any incorrect value (not one of "flat", "invent", "metadata"), including empty string, as a "flat" value with warning. Add the forgotten default BuildContext value, and add it in FirstRun. M +1-1data/kdesrc-buildrc.in M +2-1doc/conf-options-table.docbook M +1-0modules/ksb/BuildContext.pm M +2-0modules/ksb/FirstRun.pm M +11 -13 modules/ksb/Module.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/642bdc2e326f8eae6cbc2a07bfe37fc1044952b9 diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in index 72eef3af..62de3d1a 100644 --- a/data/kdesrc-buildrc.in +++ b/data/kdesrc-buildrc.in @@ -50,7 +50,7 @@ global # Use a flat folder layout under ~/kde/src and ~/kde/build # rather than nested directories -directory-layout flat +directory-layout %{directory-layout} # Use Ninja as cmake generator instead of gmake cmake-generator Kate - Ninja diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook index 8c1a32e9..e74858b1 100644 --- a/doc/conf-options-table.docbook +++ b/doc/conf-options-table.docbook @@ -695,10 +695,11 @@ on also use that proxy server, if possible, by setting the TypeString Valid valuesflat, invent, metadata +Default valueflat This option is used to configure the layout which should use when creating source and build directories. -The flat layout is the default value, and will group all modules +The flat layout will group all modules directly underneath the top level source and build directories. For example, source/extragear/network/telepathy/ktp-text-ui in the metadata layout would be source/ktp-text-ui using the flat layout diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm index ce78ac60..808a89cf 100644 --- a/modules/ksb/BuildContext.pm +++ b/modules/ksb/BuildContext.pm @@ -154,6 +154,7 @@ our %defaultGlobalOptions = ( "configure-flags" => "", "custom-build-command" => '', "cxxflags" => "-pipe", +"directory-layout" => "flat", "dest-dir" => '${MODULE}', # single quotes used on purpose! "do-not-compile" => "", "http-proxy" => '', # Proxy server to use for HTTP. diff --git a/modules/ksb/FirstRun.pm b/modules/ksb/FirstRun.pm index ee668e7f..28bb9833 100644 --- a/modules/ksb/FirstRun.pm +++ b/modules/ksb/FirstRun.pm @@ -312,6 +312,7 @@ DONE my $fill_placeholder = sub { my $option_name = shift; my $mode = shift; +$mode //= ""; my $value = $gl->{$option_name}; if ($mode eq "bool_to_str") { @@ -331,6 +332,7 @@ DONE $fill_placeholder->("install-session-driver", "bool_to_str"); $fill_placeholder->("install-environment-driver", "bool_to_str"); $fill_placeholder->("stop-on-failure", "bool_to_str"); +$fill_placeholder->("directory-layout"); $fill_placeholder->("compile-commands-linking", "bool_to_str"); $fill_placeholder->("compile-commands-export", "bool_to_str"); $fill_placeholder->("generate-vscode-project-config", "bool_to_str"); diff --git a/modules/ksb/Module.pm b/modules/ksb/Module.pm index 0dd11afc..e1665e8c 100644 --- a/modules/ksb/Module.pm +++ b/modules/ksb/Module.pm @@ -999,21 +999,19 @@ sub destDir ($self) my $layout = $self->getOption('directory-layout'); if ($layout eq 'flat') { $basePath = $self->name(); +} elsif ($layout eq 'invent') { # invent layout is the modern layout for proper KDE projects +$basePath = $self->getOption('#kde-repo-path', 'module'); +$basePath ||= $self->name(); # Default if not provided in repo-metadata +} elsif ($layout eq 'metadata') { +$basePath = $self->getOption('#kde-project-path', 'module'); +$basePath ||= $self->name(); # Default if not provided in repo-metadata } else { -# invent layout is the modern layout for proper KDE projects -if ($layout eq 'invent') { -$basePath = $self->getOption('#kde-repo-path', 'module'); -} else { -if ($layout && $layout ne 'invent' &&a
[sdk/kdesrc-build] doc: doc: Remove final paragraph about the selectors
Git commit cb3a389d27de1f1ca8fe1e529435fe73ad35e3d4 by Andrew Shark. Committed on 08/01/2024 at 22:42. Pushed by ashark into branch 'master'. doc: Remove final paragraph about the selectors The previous commit wrongly moved this paragraph to the specific section, but it was intentional to keep it outside the specific sections. However, this paragraph originates from the very initial lifetime of the index.docbook, and is no more accurate. So remove it. M +0-5doc/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/cb3a389d27de1f1ca8fe1e529435fe73ad35e3d4 diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index f27563dd..ab7923bc 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -731,10 +731,5 @@ prove useful in bug reports or when asking for help in forums or mailing lists. - -Any other command-line options are assumed to be modules to update and build. -Please, do not mix building with installing. - -
[sdk/kdesrc-build] doc: doc: Group cli parameters to logical sections
Git commit 5d7e870dd7658498d427451aed386a60063e0e80 by Andrew Shark. Committed on 07/01/2024 at 10:09. Pushed by ashark into branch 'master'. doc: Group cli parameters to logical sections - Indicate mandatory parameters of options. - Add missing (undocumented) alternative option names - Change semantic markup "parameter" -> "option" to differentiate with changing part ("replaceable") - Fix some grammar The https://l10n.kde.org/docs/doc-primer/actions-and-commands.html does not describe (at the moment of writing) the "parameter" tag for some reason. M +495 -479 doc/supported-cmdline-params.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/5d7e870dd7658498d427451aed386a60063e0e80 diff --git a/doc/supported-cmdline-params.docbook b/doc/supported-cmdline-params.docbook index e0258d42..3114de5f 100644 --- a/doc/supported-cmdline-params.docbook +++ b/doc/supported-cmdline-params.docbook @@ -1,227 +1,254 @@ Supported command-line parameters - -The script accepts the following command-line options: - - + +Generic - ---async - -Enables the asynchronous mode, which can -perform the source code updates and module builds at the same time. This is -the default, this option only needs specified if you have disabled it in the -configuration. - - - - ---help (or -h) + +--pretend (or --dry-run or -p) -Only display simple help on this script. - - + will run through the update and build process, but instead of +performing any actions to update or build, will instead output what the +script would have done (e.g. what commands to run, general steps being taken, +etc.). - ---version (or -v) - -Display the program version. - - +Simple read-only commands (such as reading file information) may +still be run to make the output more relevant (such as correctly simulating +whether source code would be checked out or updated). + - ---show-info - -Displays information about and the operating system, that may -prove useful in bug reports or when asking for help in forums or mailing lists. - -Available since version 18.11. +This option requires that some needed metadata is available, +which is normally automatically downloaded, but downloads are disabled in +pretend mode. If you've never run (and therefore, don't have +this metadata), you should run kdesrc-build +--metadata-only to download the required metadata +first. + - ---initial-setup + +--include-dependencies (or -d), --no-include-dependencies (or -D) -Has perform the one-time initial setup necessary to prepare -the system for to operate, and for the newly-installed -software to run. - -This includes: - -Installing known dependencies (on supported distributions) -Adding required environment variables to ~/.bashrc -Setting up a configuration file - -This option is exactly equivalent to using ---install-distro-packages ---generate-config ---update-shellrc at the same time. - - - +This option causes to automatically include other and +modules in the build, if required for the modules you have requested to build +on the command line or in your +configuration file. - ---install-distro-packages - -Installs distro packages (on supported distributions) necessary to prepare the system for to operate, and for the newly-installed -software to run. - -See also --initial-setup +The modules that are added are as recorded within the source code +management system. See . + +The corresponding configuration file option is +include-dependencies. + +This option is enabled by default. - ---generate-config + +--ignore-modules (or -!) module [module ...] -Generate the configuration file. - -See also --initial-setup - +Do not include the modules passed on the rest of the command line in the +update/build process (this is useful if you want to build most of the modules +in your configuration file and just skip +a few). + - ---update-shellrc + +--run (or --start-program) program [parameters ...] -Edit the "~/.bashrc" (or other shell rc file) to add to your $PATH variable and enable autocompletion. +This option interprets the next item on the command line as a program to run, +and will then finish reading the configuration file, update the +environment as normal, and then execute the given program. + +This will not work to start a shell with the environment +in most cases however, since interactive shells typically reset at least part +of the environment variables (such as PATH and +${install-dir}) in the startup sequence. -See also --initial-setup + +If you want to see the environment used by , you +can run the printenv command: + +$ kdesrc-build --run printenv +KDE_SESSION_VERSION=4 +SDL_AUDIODRIVER=alsa +LANGUAGE= +XCURSOR_THEME=Oxygen_Blue +LESS=-R -M --shift 5 +QMAIL_CONTROLDIR=/var/qmail/control +... etc. + + - ---author + +--revision id -Display contact information for the -author. - - +This option causes to checkout a specific numbe
[sdk/kdesrc-build] doc: doc: supported-cmdline-params - separate docbook
Git commit d3ebb4f33fd0db60abf28d4cdb41058cfb3284cd by Andrew Shark. Committed on 05/01/2024 at 20:00. Pushed by ashark into branch 'master'. doc: supported-cmdline-params - separate docbook M +1-724 doc/cmdline.docbook M +1-0doc/index.docbook C +0-113 doc/supported-cmdline-params.docbook [from: doc/cmdline.docbook - 086% similarity] https://invent.kde.org/sdk/kdesrc-build/-/commit/d3ebb4f33fd0db60abf28d4cdb41058cfb3284cd diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook index ecec619f..4273c346 100644 --- a/doc/cmdline.docbook +++ b/doc/cmdline.docbook @@ -109,729 +109,6 @@ linkend="conf-set-env">set-env option. - -Supported command-line parameters - - -The script accepts the following command-line options: - - - - - ---async - -Enables the asynchronous mode, which can -perform the source code updates and module builds at the same time. This is -the default, this option only needs specified if you have disabled it in the -configuration. - - - - ---help (or -h) - -Only display simple help on this script. - - - - ---version (or -v) - -Display the program version. - - - - ---show-info - -Displays information about and the operating system, that may -prove useful in bug reports or when asking for help in forums or mailing lists. - -Available since version 18.11. - - - - ---initial-setup - -Has perform the one-time initial setup necessary to prepare -the system for to operate, and for the newly-installed -software to run. - -This includes: - -Installing known dependencies (on supported distributions) -Adding required environment variables to ~/.bashrc -Setting up a configuration file - -This option is exactly equivalent to using ---install-distro-packages ---generate-config ---update-shellrc at the same time. - - - - - ---install-distro-packages - -Installs distro packages (on supported distributions) necessary to prepare the system for to operate, and for the newly-installed -software to run. - -See also --initial-setup - - - - ---generate-config - -Generate the configuration file. - -See also --initial-setup - - - - ---update-shellrc - -Edit the "~/.bashrc" (or other shell rc file) to add to your $PATH variable and enable autocompletion. - -See also --initial-setup - - - - ---author - -Display contact information for the -author. - - - - ---color - -Enable colorful output. (This is the default for interactive terminals). - - - - ---generate-vscode-project-config - -Generate a .vscode directory with configurations for building and debugging -in Visual Studio Code. - - - - ---nice=value - -This value adjusts the computer CPU priority requested by , and -should be in the range of 0-20. 0 is highest priority (because it is the -least nice), 20 is lowest priority. defaults -to 10. - - - - ---no-async - -Disables the asynchronous mode of updating. -Instead the update will be performed in its entirety before the build starts. -This option will slow down the overall process, but if you encounter IPC errors -while running try using this option, and submitting a -https://bugs.kde.org/;>bug report. - - - - ---no-color - -Disable colorful output. - - - - ---pretend (or -p) - - will run through the update and build process, but instead of -performing any actions to update or build, will instead output what the -script would have done (e.g. what commands to run, general steps being taken, -etc.). - -Simple read-only commands (such as reading file information) may -still be run to make the output more relevant (such as correctly simulating -whether source code would be checked out or updated). - - -This option requires that some needed metadata is available, -which is normally automatically downloaded, but downloads are disabled in -pretend mode. If you've never run (and therefore, don't have -this metadata), you should run kdesrc-build ---metadata-only to download the required metadata -first. - - - - - ---quiet (or -q) - -Do not be as noisy with the output. With this switch only the basics are -output. - - - - ---really-quiet - -Only output warnings and errors. - - - - ---verbose - -Be very descriptive about what is going on, and what is doing. - - - - ---src-only (or -s) - -Only perform the source update. - - - - ---build-only - -Only perform the build process. - - - - ---install-only - -If this is the only command-line option, it tries to install all of the modules -contained in log/latest/build-status. If command-line -options are specified after --install-only, they are all -assumed to be modules to install (even if they did not successfully build on -the last run). - - - - ---metadata-only - -Only perform the metadata download process. normally handles this -automatically, but you might manually use this to allow the --pretend command line option to work. - - - - ---rebuild-failures - -Use this option to build only those modules which failed to build on a previous - run. This is useful if a significant number o
[sdk/kdesrc-build] doc: doc: kdesrc-build-logging - separate docbook
Git commit 93412946d1e2df4374d280350631da819e5f0caf by Andrew Shark. Committed on 05/01/2024 at 20:00. Pushed by ashark into branch 'master'. doc: kdesrc-build-logging - separate docbook M +1-78 doc/features.docbook M +1-0doc/index.docbook A +78 -0doc/kdesrc-build-logging.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/93412946d1e2df4374d280350631da819e5f0caf diff --git a/doc/features.docbook b/doc/features.docbook index 2a911dc3..723cb706 100644 --- a/doc/features.docbook +++ b/doc/features.docbook @@ -180,83 +180,6 @@ always point to the most recent log entry in the log directory. - -'s build logging - - -Logging overview - -Logging is a feature whereby the output from every command -that runs is saved to a file for examination later, if -necessary. This is done because it is often necessary to have the output of -these programs when there is a build failure, because there are so many -reasons why a build can fail in the first place. - - -Logging directory layout - -The logs are always stored under the log directory. The destination of -the log directory is controlled by the log-dir -option, which defaults to ${source-dir}/log (where -${source-dir} is the value of the source-dir -option. The in rest of this section, this value will be referred to as -${log-dir}). - -Under ${log-dir}, is a set of directories, one for every -time that was run. Each directory is named with the date, and -the run number. For instance, the second time that is run on -May 26, 2004, it would create a directory called 2004-05-26-02, -where the 2004-05-26 is for the date, and the -02 is the run number. - -For your convenience, will also create a link to the -logs for your latest run, called latest. So the logs for -the most recent run should always be under ${log-dir}/latest. - - -Now, each directory for a run will itself contain a set of -directories, one for every module that tries to build. Also, -a file called build-status will be contained in the directory, -which will allow you to determine which modules built and which failed. - - -If a module itself has a submodule (such as extragear/multimedia, -playground/utils, or KDE/kdelibs), then there would actually be a matching -layout in the log directory. For example, the logs for KDE/kdelibs after the -last run would be found in ${log-dir}/latest/KDE/kdelibs, -and not under ${log-dir}/latest/kdelibs. - - -In each module log directory, you will find a set of files for each -operation that performs. If updates a module, -you may see filenames such as git-checkout-update.log (for a -module checkout or when updating a module -that has already been checked out). If the configure -command was run, then you would expect to see a configure.log -in that directory. - -If an error occurred, you should be able to see an explanation of why in -one of the files. To help you determine which file contains the error, - will create a link from the file containing the error (such as -build-1.log to a file called error.log). - -The upshot to all of this is that to see why a module failed to build -after your last , the file you should look at first is -${log-dir}/latest/module-name/error.log. - - -If the file error.log is empty (especially after -an installation), then perhaps there was no error. Some of the tools used by -the build system will sometimes mistakenly report an error when there was -none. - -Also, some commands will evade 's output redirection and -bypass the log file in certain circumstances (normally when performing the -first checkout), and the error output in that case is not in the log file -but is instead at the or terminal where you ran . - - - - - + diff --git a/doc/index.docbook b/doc/index.docbook index b7801670..78e55044 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -85,6 +85,7 @@ + ]> diff --git a/doc/kdesrc-build-logging.docbook b/doc/kdesrc-build-logging.docbook new file mode 100644 index ..91f751ac --- /dev/null +++ b/doc/kdesrc-build-logging.docbook @@ -0,0 +1,78 @@ + +'s build logging + + +Logging overview + +Logging is a feature whereby the output from every command +that runs is saved to a file for examination later, if +necessary. This is done because it is often necessary to have the output of +these programs when there is a build failure, because there are so many +reasons why a build can fail in the first place. + + +Logging directory layout + +The logs are always stored under the log directory. The destination of +the log directory is controlled by the log-dir +option, which defaults to ${source-dir}/log (where +${source-dir} is the value of the source-dir +option. The in rest of this section, this value will be referred to as +${log-dir}). + +Under ${log-dir}, is a set of directories, one for every +time that was run. Each directory is named with the date, and +the run number. For instance, the second time that is run on +May 26, 2004, it wo
[sdk/kdesrc-build] doc: doc: kde-modules-and-selection - separate docbook
Git commit 19c4426fa7fdd6218cabbd2dfab0d0c848994fed by Andrew Shark. Committed on 05/01/2024 at 20:00. Pushed by ashark into branch 'master'. doc: kde-modules-and-selection - separate docbook M +1-353 doc/getting-started.docbook M +1-0doc/index.docbook C +0-238 doc/kde-modules-and-selection.docbook [from: doc/getting-started.docbook - 059% similarity] https://invent.kde.org/sdk/kdesrc-build/-/commit/19c4426fa7fdd6218cabbd2dfab0d0c848994fed diff --git a/doc/getting-started.docbook b/doc/getting-started.docbook index 53d0d1b8..98997abf 100644 --- a/doc/getting-started.docbook +++ b/doc/getting-started.docbook @@ -216,359 +216,7 @@ linkend="configure-data" /> and in . - -Module Organization and selection - - -KDE Software Organization - - - software is split into different components, many of which can be built -by . Understanding this organization will help you properly -select the software modules that you want built. - - - -At the lowest level comes the library, which is a -very powerful, cross-platform toolkit library. is based on -, and some of the non- libraries required by are also based on -. can build , or use the one already installed on your -system if it is a recent enough version. - -On top of are required libraries that are necessary for - software to work. Some of these libraries are not considered part of - itself due to their generic nature, but are still essential to the -Platform. These libraries are collected under a kdesupport -module grouping but are not considered part of the Frameworks -libraries. - - -On top of these essential libraries come the https://community.kde.org/Frameworks;> Frameworks, sometimes -abbreviated as KF5, which are essential libraries for the Plasma desktop, - Applications, and other third-party software. - - -On top of the Frameworks, come several different things: - -Third-party applications. These are -applications that use the Frameworks or are designed to run under - Plasma but are not authored by or in association with the -project. - -Plasma, which is a full workspace desktop -environment. This is what users normally see when they log-in to -. - -The Application suite. This is a collection of -useful software included with the Platform and Desktop, grouped into -individual modules, including utilities like , games like -KSudoku, and productivity software released by -such as . - -Finally, there is a collection of software (also -collected in modules) whose development is supported by resources -(such as translation, source control, bug tracking, ) but is not -released by as part of Plasma or the Application suite. These -modules are known as Extragear. - - - - - - - -Selecting modules to build - -Selecting which of the possible modules to build is controlled by -the configuration file. -After the global section is a list of modules to build, -bracketed by module ... end module lines. An example entry for a module is -shown in . - - -Example module entry in the configuration file - -module kdesrc-build-git -# Options for this module go here, example: -repository kde:kdesrc-build -make-options -j4 # Run 4 compiles at a time -end module - - - -In practice, this module construct is not usually used directly. Instead -most modules are specified via module-sets as described below. - -When using only module entries, builds them in the order -you list, and does not attempt to download any other repositories other than what you specify -directly. - - - - - -Module Sets - -The source code is decomposed into a great number of relatively -small Git-based repositories. To make it easier to manage the large number of -repositories involved in any useful -based install, supports -grouping multiple modules and treating the group as a module set. - - - -The basic module set concept - -By using a module set, you can quickly declare many Git modules to be -downloaded and built, as if you'd typed out a separate module declaration for -each one. The repository option is -handled specially to setup where each module is downloaded from, and every -other option contained in the module set is copied to every module generated -in this fashion. - - -Using module sets - -global -git-repository-base kde-git kde: -end global - -module qt -# Options removed for brevity -end module - -module-set kde-support-libs -repository kde-git -use-modules automoc attica akonadi -end module-set - -# Other modules as necessary... -module kdesupport -end module - - - -In a brief module set is -shown. When encounters this module set, it acts as if, for -every module given in use-modules, that an individual module -has been declared, with its repository equal to the -module-set's repository followed immediately by the given -module name. - -In
[sdk/kdesrc-build] doc: doc: other-features - separate docbook
Git commit 4c8ef70683eb7eaa5890cfa4e7206dc401b42e57 by Andrew Shark. Committed on 05/01/2024 at 20:00. Pushed by ashark into branch 'master'. doc: other-features - separate docbook M +2-142 doc/index.docbook A +142 -0doc/other-features.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/4c8ef70683eb7eaa5890cfa4e7206dc401b42e57 diff --git a/doc/index.docbook b/doc/index.docbook index f8b1b1a7..7592879a 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -87,6 +87,7 @@ + ]> @@ -184,148 +185,7 @@ do with this tool. - -Other features - - -Changing the amount of output from - has several options to control the amount of output the -script generates. In any case, errors will always be output. - - -The --quiet option (short form is --q) causes to be mostly silent. Only important -messages, warnings, or errors will be shown. When available, build progress -information is still shown. - -The --really-quiet option (no short form) -causes to only display important warnings or errors while it is -running. - -The --verbose option (short form is --v) causes to be very detailed in its -output. - -The --debug option is for debugging purposes -only, it causes to act as if --verbose was -turned on, causes commands to also output to the terminal, and will display -debugging information for many functions. - - - - - -Color output -When being run from or a different terminal, -will normally display with colorized text. - -You can disable this by using the --no-color on the -command line, or by setting the option in the configuration file to -false. - - - -Disabling color output in the configuration file: - -global - colorful-output false -end global - - - - - - -Removing unneeded directories after a build -Are you short on disk space but still want to run a bleeding-edge - checkout? can help reduce your disk usage when building - from . - -Be aware that building does take a lot of space. There are -several major space-using pieces when using : - - -The actual source checkout can take up a fair amount of space. -The default modules take up about 1.6 gigabytes of on-disk space. You can reduce -this amount by making sure that you are only building as many modules as you -actually want. will not delete source code from disk even if you -delete the entry from the configuration file, so make sure that you go and delete unused -source checkouts from the source directory. Note that the source files are -downloaded from the Internet, you should not delete them -if you are actually using them, at least until you are done using -. - -Also, if you already have a installed by your distribution (and -the odds are good that you do), you probably do not need to install the -qt module. That will shave about 200 megabytes off of the on-disk source -size. - - - - will create a separate build directory to build the source -code in. Sometimes will have to copy a source directory to -create a fake build directory. When this happens, space-saving symlinks are -used, so this should not be a hassle on disk space. The build directory will -typically be much larger than the source directory for a module. For example, -the build directory for kdebase is about 1050 megabytes, whereas kdebase's -source is only around 550 megabytes. - -Luckily, the build directory is not required after a module has -successfully been built and installed. can automatically -remove the build directory after installing a module, see the examples below -for more information. Note that taking this step will make it impossible -for to perform the time-saving incremental builds. - - - -Finally, there is disk space required for the actual installation of -, which does not run from the build directory. This typically takes less -space than the build directory. It is harder to get exact figures however. - - - -How do you reduce the space requirements of ? One way is to -use the proper compiler flags, to optimize for space reduction instead of -for speed. Another way, which can have a large effect, is to remove debugging -information from your build. - - - -You should be very sure you know what you are doing before deciding to remove -debugging information. Running bleeding-edge software means you are running -software which is potentially much more likely to crash than a stable release. -If you are running software without debugging information, it can be very -hard to create a good bug report to get your bug resolved, and you will likely -have to re-enable debugging information for the affected application and -rebuild to help a developer fix the crash. So, remove debugging information -at your own risk! - - - -Removing the build directory after installation of a module. The source -directory is still kept, and debugging is enabled: - - -global - configure-flags --enable-debug - remove-after-install builddir# Remove build directory after install -end global - - -Removing the build direct
[sdk/kdesrc-build] doc: doc: supported-envvars - separate docbook
Git commit 9a361f06e316d11f3c01e5e9262615d677464863 by Andrew Shark. Committed on 05/01/2024 at 20:00. Pushed by ashark into branch 'master'. doc: supported-envvars - separate docbook M +1-10 doc/cmdline.docbook M +1-0doc/index.docbook A +10 -0doc/supported-envvars.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/9a361f06e316d11f3c01e5e9262615d677464863 diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook index 4273c346..a3380279 100644 --- a/doc/cmdline.docbook +++ b/doc/cmdline.docbook @@ -98,16 +98,7 @@ modules you want. - -Supported Environment Variables - - - does not use environment variables. If you need to set environment -variables for the build or install process, please see the set-env option. - - - + diff --git a/doc/index.docbook b/doc/index.docbook index 953c9979..7c9b7e16 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -90,6 +90,7 @@ + ]> diff --git a/doc/supported-envvars.docbook b/doc/supported-envvars.docbook new file mode 100644 index ..772b325b --- /dev/null +++ b/doc/supported-envvars.docbook @@ -0,0 +1,10 @@ + +Supported Environment Variables + + + does not use environment variables. If you need to set environment +variables for the build or install process, please see the set-env option. + + +
[sdk/kdesrc-build] doc: doc: quick-start-conclusion - separate docbook
Git commit 24aafe7a055fd0afa487cc702fc0547bb63f9d6d by Andrew Shark. Committed on 05/01/2024 at 20:00. Pushed by ashark into branch 'master'. doc: quick-start-conclusion - separate docbook M +1-17 doc/getting-started.docbook M +1-0doc/index.docbook A +17 -0doc/quick-start-conclusion.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/24aafe7a055fd0afa487cc702fc0547bb63f9d6d diff --git a/doc/getting-started.docbook b/doc/getting-started.docbook index 98997abf..657d8b59 100644 --- a/doc/getting-started.docbook +++ b/doc/getting-started.docbook @@ -218,22 +218,6 @@ linkend="configure-data" /> and in . - -Getting Started Conclusion -These are the major features and concepts needed to get started with - - -For additional information, you could keep reading through this -documentation. In particular, the list -of command-line options and the table -of configuration file options are useful references. - -The Community also maintains https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source;>an -online Wiki reference for how to build the source code, which refers to - and includes tips and other guidelines on how to use the -tool. - - + diff --git a/doc/index.docbook b/doc/index.docbook index 7592879a..98fca4d6 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -88,6 +88,7 @@ + ]> diff --git a/doc/quick-start-conclusion.docbook b/doc/quick-start-conclusion.docbook new file mode 100644 index ..d4a42fce --- /dev/null +++ b/doc/quick-start-conclusion.docbook @@ -0,0 +1,17 @@ + +Getting Started Conclusion +These are the major features and concepts needed to get started with + + +For additional information, you could keep reading through this +documentation. In particular, the list +of command-line options and the table +of configuration file options are useful references. + +The Community also maintains https://community.kde.org/Guidelines_and_HOWTOs/Build_from_source;>an +online Wiki reference for how to build the source code, which refers to + and includes tips and other guidelines on how to use the +tool. + +
[sdk/kdesrc-build] doc: doc: kdesrc-buildrc - separate docbook
Git commit 7f814fbe007722d5c63c4b5ad011dbe85ba90765 by Andrew Shark. Committed on 05/01/2024 at 20:00. Pushed by ashark into branch 'master'. doc: kdesrc-buildrc - separate docbook M +2-231 doc/index.docbook A +231 -0doc/kdesrc-buildrc.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/7f814fbe007722d5c63c4b5ad011dbe85ba90765 diff --git a/doc/index.docbook b/doc/index.docbook index 78e55044..f8b1b1a7 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -86,6 +86,7 @@ + ]> @@ -152,237 +153,7 @@ directly from the project's source code repositories. - -Configuring - - -Overview of configuration - - -To use the script, you must have a file in your home directory called -.kdesrc-buildrc, which describes the modules you would -like to download and build, and any options or configuration parameters to -use for these modules. - - - -Layout of the configuration file - - -Global configuration - - -The configuration file starts with the global options, specified like the -following: - - - -global -option-name option-value -[...] -end global - - - - -Module configuration - - -It is then followed by one or more module sections, specified in one of the -following two forms: - - - - - -module module-name -option-name option-value -[...] -end module - - - - - -module-set module-set-name - repository kde-projects or git://host.org/path/to/repo.git - use-modules module-names - -# Other options may also be set -option-name option-value -[...] -end module-set - - - - -Note that the second form, module sets, only works -for Git-based modules. - - -For Git modules, module-name must be a module -from the repository (for example, kdeartwork or -kde-wallpapers). - - - -For Git modules, the module name can be essentially whatever you'd like, as -long as it does not duplicate any other module name in the configuration. Keep -in mind the source and build directory layout will be based on the module name -if you do not use the dest-dir option. - - -However, for Git module sets the -module-names must correspond with actual git modules -in the chosen repository. See git-repository-base or use-modules for more information. - - - - - -Processing of option values - -In general, the entire line contents after the -option-name is used as the -option-value. - -One modification that performs is that a sequence -${name-of-option} is replaced -with the value of that option from the global configuration. This allows you -to reference the value of existing options, including options already set by -. - - -To see an example of this in use, see -. - - - - -options modules - -There is a final type of configuration file entry, -options groups, which may be given wherever a -module or module-set may be used. - - -options module-name -option-name option-value -[...] -end options - - -An options group may have options set for it just like -a module declaration, and is associated with an existing module. Any options -set these way will be used to override options set for the -associated module. - -The associated module name must match the -name given in the options declaration. Be careful of -mis-typing the name. - -This is useful to allow for declaring an entire -module-set worth of modules, all using the same options, and -then using options groups to make individual changes. - -options groups can also apply to named module sets. -This allows expert users to use a common configuration file (which includes -module-set declarations) as a baseline, and then make changes -to the options used by those module-sets in configuration files that -use the include command to reference -the base configuration. - - -Example of using options - -In this example we choose to build all modules from the multimedia -software grouping. However we want to use a different version of the -application (perhaps for testing a bug fix). It works as follows: - - -module-set kde-multimedia-set - repository kde-projects - use-modules kde/kdemultimedia - branch master -end module-set - -# kmix is a part of kde/kdemultimedia group, even though we never named -# kmix earlier in this file, will figure out the change. -options kmix - branch KDE/4.12 -end options - - -Now when you run , all of the multimedia programs will -be built from the master branch of the source repository, but - will be built from the older KDE/4.12 branch. By using -options you didn't have to individually list all the -other multimedia programs to give them the right -branch option. - - - - -Note that this feature is only available in from version -1.16, or using the development version of after -2014-01-12. - - - - - - -Including other configuration files - - -Within the configuration file, you may reference other files by using the -include keyword with a file, which will act as if the file -referenced had been inserted into the configuration file at that point. - - -For example, you could have something like this: - -global -incl
[sdk/kdesrc-build] doc: doc: environment - separate docbook
Git commit 4e14ba8ba891a65db5f7c241b96d8f30129e5b46 by Andrew Shark. Committed on 05/01/2024 at 19:59. Pushed by ashark into branch 'master'. doc: environment - separate docbook A +127 -0doc/environment.docbook M +2-127 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/4e14ba8ba891a65db5f7c241b96d8f30129e5b46 diff --git a/doc/environment.docbook b/doc/environment.docbook new file mode 100644 index ..d5929b59 --- /dev/null +++ b/doc/environment.docbook @@ -0,0 +1,127 @@ + +Setting the Environment to Run Your Desktop + + +Assuming you are using a dedicated user to build , and you already have an +installed version, running your new may be a bit tricky, as the new + has to take precedence over the old. You must change the environment +variables of your login scripts to make sure the newly-built desktop is used. + + + +Automatically installing a login driver + +Starting from version 1.16, will try to install an +appropriate login driver, that will allow you to login to your +-built desktop from your login manager. This can be +disabled by using the install-session-driver +configuration file option. + +Session setup does not occur while is running +in pretend mode. + +This driver works by setting up a custom xsession +session type. This type of session should work by default with the sddm login +manager (where it appears as a Custom session), but other login +managers (such as LightDM and +gdm) may require additional files installed to +enable xsession support. + + +Adding xsession support for distributions + +The default login managers for some distributions may require additional +packages to be installed in order to support xsession logins. + + +The https://getfedora.org/;>Fedora + distribution requires the xorg-x11-xinit-session +package to be installed for custom xsession login +support. + +https://www.debian.org/;>Debian and +Debian-derived distributions should support custom +xsession logins, but require the +allow-user-xsession option to be set in +/etc/X11/Xsession.options. See also the Debian https://www.debian.org/doc/manuals/debian-reference/ch07.en.html#_customizing_the_x_session_classic_method;>documentation +on customizing the X session. + +For other distributions, go to . + + + + + +Manually adding support for xsession + +If there were no distribution-specific directions for your distribution +in , you can manually add a +Custom xsession login entry to your distribution's list of +session types as follows: + + +Adding an .xsession login session type. + +This procedure will likely require administrative privileges to +complete. + + + +Create the file +/usr/share/xsessions/kdesrc-build.desktop. + + + +Ensure the file just created has the following text: + +Type=XSession +Exec=$HOME/.xsession +Name=KDE Plasma Desktop (unstable; kdesrc-build) + + + + +The $HOME entry must be replaced by the full path to +your home directory (example, /home/user). The +desktop entry specification does not allow for user-generic files. + + + + + +When the login manager is restarted, it +should show a new session type, KDE Plasma Desktop (unstable; +kdesrc-build) in its list of sessions, which should try to run the +.xsession file installed by if it is +selected when you login. + +It may be easiest to restart the computer to restart the login +manager, if the login manager does not track updates to the /usr/share/xsessions directory. + + + + + + + + + + +Setting up the environment manually +This documentation used to include instruction on which environment +variables to set in order to load up the newly-built desktop. These +instructions have been moved to an appendix (). + +If you intend to setup your own login support you can consult that +appendix or view the kde-env-master.sh.in file +included with the source. + + + + diff --git a/doc/index.docbook b/doc/index.docbook index 2e8306bb..e4f365d5 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -78,6 +78,7 @@ + ]> @@ -443,133 +444,7 @@ linkend="configure-data" /> and in . - -Setting the Environment to Run Your Desktop - - -Assuming you are using a dedicated user to build , and you already have an -installed version, running your new may be a bit tricky, as the new - has to take precedence over the old. You must change the environment -variables of your login scripts to make sure the newly-built desktop is used. - - - -Automatically installing a login driver - -Starting from version 1.16, will try to install an -appropriate login driver, that will allow you to login to your --built desktop from your login manager. This can be -disabled by using the install-session-driver -configuration file option. - -Session setup does not occur while is running -in pretend mode. - -This driver works by setting up a custom xsession -session type. This type of session should work by default with the sddm login -manager (where it appears as a Custom session),
[sdk/kdesrc-build] doc: doc: getting-started - separate docbook
Git commit 5cffc45604ee1d07cc545220a99ab5443513f196 by Andrew Shark. Committed on 05/01/2024 at 19:59. Pushed by ashark into branch 'master'. doc: getting-started - separate docbook C +0-676 doc/getting-started.docbook [from: doc/index.docbook - 051% similarity] M +2-591 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/5cffc45604ee1d07cc545220a99ab5443513f196 diff --git a/doc/index.docbook b/doc/getting-started.docbook similarity index 51% copy from doc/index.docbook copy to doc/getting-started.docbook index 02ceb3ba..53d0d1b8 100644 --- a/doc/index.docbook +++ b/doc/getting-started.docbook @@ -1,234 +1,3 @@ - - - -Copyright (c) 2005 Carlos Leonhard Woelz -Copyright (c) 2009 Burkhard Lück -Copyright (c) 2007, 2011 Federico Zenith -Copyright (c) 2009-2011 Yuri Chornoivan -... and possibly others. Check the git source repository for specifics. - -Permission is granted to copy, distribute and/or modify this document under -the terms of the GNU Free Documentation License, Version 1.2 or any later -version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. - -A copy of the license is included in COPYING.DOC. The license will be -included in the generated documentation as well. - --> - - - - - kdesrc-build"> - BSD'> - Git'> - CMake'> - Make'> - Ninja'> - SSH'> - Cron'> - Sudo'> - URL'> - - - - configure-flags'> - install-dir'> - qtdir'> - build-dir'> - source-dir'> - colorful-output'> - tag'> - branch'> - do-not-compile'> - repository'> - make-install-prefix'> - niceness'> - set-env'> - libname'> - libpath'> - binpath'> - - - --nice'> - --ignore-modules'> - --resume-from'> - --resume-after'> - --reconfigure'> - --refresh-build'> - - - - - - - - - - - - - - - -]> - - - - - Script Manual - - - - - CarlosWoelz -carloswo...@imap-mail.com - - - - - - - -2006 -2007 -2008 -2009 -2010 -2011 -2012 -2013 -2014 -2015 -2016 -2017 -2018 -2019 -Michael Pyne - - - -2005 -Carlos Woelz - - - - -2018-01-20 - 17.12 - - - is a script which builds and installs software -directly from the project's source code repositories. - - - -KDE -kdesdk -git -KDE development - - - - - -Introduction - - -A brief introduction to - - -What is ? - - - is a script to help the community install https://www.kde.org/;> software from its https://git-scm.com/;> source repositories, -and continue to update that software afterwards. -It is particularly intended to support those who need to supporting testing and -development of software, including users testing bugfixes and developers -working on new features. - - -The script can be configured to maintain a single individual -module, a full desktop with application set, or somewhere in between. - - -To get started, see , or continue reading for more -detail on how works and what is covered in this documentation. - - - - - operation in a nutshell - - works by using the tools available to the user at the -command-line, using the same interfaces available to the user. When - is run, the following sequence is followed: - - - reads in the command -line and configuration file, to -determine what to build, compile options to use, where to install, - - - performs a source update for each module. The update continues until all modules -have been updated. Modules that fail to update normally do not stop the build - you will be notified at the end which modules did not -update. - -Modules that were successfully updated are built, have their -test suite run, and are then installed. To reduce the overall time spent, - will by default start building the code as soon as the first -module has completed updating, and allow the remaining updates to continue -behind the scenes. - - - -A very good overview of how modules are -built, including informative diagrams, is provided on https://www.davidrevoy.com/article193/guide-building-krita-on-linux-for- -cats">an online article discussing 's application. This -workflow is what automates for all modules. - - - - - - -Documentation Overview - - -This guide is an overview to describe the following aspects of -operation: - - - -An overview of the steps -required to get started. -Notable features. -The configuration file syntax -and options. -The command line options. - - -Also documented are the steps which you should perform using -other tools ( steps that are not automatically performed by ). - - - - - Getting Started @@ -820,448 +589,3 @@ tool. - - - - -Configuring - - -Overview of configuration - - -To use the script, you must have a file in your home directory called -.kdesrc-buildrc, which describes the modules you would -like to download and build, and any options
[sdk/kdesrc-build] doc: doc: using-kdesrc-build - separate docbook
Git commit 0d1b9be51cbdf2d841c95dadb1d31435b7eb0bc2 by Andrew Shark. Committed on 05/01/2024 at 20:00. Pushed by ashark into branch 'master'. doc: using-kdesrc-build - separate docbook M +2-30 doc/index.docbook A +30 -0doc/using-kdesrc-build.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/0d1b9be51cbdf2d841c95dadb1d31435b7eb0bc2 diff --git a/doc/index.docbook b/doc/index.docbook index 7c9b7e16..cd6ecdb9 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -91,6 +91,7 @@ + ]> @@ -161,36 +162,7 @@ directly from the project's source code repositories. - -Using - - -Preface - -Normally using after you have gone through -is as easy as doing the following from a terminal prompt: - - - kdesrc-build - - - will then download the sources for , try to configure -and build them, and then install them. - -Read on to discover how does this, and what else you can -do with this tool. - - - - - - - - - - - - + diff --git a/doc/using-kdesrc-build.docbook b/doc/using-kdesrc-build.docbook new file mode 100644 index ..5c3fabd2 --- /dev/null +++ b/doc/using-kdesrc-build.docbook @@ -0,0 +1,30 @@ + +Using + + +Preface + +Normally using after you have gone through +is as easy as doing the following from a terminal prompt: + + + kdesrc-build + + + will then download the sources for , try to configure +and build them, and then install them. + +Read on to discover how does this, and what else you can +do with this tool. + + + + + + + + + + + +
[sdk/kdesrc-build] doc: doc: conf-options-table - separate docbook
Git commit cce1c6a1d1d4332e84a6e2c681893e274f203a0d by Andrew Shark. Committed on 05/01/2024 at 19:58. Pushed by ashark into branch 'master'. doc: conf-options-table - separate docbook A +1363 -0doc/conf-options-table.docbook [INFRASTRUCTURE] M +2-1363 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/cce1c6a1d1d4332e84a6e2c681893e274f203a0d diff --git a/doc/conf-options-table.docbook b/doc/conf-options-table.docbook new file mode 100644 index ..8c1a32e9 --- /dev/null +++ b/doc/conf-options-table.docbook @@ -0,0 +1,1363 @@ + +Table of available configuration options + +Here is a table of the various options, containing the following +information: + + + +The option name + +A description of how responds if the option is +set in both the global section, and the module section of the configuration file while building a +module. + +Special comments on the purpose and usage of the +option. + + + + +Global scope only options + + + + +Option name +Description + + + + + +async + + +TypeBoolean +Default valueTrue +Available since1.6 + +This option enables the asynchronous mode of operation, where the source +code update and the build process will be performed in parallel, instead of waiting for +all of the source code updates before starting the build process. + + + +colorful-output + +TypeBoolean +Default valueTrue +Set this option to false to disable the colorful output of . +Note that will not output the +color codes to anything but a terminal (such as xterm, , or the normal + console). + + + + +disable-agent-check + + +TypeBoolean +Default valueFalse + +If you are using to download the sources +(such as if you are using the git+ssh protocol), this option controls if will try and +make sure that if you are using ssh-agent, it is actually managing some +identities. This is to try and prevent from asking for your pass phrase +for every module. + + + + +git-desired-protocol + + +TypeString +Default valuegit +History informationThis option was added in 1.16. Prior to 20.06 this option +was used to configure the fetch URL instead of the push URL. As of 20.06 +https is always used when updating KDE projects. + +This option only applies to modules from a project repository. + +What this option actually does is configure which network protocol to +prefer when pushing source code for these modules. Normally the very-efficient +git protocol is used, but this may be blocked in some +networks (e.g. corporate intranets, public Wi-Fi). An alternative protocol +which is much better supported is the https protocol used for +Internet web sites. + +If you are using one of these constrained networks you can set this +option to http to prefer https +communications instead. + +You may also need the http-proxy option if an HTTP proxy is also +needed for network traffic. + +In any other situation you should not set this option as the default +protocol is most efficient. + + + + + +install-environment-driver + + +TypeBoolean +Default valueTrue +Available since17.08 + +Install a shell script that can be +sourced in a user's profile setup scripts to easily establish needed environment +variables to run the Plasma desktop built by . + +This driver will alter the following files: + + +$XDG_CONFIG_HOME/kde-env-master.sh (normally found at ~/.config/kde-env-master.sh). +$XDG_CONFIG_HOME/kde-env-user.sh (normally found at ~/.config/kde-env-user.sh). + + +The kde-env-user.sh is optional. It is +intended for user customizations (see the https://userbase.kde.org/KDE_System_Administration/Environment_Variables#Troubleshooting_and_Debugging;>Troubleshooting and Debugging +section of the UserBase for examples of customizable settings), but these settings +can be set elsewhere by the user in their existing profile setup scripts. + +You can disable this feature by setting this option to +false, and ensuring that the install-session-driver option is +also disabled. + + will not overwrite your existing files (if present) +unless you also pass the --delete-my-settings +command-line option. + + + + +install-session-driver + + +TypeBoolean +Default valueTrue +Available since1.16 + +If enabled, will try to install a driver for the graphical +login manager that allows you to login to your -built desktop. + +This driver will alter the following files: + + +~/.xsession +$XDG_CONFIG_HOME/kde-env-master.sh (normally found at ~/.config/kde-env-master.sh). +$XDG_CONFIG_HOME/kde-env-user.sh (normally found at ~/.config/kde-env-user.sh). + + +If you maintain your own login driver then you can disable this feature by setting this +option to false. If enabled, this feature also enables the +install-environment-driver feature. + + will not overwrite your existing files (if present) +unless you also pass the --delete-my-settings +command-line option. + + + + +niceness + + +TypeInteger +Default value10 + +Set this option to a number between 20 and 0. The higher the number, the +lower a prior
[sdk/kdesrc-build] doc: doc: kde-cmake - separate docbook
Git commit 3e5fffc88db32f4fe3d0fb7f2f9e364f03ab0d91 by Andrew Shark. Committed on 05/01/2024 at 19:59. Pushed by ashark into branch 'master'. doc: kde-cmake - separate docbook M +2-29 doc/index.docbook A +29 -0doc/kde-cmake.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/3e5fffc88db32f4fe3d0fb7f2f9e364f03ab0d91 diff --git a/doc/index.docbook b/doc/index.docbook index 39d821d5..d17b5b80 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -83,6 +83,7 @@ + ]> @@ -555,35 +556,7 @@ end global - -, the build system - - -Introduction to - -In March 2006, the program -beat out several competitors and was selected to be the build system for 4, replacing the -autotools-based system that had used from the beginning. - -A introduction to page is available on the https://community.kde.org/Guidelines_HOWTOs/CMake;> Community Wiki. -Basically, instead of running make -f -Makefile.cvs, then configure, -then , we simply run and then . - - - has support for . A few features of -were really features of the underlying buildsystem, including -configure-flags -and do-not-compile. When equivalent -features are available, they are provided. For instance, the equivalent to the -configure-flags option is cmake-options, and the -do-not-compile option is also supported for -as of version 1.6.3. - - - - + diff --git a/doc/kde-cmake.docbook b/doc/kde-cmake.docbook new file mode 100644 index ..9c818591 --- /dev/null +++ b/doc/kde-cmake.docbook @@ -0,0 +1,29 @@ + +, the build system + + +Introduction to + +In March 2006, the program +beat out several competitors and was selected to be the build system for 4, replacing the +autotools-based system that had used from the beginning. + +A introduction to page is available on the https://community.kde.org/Guidelines_HOWTOs/CMake;> Community Wiki. +Basically, instead of running make -f +Makefile.cvs, then configure, +then , we simply run and then . + + + has support for . A few features of +were really features of the underlying buildsystem, including +configure-flags +and do-not-compile. When equivalent +features are available, they are provided. For instance, the equivalent to the +configure-flags option is cmake-options, and the +do-not-compile option is also supported for +as of version 1.6.3. + + + +
[sdk/kdesrc-build] doc: doc: features - separate docbook
Git commit 17357b81a15786f0066759f9433819912678f87b by Andrew Shark. Committed on 05/01/2024 at 19:59. Pushed by ashark into branch 'master'. doc: features - separate docbook A +262 -0doc/features.docbook M +2-262 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/17357b81a15786f0066759f9433819912678f87b diff --git a/doc/features.docbook b/doc/features.docbook new file mode 100644 index ..2a911dc3 --- /dev/null +++ b/doc/features.docbook @@ -0,0 +1,262 @@ + +Script Features + + +Feature Overview + + + features include: + + + + + +You can pretend to do the operations. If you pass +--pretend or -p on the +command line, the script will give a verbose description of the commands +it is about to execute, without actually executing it. However if you've never +run , you would want to run the kdesrc-build +--metadata-only +command first in order for --pretend to work. + +For an even more verbose description of what is +doing, try using the --debug option. + + + + + + allows you to checkout modules quickly. If the module you are checking out +has already been checked out previously, then will download only commits +that are not yet on your computer. + + +There is generally no need for any special preparation to perform +the initial checkout of a Git module, as the entire Git repository must be +downloaded anyways, so it is easy for the server to determine what to +send. + +This is faster for you, and helps to ease the load on the kde.org +anonymous servers. + + + +Another speedup is provided by starting the build process for a module as soon +as the source code for that module has been downloaded. (Available since +version 1.6) + + + +Excellent support for building the library (in case the software you +are trying to build depends on a recent not available in your +distribution). + + + + does not require a GUI present to operate. So, +you can build software without needing a graphical environment. + + + +Supports setting default options for all modules (such as the compilation +settings or the configuration options). Such options can normally be changed +for specific modules as well. + +Also, will add +standard flags as appropriate to save you the trouble and possible +errors from typing them yourself. Nota Bene: this does not apply when a (custom) +toolchain is configured through e.g.: +cmake-toolchain + + + + can checkout a specific branch +or tag of a module. You can also ensure that a specific revision is checked out of a module. + + + + can automatically switch a source directory to checkout from +a different repository, branch, or tag. This happens automatically when you +change an option that changes what the repository should be, but you must +use the --src-only option to let + know that it is acceptable to perform the switch. + + + + can checkout only portions of a +module, for those situations where you only need one program from a +large module. + + + +For developers: will remind +you if you use git+ssh:// but ssh-agent is +not running, as this will lead to repeated password requests from +. + + + +Can delete the build directory of a +module after its installation to save space at the expense of future compilation +time. + + + +The locations for the directories used by are configurable (even +per module). + + + +Can use , or a different user-specified command +to install modules so that + does not need to be run as the super user. + + + + runs with reduced priority +by default to allow you to still use your computer while is +working. + + + +Has support for using 's tags and +branches. + + + +There is support for resuming a build from a +given module. You can even ignore some +modules temporarily for a given build. + + + + will show the progress of your +build when using , and will always time the build +process so you know after the fact how long it took. + + + +Comes built-in with a sane set of default options appropriate for building +a base single-user installation from the anonymous source repositories. + + + +Tilde-expansion for your configuration options. For example, you can +specify: +qtdir ~/kdesrc/build/qt + + + +Automatically sets up a build system, with the source directory not the +same as the build directory, in order to keep the source directory +pristine. + + + +You can specify global options to apply to every module to check out, and +you can specify options to apply to individual modules as well. + + + +Forced full rebuilds, by running + with the --refresh-build option. + + + +You can specify various environment values to be used during the build, +including QTDIR, DO_NOT_COMPILE, +and CXXFLAGS. + + + +Command logging. Logs are dated and numbered so that you always have a +log of a script run. Also, a special symlink called latest is created to +always point to the most recent log entry in the log directory. + + + + + + + +'s build logging + + +Logging overview + +Logging is a feature whereby the output from every command
[sdk/kdesrc-build] doc: doc: introduction - separate docbook
Git commit 894df557e1279b21d7f5249f12c76d33885bf4ad by Andrew Shark. Committed on 05/01/2024 at 19:59. Pushed by ashark into branch 'master'. doc: introduction - separate docbook M +2-67 doc/index.docbook A +67 -0doc/introduction.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/894df557e1279b21d7f5249f12c76d33885bf4ad diff --git a/doc/index.docbook b/doc/index.docbook index 3038d2d2..39d821d5 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -82,6 +82,7 @@ + ]> @@ -142,73 +143,7 @@ directly from the project's source code repositories. - -Introduction - - -A brief introduction to - - -What is ? - - - is a script to help the community install https://www.kde.org/;> software from its https://git-scm.com/;> source repositories, -and continue to update that software afterwards. -It is particularly intended to support those who need to supporting testing and -development of software, including users testing bugfixes and developers -working on new features. - - -The script can be configured to maintain a single individual -module, a full desktop with application set, or somewhere in between. - - -To get started, see , or continue reading for more -detail on how works and what is covered in this documentation. - - - - - operation in a nutshell - - works by using the tools available to the user at the -command-line, using the same interfaces available to the user. When - is run, the following sequence is followed: - - - reads in the command -line and configuration file, to -determine what to build, compile options to use, where to install, - - - performs a source update for each module. The update continues until all modules -have been updated. Modules that fail to update normally do not stop the build - you will be notified at the end which modules did not -update. - -Modules that were successfully updated are built, have their -test suite run, and are then installed. To reduce the overall time spent, - will by default start building the code as soon as the first -module has completed updating, and allow the remaining updates to continue -behind the scenes. - - - -A very good overview of how modules are -built, including informative diagrams, is provided on https://www.davidrevoy.com/article193/guide-building-krita-on-linux-for- -cats">an online article discussing 's application. This -workflow is what automates for all modules. - - - - - - - + diff --git a/doc/introduction.docbook b/doc/introduction.docbook new file mode 100644 index ..e6ca3256 --- /dev/null +++ b/doc/introduction.docbook @@ -0,0 +1,67 @@ + +Introduction + + +A brief introduction to + + +What is ? + + + is a script to help the community install https://www.kde.org/;> software from its https://git-scm.com/;> source repositories, +and continue to update that software afterwards. +It is particularly intended to support those who need to supporting testing and +development of software, including users testing bugfixes and developers +working on new features. + + +The script can be configured to maintain a single individual +module, a full desktop with application set, or somewhere in between. + + +To get started, see , or continue reading for more +detail on how works and what is covered in this documentation. + + + + + operation in a nutshell + + works by using the tools available to the user at the +command-line, using the same interfaces available to the user. When + is run, the following sequence is followed: + + + reads in the command +line and configuration file, to +determine what to build, compile options to use, where to install, + + + performs a source update for each module. The update continues until all modules +have been updated. Modules that fail to update normally do not stop the build + you will be notified at the end which modules did not +update. + +Modules that were successfully updated are built, have their +test suite run, and are then installed. To reduce the overall time spent, + will by default start building the code as soon as the first +module has completed updating, and allow the remaining updates to continue +behind the scenes. + + + +A very good overview of how modules are +built, including informative diagrams, is provided on https://www.davidrevoy.com/article193/guide-building-krita-on-linux-for- +cats">an online article discussing 's application. This +workflow is what automates for all modules. + + + + + + +
[sdk/kdesrc-build] doc: doc: cmdline - separate docbook
Git commit 6496ae8eabf61c86d586f11a0c4000bf9fb9076b by Andrew Shark. Committed on 05/01/2024 at 19:58. Pushed by ashark into branch 'master'. doc: cmdline - separate docbook A +837 -0doc/cmdline.docbook M +2-837 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/6496ae8eabf61c86d586f11a0c4000bf9fb9076b diff --git a/doc/cmdline.docbook b/doc/cmdline.docbook new file mode 100644 index ..ecec619f --- /dev/null +++ b/doc/cmdline.docbook @@ -0,0 +1,837 @@ + +Command Line Options and Environment Variables + + +Command Line Usage + + is designed to be run as follows: + + +kdesrc-build +--options +modules to build + + +If no modules to build are specified on the command line, then +kdesrc-build will build all modules defined in its configuration file, in the +order listed in that file (although this can be modified by various +configuration file options). + + +Commonly used command line options + +The full list of command line options is given in . The most-commonly used options +include: + + + +--pretend (or -p) +This option causes to indicate what actions +it would take, without actually really implementing them. This can be +useful to make sure that the modules you think you are building will +actually get built. + + + +--refresh-build +This option forces to build the given +modules from an absolutely fresh start point. Any existing build directory +for that module is removed and it is rebuilt. This option is useful if you +have errors building a module, and sometimes is required when or +libraries change. + + + +--no-src +This option skips the source update process. You might use +it if you have very recently updated the source code (perhaps you did it +manually or recently ran ) but still want to rebuild some +modules. + + + +--no-build +This option is similar to --no-src above, +but this time the build process is skipped. + + + + + + +Specifying modules to build + +In general, specifying modules to build is as simple as passing their +module name as you defined it in the configuration file. You can also pass +modules that are part of a module set, either as named on use-modules, or the name of the entire module +set itself, if you have given it a name. + +In the specific case of module sets based against the KDE project database, +will expand module name components to determine the exact module you +want. For example, 's KDE project entry locates the project in +extragear/utils/kdesrc-build. You could specify any +of the following to build : + + + + kdesrc-build +extragear/utils/kdesrc-build + kdesrc-build +utils/kdesrc-build + kdesrc-build +kdesrc-build + + + +The commands in the previous example preceded the module-name with +a +. This forces the module name to be interpreted as a module +from the KDE project database, even if that module hasn't been defined in your +configuration file. + + +Be careful about specifying very generic projects (e.g. +extragear/utils by itself), as this can lead to a large +amount of modules being built. You should use the --pretend +option before building a new module set to ensure it is only building the +modules you want. + + + + + +Supported Environment Variables + + + does not use environment variables. If you need to set environment +variables for the build or install process, please see the set-env option. + + + + + +Supported command-line parameters + + +The script accepts the following command-line options: + + + + + +--async + +Enables the asynchronous mode, which can +perform the source code updates and module builds at the same time. This is +the default, this option only needs specified if you have disabled it in the +configuration. + + + + +--help (or -h) + +Only display simple help on this script. + + + + +--version (or -v) + +Display the program version. + + + + +--show-info + +Displays information about and the operating system, that may +prove useful in bug reports or when asking for help in forums or mailing lists. + +Available since version 18.11. + + + + +--initial-setup + +Has perform the one-time initial setup necessary to prepare +the system for to operate, and for the newly-installed +software to run. + +This includes: + +Installing known dependencies (on supported distributions) +Adding required environment variables to ~/.bashrc +Setting up a configuration file + +This option is exactly equivalent to using +--install-distro-packages +--generate-config +--update-shellrc at the same time. + + + + + +--install-distro-packages + +Installs distro packages (on supported distributions) necessary to prepare the system for to operate, and for the newly-installed +software to run. + +See also --initial-setup + + + + +--generate-config + +Generate the configuration file. + +See also --initial-setup + + + + +--update-shellrc + +Edit the "~/.bashrc" (or other shell rc file) to add to y
[sdk/kdesrc-build] doc: doc: intro-toc - separate docbook
Git commit fae18088f19548e12d9aef2c24321bb8f6bc9c5f by Andrew Shark. Committed on 05/01/2024 at 19:59. Pushed by ashark into branch 'master'. doc: intro-toc - separate docbook M +2-22 doc/index.docbook A +22 -0doc/intro-toc.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/fae18088f19548e12d9aef2c24321bb8f6bc9c5f diff --git a/doc/index.docbook b/doc/index.docbook index d506542a..3038d2d2 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -81,6 +81,7 @@ + ]> @@ -206,28 +207,7 @@ workflow is what automates for all modules. - -Documentation Overview - - -This guide is an overview to describe the following aspects of -operation: - - - -An overview of the steps -required to get started. -Notable features. -The configuration file syntax -and options. -The command line options. - - -Also documented are the steps which you should perform using -other tools ( steps that are not automatically performed by ). - - - + diff --git a/doc/intro-toc.docbook b/doc/intro-toc.docbook new file mode 100644 index ..00b36bf6 --- /dev/null +++ b/doc/intro-toc.docbook @@ -0,0 +1,22 @@ + +Documentation Overview + + +This guide is an overview to describe the following aspects of +operation: + + + +An overview of the steps +required to get started. +Notable features. +The configuration file syntax +and options. +The command line options. + + +Also documented are the steps which you should perform using +other tools ( steps that are not automatically performed by ). + + +
[sdk/kdesrc-build] doc: doc: configure-data - separate docbook
Git commit bdd65e23ec996e9b2d286d556de32890e70833e6 by Andrew Shark. Committed on 05/01/2024 at 19:58. Pushed by ashark into branch 'master'. doc: configure-data - separate docbook A +110 -0doc/configure-data.docbook M +2-110 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/bdd65e23ec996e9b2d286d556de32890e70833e6 diff --git a/doc/configure-data.docbook b/doc/configure-data.docbook new file mode 100644 index ..a4019619 --- /dev/null +++ b/doc/configure-data.docbook @@ -0,0 +1,110 @@ + +Setting the Configuration Data + + +To use , you should have a file in your ~/.config +(or in $XDG_CONFIG_HOME, if set) directory called +kdesrc-buildrc, which sets the general options and +specifies the modules you would like to download and build. + + + +It is possible to use different configuration files for , which is +described in . If you need to use multiple +configurations, please see that section. Here, we will assume that the +configuration is stored in ~/.config/kdesrc-buildrc. + + + +The easiest way to proceed is to use the +kdesrc-buildrc-kf5-sample file as a template, changing global +options to match your wants, and also change the list of modules you want to +build. + + + +The default settings should be appropriate to perform a + build. Some settings that you may wish to alter include: + + + +install-dir, which changes the +destination directory that your software is installed to. This defaults to +~/kde/usr, which is a single-user +installation. + +branch-group, which can +be +used to choose the appropriate branch of development for the modules as a +whole. There are many supported build configurations but you will likely want to +choose kf5-qt5 so that downloads the latest code +based on 5 and Frameworks 5. + + will use a default branch group if you do not choose +one, but this default will change over time, so it's better to choose one so +that the branch group does not change unexpectedly. + + +source-dir, to control the directory + uses for downloading the source code, running the build process, and saving +logs. +This defaults to ~/kde/src. + +cmake-options, which +sets the options to pass to the command when building each module. +Typically this is used to set between debug or +release builds, to enable (or disable) optional features, or to +pass information to the build process about the location of required libraries. + + +make-options, which +sets the options used when actually running the make +command to build each module (once has established the build system). + + +The most typical option is -jN, +where N should be replaced with the maximum number of +compile jobs you wish to allow. A higher number (up to the number of logical CPUs +your system has available) leads to quicker builds, but requires more system resources. + + + sets the option num-cores to +the detected number of available processing cores. You can use this value +in your own configuration file to avoid having to set it manually. + + + +Configuring Make to use all available CPUs, with exceptions + +global +# This environment variable is automatically used by make, including +# make commands not run by kdesrc-build directly, such as Qt's configure +set-env MAKEFLAGS -j${num-cores} + +end global + + + +module-set big-module-set +repository kde-projects +use-modules calligra +make-options -j2 # Reduced number of build jobs for just these modules +end module-set + + + +Some very large Git repositories may swamp your system if you try to +compile with a too many build jobs at one time, especially repositories like the + WebKit and WebEngine repositories. To maintain system interactivity +you may have to reduce the number of build jobs for specific modules. + gives an example of how to do +this. + + + + + +You may want to select different modules to build, +which is described in . + + diff --git a/doc/index.docbook b/doc/index.docbook index 2df7f7b9..12020c0d 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -75,6 +75,7 @@ + ]> @@ -434,116 +435,7 @@ linkend="configure-data" /> and in . - -Setting the Configuration Data - - -To use , you should have a file in your ~/.config -(or in $XDG_CONFIG_HOME, if set) directory called -kdesrc-buildrc, which sets the general options and -specifies the modules you would like to download and build. - - - -It is possible to use different configuration files for , which is -described in . If you need to use multiple -configurations, please see that section. Here, we will assume that the -configuration is stored in ~/.config/kdesrc-buildrc. - - - -The easiest way to proceed is to use the -kdesrc-buildrc-kf5-sample file as a template, changing global -options to match your wants, and also change the list of modules you want to -build. - - - -The default settings should be appropriate to perform a - build. Some settings that you may wish to alter include: -
[sdk/kdesrc-build] doc: doc: developer-features - separate docbook
Git commit edc4c2b17ec35a321a6460189a01e6ed869c64e6 by Andrew Shark. Committed on 05/01/2024 at 19:59. Pushed by ashark into branch 'master'. doc: developer-features - separate docbook A +33 -0doc/developer-features.docbook M +2-33 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/edc4c2b17ec35a321a6460189a01e6ed869c64e6 diff --git a/doc/developer-features.docbook b/doc/developer-features.docbook new file mode 100644 index ..1a5dc69a --- /dev/null +++ b/doc/developer-features.docbook @@ -0,0 +1,33 @@ + +Features for developers + + + Agent checks + can ensure that developers that use to +access the source repository do not accidentally forget to leave the + Agent tool enabled. This can cause to hang indefinitely +waiting for the developer to type in their password, +so by default will check if the Agent is running before +performing source updates. + + +This is only done for developers using . + + +You may wish to disable the Agent check, in case of situations where + is mis-detecting the presence of an agent. To disable the +agent check, set the disable-agent-check option to +true. + + +Disabling the agent check: + +global + disable-agent-check true +end global + + + + + + diff --git a/doc/index.docbook b/doc/index.docbook index 4e6f9d31..2e8306bb 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -77,6 +77,7 @@ + ]> @@ -1466,39 +1467,7 @@ do with this tool. - -Features for developers - - - Agent checks - can ensure that developers that use to -access the source repository do not accidentally forget to leave the - Agent tool enabled. This can cause to hang indefinitely -waiting for the developer to type in their password, -so by default will check if the Agent is running before -performing source updates. - - -This is only done for developers using . - - -You may wish to disable the Agent check, in case of situations where - is mis-detecting the presence of an agent. To disable the -agent check, set the disable-agent-check option to -true. - - -Disabling the agent check: - -global - disable-agent-check true -end global - - - - - - + Other features
[sdk/kdesrc-build] doc: doc: credits-and-license - separate docbook
Git commit 5aafd47afe7290dbac48570dfcacc716823b53f3 by Andrew Shark. Committed on 05/01/2024 at 19:59. Pushed by ashark into branch 'master'. doc: credits-and-license - separate docbook A +7-0doc/credits-and-license.docbook M +2-7doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/5aafd47afe7290dbac48570dfcacc716823b53f3 diff --git a/doc/credits-and-license.docbook b/doc/credits-and-license.docbook new file mode 100644 index ..c1cde3c6 --- /dev/null +++ b/doc/credits-and-license.docbook @@ -0,0 +1,7 @@ + +Credits And License + + + + + diff --git a/doc/index.docbook b/doc/index.docbook index 12020c0d..4e6f9d31 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -76,6 +76,7 @@ + ]> @@ -1674,13 +1675,7 @@ as of version 1.6.3. - -Credits And License - - - - - +
[sdk/kdesrc-build] doc: doc: building-and-troubleshooting - separate docbook
Git commit 018dba9a0efa4a8ed0db24f8276a805f03c843f3 by Andrew Shark. Committed on 05/01/2024 at 19:57. Pushed by ashark into branch 'master'. doc: building-and-troubleshooting - separate docbook A +139 -0doc/building-and-troubleshooting.docbook M +2-139 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/018dba9a0efa4a8ed0db24f8276a805f03c843f3 diff --git a/doc/building-and-troubleshooting.docbook b/doc/building-and-troubleshooting.docbook new file mode 100644 index ..b9d478eb --- /dev/null +++ b/doc/building-and-troubleshooting.docbook @@ -0,0 +1,139 @@ + +Using the script +With the configuration data established, now you are ready to run the +script. Even if you still have some tweaking or other reading you wish to do, +it is a good idea to at least load the project metadata. + + +Loading project metadata + + +From a terminal window, log in to the user you are using to compile software and +execute the script: + + + kdesrc-build --metadata-only + + +This command will setup the source directory and connect to the KDE +repositories to download the database of git repositories, and the +database of dependency metadata, without making any further changes. It is +useful to run this separately as this metadata is useful for other + commands. + + + + +Previewing what will happen when kdesrc-build runs + +With the project metadata installed, it is possible to preview what + will do when launched. This can be done with the --pretend command line option. + + + ./kdesrc-build --pretend + + +You should see a message saying that some packages were successfully built (although +nothing was actually built). If there were no significant problems shown, you can proceed +to actually running the script. + + + kdesrc-build + + +This command will download the appropriate source code, build and install each module in order. Afterwards, you should see output similar to that in : + + +Example output of a kdesrc-build run + + kdesrc-build +Updating kde-build-metadata (to branch master) +Updating sysadmin-repo-metadata (to branch master) + +Building libdbusmenu-qt (1/200) +No changes to libdbusmenu-qt source, proceeding to build. +Compiling... succeeded (after 0 seconds) +Installing.. succeeded (after 0 seconds) + +Building taglib (2/200) +Updating taglib (to branch master) +Source update complete for taglib: 68 files affected. +Compiling... succeeded (after 0 seconds) +Installing.. succeeded (after 0 seconds) + +Building extra-cmake-modules from module-set at line 32 (3/200) +Updating extra-cmake-modules (to branch master) +Source update complete for extra-cmake-modules: 2 files affected. +Compiling... succeeded (after 0 seconds) +Installing.. succeeded (after 0 seconds) + +... + +Building kdevelop from kdev (200/200) +Updating kdevelop (to branch master) +Source update complete for kdevelop: 29 files affected. +Compiling... succeeded (after 1 minute, and 34 seconds) +Installing.. succeeded (after 2 seconds) + + PACKAGES SUCCESSFULLY BUILT +Built 200 modules + +Your logs are saved in /home/kde-src/kdesrc/log/2018-01-20-07 + + + + + +Resolving build failures + + +Depending on how many modules you are downloading, it is possible that + will not succeed the first time you compile software. +Do not despair! + + + logs the output of every command it runs. By default, +the log files are kept in ~/kdesrc/log. To see what +the caused an error for a module in the last command, usually +it is sufficient to look at ~/kdesrc/log/latest/module-name/error.log. + +Perhaps the easiest way to find out what error caused a module to +fail to build is to search backward with a case-insensitive search, starting +from the end of the file looking for the word error. Once +that is found, scroll up to make sure there are no other error messages nearby. +The first error message in a group is usually the underlying +problem. + +In that file, you will see the error that caused the build to fail for +that module. If the file says (at the bottom) that you are missing some +packages, try installing the package (including any appropriate -dev packages) +before trying to build that module again. Make sure that when you run + again to pass the --reconfigure option so that + forces the module to check for the missing packages +again. + +Or, if the error appears to be a build error (such as a syntax error, +incorrect prototype, unknown type, or similar) +then it is probably an error with the source, which will hopefully be +resolved within a few days. If it is not resolved within that time, feel free +to mail the kde-de...@kde.org mailing list (subscription may be +required first) in order to report the build failure. + +You can find more common examples of things that can go wrong and their +solutions, as well as general tips and strategies to build
[sdk/kdesrc-build] doc: doc: advanced-features - separate docbook
Git commit a26d6653d49bb5284edf92a74569bca09f0c681e by Andrew Shark. Committed on 05/01/2024 at 19:56. Pushed by ashark into branch 'master'. doc: advanced-features - separate docbook A +420 -0doc/advanced-features.docbook M +6-420 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/a26d6653d49bb5284edf92a74569bca09f0c681e diff --git a/doc/advanced-features.docbook b/doc/advanced-features.docbook new file mode 100644 index ..edb19da7 --- /dev/null +++ b/doc/advanced-features.docbook @@ -0,0 +1,420 @@ + +Advanced features + + +Partially building a module +It is possible to build only pieces from a single module. For +example, you may want to compile only one program from a module. +has features to make this easy. There are several complementing ways to +do this. + + + +Removing directories from a build +It is possible to download an entire repository +but have the build system leave out a few directories when it does +the build. This requires that the module uses and that the +module's build system allows the directory to remove to be +optional. + + +This is controlled with the option. + + +This option requires at least that the +build system for the module is reconfigured after changing +it. This is done using the kdesrc-build + +module command. + + + +To remove the python directory +from the kdebindings build process: + + +module kdebindings + python +end module + + + + +This function depends on some standard conventions used in most + modules. Therefore it may not work for all programs. + + + + + + +Branching and tagging support for + + +What are branches and tags? + + supports managing the history of the source code. +uses this support to create branches for development, and to tag the repository +every so often with a new version release. + + +For example, the developers may be working on a new feature in +a different branch in order to avoid breaking the version being used by most +developers. This branch has development ongoing inside it, even while the +main branch (called master) may have development going on inside of it. + + +A tag, on the other hand, is a specified point in the source code repository +at a position in time. This is used by the administration team to mark +off a version of code suitable for release and still allow the developers to +work on the code. + + + + + +How to use branches and tags + +Support for branches and tags is handled by a set of options, which +range from a generic request for a version, to a specific to download +for advanced users. + + +The easiest method is to use the and options. You simply +use the option along with the name of the desired branch or tag for a module, +and will try to determine the appropriate location within the + repository to download from. For most modules this works very +well. + + +To download kdelibs from 4.6 (which is simply known as the 4.6 branch): + + + +module kdelibs + branch 4.6 + # other options... +end module + + +Or, to download kdemultimedia as it was released with 4.6.1: + + +module kdemultimedia + tag 4.6.1 + # other options... +end module + + + + +You can specify a global branch value. But if you do so, do not forget +to specify a different branch for modules that should not use the global branch! + + + + + + +Stopping the build early + + +The build normally continues even if failures occur + + normally will update, build and install all modules +in the specified list of modules to build, even if a module fails to build. +This is usually a convenience to allow you to update software packages even +if a simple mistake is made in one of the source repositories during +development that causes the build to break. + + + +However you may wish for to stop what it is doing once a +module fails to build and install. This can help save you time that will be +wasted trying to make progress when modules remaining in the build list will +not be able to successfully build either, especially if you have not ever +successfully built the modules in the list. + + + + + +Not stopping early with --no-stop-on-failure + + +The primary method to do this is to use the +--no-stop-on-failure +command line option when you run . + + +This option can also be set in the +configuration file to make +it the normal mode of operation. + + +It is also possible to tell at runtime to stop building +after completing the current module it is working on. +This is as opposed to interrupting using a command like +C, which interrupts + immediately, losing the progress of the current module. + + +Interrupting during a module install when +the use-clean-install option +is enabled will mean that the interrupted module will be unavailable until + is able to successfully build the module! + +If you need to interrupt without permitting a graceful shutdown +in this situation, at least try to avoid doing this while is +installing a module. + + + + + +Stopping gracefully when stop-on-failure is false
[sdk/kdesrc-build] doc: doc: basic-features - separate docbook
Git commit 097dee86e82f4d4c6adefea1884686475454f896 by Andrew Shark. Committed on 05/01/2024 at 19:57. Pushed by ashark into branch 'master'. doc: basic-features - separate docbook A +209 -0doc/basic-features.docbook M +2-209 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/097dee86e82f4d4c6adefea1884686475454f896 diff --git a/doc/basic-features.docbook b/doc/basic-features.docbook new file mode 100644 index ..2331e2ab --- /dev/null +++ b/doc/basic-features.docbook @@ -0,0 +1,209 @@ + +Basic features + + +qt support + supports building the toolkit used by software +as a convenience to users. This support is handled by a special module named +qt. + + is developed under a separate repository from software +located at http://code.qt.io/cgit/qt/;>http://code.qt.io/cgit/qt/. + +In order to build , you should make sure that the +qtdir setting is set to the directory you'd +like to install to, as described in . + +You should then ensure that the qt module is added to +your .kdesrc-buildrc, before any other modules in the +file. If you are using the sample configuration file, you can simply +uncomment the existing qt module entry. + +Now you should verify the repository option and branch options are set appropriately: + + +The first option is to build using a mirror maintained +on the source repositories (no other changes are applied, it is simply +a clone of the official source). This is highly recommended due to occasional +issues with cloning the full module from its official repository. + +You can set the repository option for the qt +module to kde:qt to use this option. + + +Otherwise, to build the standard , set your +repository option to +git://gitorious.org/qt/qt.git. Note that you may +experience problems performing the initial clone of from this +repository. + + +In both cases, the branch option should be set to master (unless you'd +like to build a different branch). + + + + +Standard flags added by +Nota Bene: this section does not apply to modules for which you have +configured a custom toolchain, using e.g. +cmake-toolchain. + +To save you time, adds some standard paths to your +environment for you: + + + + +The path to the and libraries is added to the +LD_LIBRARY_PATH variable automatically. This means that you +do not need to edit to include them. + + + +The path to the and development support programs are added to the +PATH variable automatically. This means that you do not need to +edit to include them. + + + +The path to the -provided pkg-config is added +automatically to PKG_CONFIG_PATH. This means that you do not +need to use to add these. + + + +The setting for is automatically propagated to the QTDIR +environment variable while building. + + + + + + + +Changing 's build priority +Programs can run with different priority levels on Operating Systems, +including and . This allows the system to allocate time for the +different programs in accordance with how important they are. + + + will normally allocate itself a low priority so that the +rest of the programs on your system are unaffected and can run normally. +Using this technique, will use extra CPU when it is available. + + + will still maintain a high enough priority level so that +it runs before routine batch processes and before CPU donation programs +such as http://setiathome.ssl.berkeley.edu/;>Seti@Home. + + +To alter so that it uses a higher (or lower) priority +level permanently, then you need to adjust the setting in the configuration file. The setting +controls how nice is to other programs. In other +words, having a higher gives a lower priority. So to +give a higher priority, reduce the (and vice versa). +The can go from 0 (not nice at all, highest priority) to 20 (super +nice, lowest priority). + +You can also temporarily change the priority for by using +the command line option. The value to +the option is used exactly the same as for . + +It is possible for some programs run by the super user to have a +negative nice value, with a correspondingly even higher priority for such +programs. Setting a negative (or even 0) for is not +a great idea, as it will not help run time significantly, but will make your +computer seem very sluggish should you still need to use it. + + + +To run with a niceness of 15 (a lower priority than +normal): + + + kdesrc-build --nice=15 + + +Or, you can edit the configuration file to make the change permanent: + + + 15 + + + + +The niceness option only affects the +usage of the computer's processor(s). One other major affect on computer +performance relates to how much data input or output (I/O) a +program uses. In order to control how much I/O a program can +use, modern operating systems support a similar tool called +ionice. supports +ionice, (but only to enable or disable it +completely) using the use-idle-io-priority option, +since version 1.12. + + + + + + +Installation as the superuser +You may wish t
[sdk/kdesrc-build] doc: doc: appendix-profile - separate docbook
Git commit 047ca98d497befc8ab630c0769b34f1d34803b87 by Andrew Shark. Committed on 05/01/2024 at 19:57. Pushed by ashark into branch 'master'. doc: appendix-profile - separate docbook A +168 -0doc/appendix-profile.docbook M +2-168 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/047ca98d497befc8ab630c0769b34f1d34803b87 diff --git a/doc/appendix-profile.docbook b/doc/appendix-profile.docbook new file mode 100644 index ..a9293a92 --- /dev/null +++ b/doc/appendix-profile.docbook @@ -0,0 +1,168 @@ + +Superseded profile setup procedures + + +Setting up a login profile + +These instructions cover how to setup the profile required to ensure your +computer can login to your newly-built desktop. +will normally try to do this automatically (see ). This appendix section can be useful for those who +cannot use 's support for login profile setup. However the +instructions may not always be up-to-date, it can also be useful to consult the +kde-env-master.sh.in file included with the +source. + + +Changing your startup profile settings + +The .bash_profile is the login settings +file for the popular bash shell used by many +distributions. If you use a different shell, then you may need to adjust the +samples given in this section for your particular shell. + + +Open or create the .bash_profile file in the home directory with your favorite editor, +and add to the end of the file: + +If you are building the qt module (you are by default), add instead: + + +QTDIR=(path to qtdir) # Such as ~/kdesrc/build/qt by default. +PATH=${install-dir}/bin:$QTDIR/bin:$PATH +MANPATH=$QTDIR/doc/man:$MANPATH + +# Act appropriately if LD_LIBRARY_PATH is not already set. +if [ -z $LD_LIBRARY_PATH ]; then + LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib +else + LD_LIBRARY_PATH=${install-dir}:/lib:$QTDIR/lib:$LD_LIBRARY_PATH +fi + +export QTDIR PATH MANPATH LD_LIBRARY_PATH + + +or, if you are not building qt (and are using your system instead), add +this instead: + + +PATH=${install-dir}/bin:$QTDIR/bin:$PATH + +# Act appropriately if LD_LIBRARY_PATH is not already set. +if [ -z $LD_LIBRARY_PATH ]; then + LD_LIBRARY_PATH=${install-dir}/lib +else + LD_LIBRARY_PATH=${install-dir}/lib:$LD_LIBRARY_PATH +fi + +export PATH LD_LIBRARY_PATH + + + + +If you are not using a dedicated user, set a different $KDEHOME +for your new environment in your .bash_profile: + + +export KDEHOME="${HOME}/.kde-git" + +# Create it if needed +[ ! -e ~/.kde-git ] mkdir ~/.kde-git + + + + + +If later your K Menu is empty or too crowded with applications from your +distribution, you may have to set the XDG environment +variables in your .bash_profile: + + +XDG_CONFIG_DIRS="/etc/xdg" +XDG_DATA_DIRS="${install-dir}/share:/usr/share" +export XDG_CONFIG_DIRS XDG_DATA_DIRS + + + + + + + +Starting + + +Now that you have adjusted your environment settings to use the correct , +it is important to ensure that the correct startkde script +is used as well. + + + +Open the .xinitrc text file from the home directory, or +create it if necessary. Add the line: + + +exec ${install-dir}/bin/startkde + + + +On some distributions, it may be necessary to perform the same +steps with the .xsession file, also in the home directory. +This is especially true when using graphical login managers such as +sddm, gdm, or xdm. + + + +Now start your fresh : in and systems with virtual terminal support, +F1 ... F12 keystroke combinations are used to switch to Virtual Console 1 through 12. +This allows you to run more than one desktop environment at the same time. The fist six are +text terminals and the following six are graphical displays. + + + +If when you start your computer you are presented to the graphical display +manager instead, you can use the new environment, even if it is not listed +as an option. Most display managers, including sddm, have an option to use +a Custom Session when you login. With this option, your session settings are +loaded from the .xsession file in your home directory. If +you have already modified this file as described above, this option should load +you into your new installation. + + +If it does not, there is something else you can try that should normally +work: Press F2, +and you will be presented to a text terminal. Log in using the dedicated user +and type: + + + +startx -- :1 + + + + +You can run the from sources and the old at the same time! Log in +using your regular user, start the stable desktop. Press F2 (or +F1, F3, etc..), and you will be presented +with a text terminal. Log in using the dedicated user and +type: + + +startx -- :1 + + +You can go back to the desktop of your regular user by pressing the +shortcut key for the already running desktop. This is normally +F7, you may need +to use F6 or F8 instead. To return to your +-compiled , you would use the same sequence, except with the +next function key. For example, if you needed to enter F7 +to swit
[sdk/kdesrc-build] doc: doc: building-specific-modules - separate docbook
Git commit 70175b26036e7cd31776b4c8a45d49de2bd1abab by Andrew Shark. Committed on 05/01/2024 at 19:58. Pushed by ashark into branch 'master'. doc: building-specific-modules - separate docbook A +62 -0doc/building-specific-modules.docbook M +2-62 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/70175b26036e7cd31776b4c8a45d49de2bd1abab diff --git a/doc/building-specific-modules.docbook b/doc/building-specific-modules.docbook new file mode 100644 index ..d0e30a76 --- /dev/null +++ b/doc/building-specific-modules.docbook @@ -0,0 +1,62 @@ + +Building specific modules + +Rather than building every module all the time, you may only want to build a single +module, or other small subset. Rather than editing your configuration file, you can simply +pass the names of modules or module sets to build to the command line. + + +Example output of a kdesrc-build specific module build + + kdesrc-build --include-dependencies dolphin +Updating kde-build-metadata (to branch master) +Updating sysadmin-repo-metadata (to branch master) + +Building extra-cmake-modules from frameworks-set (1/79) +Updating extra-cmake-modules (to branch master) +No changes to extra-cmake-modules source, proceeding to build. +Running cmake... +Compiling... succeeded (after 0 seconds) +Installing.. succeeded (after 0 seconds) + +Building phonon from phonon (2/79) +Updating phonon (to branch master) +No changes to phonon source, proceeding to build. +Compiling... succeeded (after 0 seconds) +Installing.. succeeded (after 0 seconds) + +Building attica from frameworks-set (3/79) +Updating attica (to branch master) +No changes to attica source, proceeding to build. +Compiling... succeeded (after 0 seconds) +Installing.. succeeded (after 0 seconds) + +... + +Building dolphin from base-apps (79/79) +Updating dolphin (to branch master) +No changes to dolphin source, proceeding to build. +Compiling... succeeded (after 0 seconds) +Installing.. succeeded (after 0 seconds) + + PACKAGES SUCCESSFULLY BUILT +Built 79 modules + +Your logs are saved in /home/kde-src/kdesrc/log/2018-01-20-07 + + + +In this case, although only the dolphin +application was specified, the --include-dependencies flag +caused to include the dependencies listed for +dolphin (by setting the include-dependencies option). + + +The dependency resolution worked in this case only because +dolphin happened to be specified in a +kde-projects-based module set (in this example, named +base-apps). See . + + + diff --git a/doc/index.docbook b/doc/index.docbook index f7462149..55314add 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -72,6 +72,7 @@ + ]> @@ -544,68 +545,7 @@ which is described in . - -Building specific modules - -Rather than building every module all the time, you may only want to build a single -module, or other small subset. Rather than editing your configuration file, you can simply -pass the names of modules or module sets to build to the command line. - - -Example output of a kdesrc-build specific module build - - kdesrc-build --include-dependencies dolphin -Updating kde-build-metadata (to branch master) -Updating sysadmin-repo-metadata (to branch master) - -Building extra-cmake-modules from frameworks-set (1/79) -Updating extra-cmake-modules (to branch master) -No changes to extra-cmake-modules source, proceeding to build. -Running cmake... -Compiling... succeeded (after 0 seconds) -Installing.. succeeded (after 0 seconds) - -Building phonon from phonon (2/79) -Updating phonon (to branch master) -No changes to phonon source, proceeding to build. -Compiling... succeeded (after 0 seconds) -Installing.. succeeded (after 0 seconds) - -Building attica from frameworks-set (3/79) -Updating attica (to branch master) -No changes to attica source, proceeding to build. -Compiling... succeeded (after 0 seconds) -Installing.. succeeded (after 0 seconds) - -... - -Building dolphin from base-apps (79/79) -Updating dolphin (to branch master) -No changes to dolphin source, proceeding to build. -Compiling... succeeded (after 0 seconds) -Installing.. succeeded (after 0 seconds) - - PACKAGES SUCCESSFULLY BUILT -Built 79 modules - -Your logs are saved in /home/kde-src/kdesrc/log/2018-01-20-07 - - - -In this case, although only the dolphin -application was specified, the --include-dependencies flag -caused to include the dependencies listed for -dolphin (by setting the include-dependencies option). - - -The dependency resolution worked in this case only because -dolphin happened to be specified in a -kde-projects-based module set (in this example, named -base-apps). See . - - - + Sett
[sdk/kdesrc-build] doc: doc: appendix-modules - separate docbook
Git commit b9d905dff7bf8aaa0d943d96bac2bf69494161fe by Andrew Shark. Committed on 05/01/2024 at 19:56. Pushed by ashark into branch 'master'. doc: appendix-modules - separate docbook A +131 -0doc/appendix-modules.docbook M +2-131 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/b9d905dff7bf8aaa0d943d96bac2bf69494161fe diff --git a/doc/appendix-modules.docbook b/doc/appendix-modules.docbook new file mode 100644 index ..109f2daf --- /dev/null +++ b/doc/appendix-modules.docbook @@ -0,0 +1,131 @@ + + modules and source code organization + +The Module + + groups its software into modules of various size. +This was initially a loose grouping of a few large modules, but with the +introduction of the https://git-scm.com/;>Git-based https://commits.kde.org/;>source code repositories, these large +modules were further split into many smaller modules. + + + uses this module concept as well. In essence, a +module is a grouping of code that can be downloaded, built, +tested, and installed. + + + +Individual modules + +It is easy to set to build a single module. The following +listing is an example of what a declaration for a Git-based module would +look like in the configuration +file. + + +module kdefoo +cmake-options -DCMAKE_BUILD_TYPE=Debug +end module + + +This is a Git-based module since it doesn't use a repository option. Also, the +cmake-options option is listed as an example only, it is not +required. + + + +Groups of related modules + +Now most source modules are Git-based , and are normally +combined into groups of modules. + + therefore supports groups of modules as well, using +module sets. An example: + + +module-set base-modules +repository kde-projects +use-modules kde-runtime kde-workspace kde-baseapps +end module-set + + +You can leave the module set name (base-modules +in this case) empty if you like. This repository setting tells + where to download the source from, but you can also use a +git:// URL. + +One special feature of the repository +kde-projects is that will +automatically include any Git modules that are grouped under the modules you +list (in the KDE Project database). + + + +Module branch groups + +Taking the concept of a group of +modules further, the developers eventually found that +synchronizing the names of the Git branches across a large number of +repositories was getting difficult, especially during the development push for +the new Frameworks for 5. + + +So the concept of branch groups was developed, to allow +users and developers to select one of only a few groups, and allow the script +to automatically select the appropriate Git branch. + + + supports this feature as of version 1.16-pre2, via the +branch-group option. + + + +Example of using branch-group + +branch-group can be used in the configuration file as follows: + + + +global +# Select KDE Frameworks 5 and other Qt5-based apps +branch-group kf5-qt5 + +# Other global options here ... +end global + +module-set +# branch-group only works for kde-projects +repository kde-projects + +# branch-group is inherited from the one set globally, but could +# specified here. + +use-modules kdelibs kde-workspace +end module-set + +# kdelibs's branch will be "frameworks" +# kde-workspace's branch will be "master" (as of August 2013) + + +In this case the same branch-group gives different +branch names for each Git module. + + + +This feature requires some data maintained by the developers in a Git +repository named kde-build-metadata, however this module +will be included automatically by (though you may see it appear +in the script output). + + + modules that do not have a set branch name for the branch +group you choose will default to an appropriate branch name, as if you had not +specified branch-group at all. + + + + + + diff --git a/doc/index.docbook b/doc/index.docbook index 228b67bb..db3eddcf 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -68,6 +68,7 @@ Just add them as necessary. --> + ]> @@ -4388,137 +4389,7 @@ as of version 1.6.3. - - modules and source code organization - -The Module - - groups its software into modules of various size. -This was initially a loose grouping of a few large modules, but with the -introduction of the https://git-scm.com/;>Git-based https://commits.kde.org/;>source code repositories, these large -modules were further split into many smaller modules. - - - uses this module concept as well. In essence, a -module is a grouping of code that can be downloaded, built, -tested, and installed. - - - -Individual modules - -It is easy to set to build a single module. The following -listing is an example of what a declaration for a Git-based module would -look like in the configuration -file. - - -module kdefoo -cmake-options -DCMAKE_BUILD_TYPE=Debug -end module - - -This is a Git-based module since it doesn't use a repos
[sdk/kdesrc-build] /: Rename option "kdedir" to "install-dir"
Git commit e5c028cd18fa9f5e508e7b88d64033880eca7fa6 by Andrew Shark. Committed on 03/01/2024 at 19:43. Pushed by ashark into branch 'master'. Rename option "kdedir" to "install-dir" The kdedir is ambiguous, it is not clear if it is source, build or install dir. The kdedir naming dates back to the 2003 era when you had to define KDEDIR to define where KDE 3 was installed, just as QTDIR was used to define the location of the Qt 3 install. mpyne later added prefix for non-KDE modules and should have switched things over afterwards but never got around to it. By KDE SC 5 the requirement to use KDEDIR (or as it was by then, KDEDIRS) was dropped in favor of searching PATH. See https://invent.kde.org/sdk/kdesrc-build/-/commit/2f7b9477b7d44a2f88c148846c8f80f6921fd4ef#note_839381 M +2-2data/build-include/custom-qt5-libs.ksb M +4-4data/build-include/custom-qt6-libs.ksb M +1-1data/kde-env-master.sh.in M +1-1data/kdesrc-buildrc.in M +21 -30 doc/index.docbook M +2-2doc/man-kdesrc-build.1.docbook M +1-1doc/source-reference/ksb/Module.adoc M +2-2modules/ksb/Application.pm M +2-2modules/ksb/BuildContext.pm M +1-1modules/ksb/BuildSystem/KDECMake.pm M +1-1modules/ksb/Cmdline.pm M +2-2modules/ksb/FirstRun.pm M +5-5modules/ksb/Module.pm M +4-4t/unit/build-environment/platform-env-prepend.t M +1-1vim/syntax/kdesrc-buildrc.vim https://invent.kde.org/sdk/kdesrc-build/-/commit/e5c028cd18fa9f5e508e7b88d64033880eca7fa6 diff --git a/data/build-include/custom-qt5-libs.ksb b/data/build-include/custom-qt5-libs.ksb index 74a16b0e..114077b7 100644 --- a/data/build-include/custom-qt5-libs.ksb +++ b/data/build-include/custom-qt5-libs.ksb @@ -38,12 +38,12 @@ end module module libaccounts-qt repository https://gitlab.com/accounts-sso/libaccounts-qt.git - qmake-options PREFIX=${kdedir} + qmake-options PREFIX=${install-dir} end module module signond repository https://gitlab.com/accounts-sso/signond.git - qmake-options PREFIX=${kdedir} + qmake-options PREFIX=${install-dir} end module # For apper diff --git a/data/build-include/custom-qt6-libs.ksb b/data/build-include/custom-qt6-libs.ksb index 02ea74e5..1bac5d50 100644 --- a/data/build-include/custom-qt6-libs.ksb +++ b/data/build-include/custom-qt6-libs.ksb @@ -27,7 +27,7 @@ end module module libaccounts-qt repository https://gitlab.com/nicolasfella/libaccounts-qt.git branch qt6 - qmake-options PREFIX=${kdedir} + qmake-options PREFIX=${install-dir} override-build-system qmake6 end module @@ -35,7 +35,7 @@ end module module signond repository https://gitlab.com/nicolasfella/signond.git branch qt6 - qmake-options PREFIX=${kdedir} CONFIG+=no_etc + qmake-options PREFIX=${install-dir} CONFIG+=no_etc override-build-system qmake6 end module @@ -50,7 +50,7 @@ end module module libsignon-glib # this one does depend on qt, it seems repository https://gitlab.com/accounts-sso/libsignon-glib.git - qmake-options PREFIX=${kdedir} + qmake-options PREFIX=${install-dir} end module # Mandatory for krita @@ -112,7 +112,7 @@ end module module appstream repository https://github.com/ximion/appstream configure-flags -Dqt=true - set-env LDFLAGS -Wl,-rpath=${kdedir}/${libname} + set-env LDFLAGS -Wl,-rpath=${install-dir}/${libname} branch main end module diff --git a/data/kde-env-master.sh.in b/data/kde-env-master.sh.in index db0ee225..df107888 100644 --- a/data/kde-env-master.sh.in +++ b/data/kde-env-master.sh.in @@ -28,7 +28,7 @@ export XDG_CONFIG_HOME # be executable by testsuite. It is filtered from destination. # kdesrc-build: filter if ! test -n "$KDESRC_BUILD_TESTING"; then # kdesrc-build: filter # Where KDE libraries and applications are installed to. -kde_prefix="<% kdedir %>" # E.g. "$HOME/kf5" +kde_prefix="<% install-dir %>" # E.g. "$HOME/kf5" # Where Qt is installed to. If using the system Qt, leave blank and this script # will try to auto-detect. diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in index 228475ab..72eef3af 100644 --- a/data/kdesrc-buildrc.in +++ b/data/kdesrc-buildrc.in @@ -12,7 +12,7 @@ global include-dependencies %{include-dependencies} # Install directory for KDE software -kdedir %{kdedir} +install-dir %{install-dir} # Directory for downloaded source code source-dir %{source-dir} diff --git a/doc/index.docbook b/doc/index.docbook index 058937d4..55e0c874 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -38,7 +38,7 @@ --> configure-flags'> - kdedir'> + install-dir'> qtdir'> build-dir'> source-dir'> @@ -452,7 +452,7 @@ The default settings should be appropriate to perform a -kdedir, which changes the +install-dir, which changes the destination directory
[sdk/kdesrc-build] /: Add --dependency-tree-fullpath option
Git commit 42483187d75c2787f6c627d6ed1f84e0529a9b6f by Andrew Shark. Committed on 28/12/2023 at 10:43. Pushed by ashark into branch 'master'. Add --dependency-tree-fullpath option This option will do similar thing as --dependency-tree, but will print the full path on the line of each tree entry. This may be convenient when you want to grep something from the printed tree, but want to still be able to see the paths. M +1-0completions/zsh/_kdesrc-build M +11 -0doc/index.docbook M +37 -2modules/ksb/Application.pm M +1-0modules/ksb/Cmdline.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/42483187d75c2787f6c627d6ed1f84e0529a9b6f diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index ca79d62e..e8ad66ea 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -14,6 +14,7 @@ _arguments \ '(--pretend -p)'{--pretend,-p}"[Don't actually take major actions, instead describe what would be done]" \ '--list-build[List what modules would be built in the order in which they would be built]' \ '--dependency-tree[Print out dependency information on the modules that would be built, using a `tree` format]' \ + '--dependency-tree-fullpath[Print out dependency information on the modules that would be built, using a `fullpath` format]' \ '(--src-only --no-src)'{--src-only,--no-src}'[Only perform/Skip update source code]' \ '--refresh-build[Start the build from scratch]' \ '--rc-file=[Read configuration from filename instead of default]:::_files' \ diff --git a/doc/index.docbook b/doc/index.docbook index 6a4a383d..058937d4 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -3795,6 +3795,17 @@ If this file doesn't exist, ~/.config/kdesrc-buildrc + +--dependency-tree-fullpath + + +Prints out dependency information on the modules that would be built using a tree +format (recursive). In fullpath format. Note: the generated +output may become quite large for applications with many dependencies. + + + + --run diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 75c7da81..fa6cdaf1 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -185,6 +185,33 @@ sub _yieldModuleDependencyTreeEntry $context->{report}($connector . $currentItem . ' ' . $statusInfo); } +sub _yieldModuleDependencyTreeEntry_FullPath +{ +my ($nodeInfo, $module, $context) = @_; + +my $depth = $nodeInfo->{depth}; +my $currentItem = $nodeInfo->{currentItem}; + +my $connectorStack = $context->{stack}; + +my $prefix = pop(@$connectorStack); + +while($context->{depth} > $depth) { +$prefix = pop(@$connectorStack); +--($context->{depth}); +} + +push(@$connectorStack, $prefix); + +my $connector; + +$connector = $prefix; +push(@$connectorStack, $prefix . $currentItem . "/"); + +$context->{depth} = $depth + 1; +$context->{report}($connector . $currentItem); +} + # Generates the build context and module list based on the command line options # and module selectors provided, resolves dependencies on those modules if needed, # filters out ignored or skipped modules, and sets up the module factory. @@ -364,7 +391,7 @@ EOF croak_runtime("Failed to resolve dependency graph"); } -if (exists $cmdlineGlobalOptions->{'dependency-tree'}) { +if (exists $cmdlineGlobalOptions->{'dependency-tree'} || exists $cmdlineGlobalOptions->{'dependency-tree-fullpath'}) { my $depTreeCtx = { stack => [''], depth => 0, @@ -372,9 +399,17 @@ EOF print(@_, "\n"); } }; + +my $callback; +if (exists $cmdlineGlobalOptions->{'dependency-tree'}) { +$callback = \&_yieldModuleDependencyTreeEntry; +} else { +$callback = \&_yieldModuleDependencyTreeEntry_FullPath; +} + ksb::DependencyResolver::walkModuleDependencyTrees( $moduleGraph->{graph}, -\&_yieldModuleDependencyTreeEntry, +$callback, $depTreeCtx, @modules ); diff --git a/modules/ksb/Cmdline.pm b/modules/ksb/Cmdline.pm index 2a8bc44c..fff3ecda 100644 --- a/modules/ksb/Cmdline.pm +++ b/modules/ksb/Cmdline.pm @@ -441,6 +441,7 @@ sub _supportedOptions 'colorful-output|color!', 'debug', 'dependency-tree', +'dependency-tree-fullpath', 'help|h', 'ignore-modules|!=s{,}', 'd', # --include-dependencies, which is already pulled in via ksb::BuildContext::defaultGlobalFlags
[sdk/kdesrc-build] /: Move xsession.sh and kde-env-master.sh templates to data
Git commit beffd6a8d7250ffab6307bf1492c6ef751bbd3bb by Andrew Shark. Committed on 12/12/2023 at 11:04. Pushed by ashark into branch 'master'. Move xsession.sh and kde-env-master.sh templates to data M +2-2CMakeLists.txt R +0-0data/kde-env-master.sh.in [from: sample-kde-env-master.sh - 100% similarity] R +0-0data/xsession.sh.in [from: sample-xsession.sh - 100% similarity] M +2-2doc/index.docbook M +2-2modules/ksb/Application.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/beffd6a8d7250ffab6307bf1492c6ef751bbd3bb diff --git a/CMakeLists.txt b/CMakeLists.txt index 81097ec8..dd8db97b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,8 +48,8 @@ install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kdesrc-build DESTINATION ${KDE_INST install(PROGRAMS ${CMAKE_CURRENT_SOURCE_DIR}/kdesrc-run DESTINATION ${KDE_INSTALL_BINDIR}) install(PROGRAMS -${CMAKE_SOURCE_DIR}/sample-kde-env-master.sh -${CMAKE_SOURCE_DIR}/sample-xsession.sh +${CMAKE_SOURCE_DIR}/data/kde-env-master.sh.in +${CMAKE_SOURCE_DIR}/data/xsession.sh.in ${CMAKE_SOURCE_DIR}/data/build-include/custom-qt5-libs.ksb ${CMAKE_SOURCE_DIR}/data/build-include/qt5.ksb ${CMAKE_SOURCE_DIR}/data/build-include/kf5-applications.ksb diff --git a/sample-kde-env-master.sh b/data/kde-env-master.sh.in similarity index 100% rename from sample-kde-env-master.sh rename to data/kde-env-master.sh.in diff --git a/sample-xsession.sh b/data/xsession.sh.in similarity index 100% rename from sample-xsession.sh rename to data/xsession.sh.in diff --git a/doc/index.docbook b/doc/index.docbook index b4c2937a..6a4a383d 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -857,7 +857,7 @@ instructions have been moved to an appendix (). If you intend to setup your own login support you can consult that -appendix or view the sample-kde-env-master.sh file +appendix or view the kde-env-master.sh.in file included with the source. @@ -4940,7 +4940,7 @@ will normally try to do this automatically (see ). This appendix section can be useful for those who cannot use 's support for login profile setup. However the instructions may not always be up-to-date, it can also be useful to consult the -kde-env-master.sh file included with the +kde-env-master.sh.in file included with the source. diff --git a/modules/ksb/Application.pm b/modules/ksb/Application.pm index 1fe20e32..a4b895a6 100644 --- a/modules/ksb/Application.pm +++ b/modules/ksb/Application.pm @@ -1771,10 +1771,10 @@ sub _installCustomSessionDriver s{//+}{/}g foreach @searchPaths; # Remove duplicate slashes my $envScript = first { -f $_ } ( -map { "$_/sample-kde-env-master.sh" } @searchPaths +map { "$_/data/kde-env-master.sh.in" } @searchPaths ); my $sessionScript = first { -f $_ } ( -map { "$_/sample-xsession.sh" } @searchPaths +map { "$_/data/xsession.sh.in" } @searchPaths ); if (!$envScript || !$sessionScript) {
[sdk/kdesrc-build] doc: Move the module-set scope options to their table
Git commit 4ef24d2f1150cb209f9d9c97cfef415f7dd0f69d by Andrew Shark. Committed on 12/12/2023 at 10:53. Pushed by ashark into branch 'master'. Move the module-set scope options to their table M +93 -90 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/4ef24d2f1150cb209f9d9c97cfef415f7dd0f69d diff --git a/doc/index.docbook b/doc/index.docbook index cd8e9043..b4c2937a 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -1836,95 +1836,6 @@ protocol is most efficient. - -git-repository-base - - -TypeString -Available since1.12.1 - -This option is used to create a short -name to reference a specific Git repository base URL in later module set declarations, which is useful for -quickly declaring many Git modules to build. - -You must specify two things (separated by a space): The name to assign -to the base URL, and the actual base URL itself. For example: - - - -global -# other options -# This is the common path to all anonymous Git server modules. -git-repository-base kde-git kde: -end global - -# Module declarations - -module-set -# Now you can use the alias you defined earlier, but only in a module-set. -repository kde-git -use-modules module1.git module2.git -end module-set - - - -The module-set's use-modules option created two modules -internally, with behaving as if it had read: - - -module module1 -repository kde:module1.git -end module - -module module2 -repository kde:module2.git -end module - - -The kde: repository prefix used above is a -shortcut which will be setup by automatically. See the TechBase -https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL -Renaming article for more information. Note that unlike most other -options, this option can be specified multiple times in order to create as -many aliases as necessary. - -It is not required to use this option to take advantage of module-set, -this option exists to make it easy to use the same repository across many -different module sets. - - - - -ignore-modules - - -TypeString -Available since1.16 - -Modules named by this option, which would be chosen by -due to a use-modules option, are -instead skipped entirely. Use this option when you want to build an entire -kde-projects project grouping -except for some specific modules. - -The option value does not necessarily have to name the module directly. -Any module that has full consecutive parts of its projects module path match one -of the option values will be ignored, so you can ignore multiple modules this -way. - -For example, an option value of libs would -result in both kde/kdegraphics/libs and -playground/libs being excluded (though not -kde/kdelibs since the full part kdelibs is what -is compared). - -See also . - - - install-environment-driver @@ -3034,7 +2945,7 @@ installations. However this only works on build systems that support -Module-set scope only options +Module-set and global scope options @@ -3045,6 +2956,97 @@ installations. However this only works on build systems that support + +git-repository-base + + +TypeString +Available since1.12.1 + +This option is used to create a short +name to reference a specific Git repository base URL in later module set declarations, which is useful for +quickly declaring many Git modules to build. + +You must specify two things (separated by a space): The name to assign +to the base URL, and the actual base URL itself. For example: + + + +global +# other options +# This is the common path to all anonymous Git server modules. +git-repository-base kde-git kde: +end global + +# Module declarations + +module-set +# Now you can use the alias you defined earlier, but only in a module-set. +repository kde-git +use-modules module1.git module2.git +end module-set + + + +The module-set's use-modules option created two modules +internally, with behaving as if it had read: + + +module module1 +repository kde:module1.git +end module + +module module2 +repository kde:module2.git +end module + + +The kde: repository prefix used above is a +shortcut which will be setup by automatically. See the TechBase +https://techbase.kde.org/Development/Git/Configuration#URL_Renaming;>URL +Renaming article for more information. Note that unlike most other +options, this option can be specified multiple times in order to create as +many aliases as necessary. + +It is not required to use this option to take advantage of module-set, +this option exists to make it easy to use the same repository across many +different module sets. + + + + +ignore-modules + + +TypeString +Available since1.16 + +Currently can only be used in module-set, see https://bugs.kde.org/show_bug.cgi?id=472917;>Bug 472917. +Modules named by this option, which would be chosen by +due to a use-modules option, are +instead skipped entirely. Use this option when you want to build an entire +kde-projects project grouping +except for some
[sdk/kdesrc-build] /: Add "generate-vscode-project-config" option
Git commit 1d9b2355c10db4d8825cefe06c73b07d0b4f4373 by Andrew Shark, on behalf of Kristen McWilliam. Committed on 02/12/2023 at 17:16. Pushed by ashark into branch 'master'. Add "generate-vscode-project-config" option This change adds `generate-vscode-project-config` option for `kdesrc-buildrc` and the corresponding command line flag. When set to `true`, kdesrc-build will create the `.vscode` folder in the module source directory with configuration that makes VSCode to work properly with KDE projects, such as setting the correct build directory & enabling support for C++, CMake, LSP & IntelliSense. The process specifically checks for an existing `.vscode` folder, in case the user already has custom settings present - and only proceeds if it does not exist yet. Closes #84 M +2-0completions/zsh/_kdesrc-build M +4-0data/kdesrc-buildrc.in A +17 -0data/vscode/c_cpp_properties.json.in A +9-0data/vscode/extensions.json.in A +22 -0data/vscode/launch.json.in A +15 -0data/vscode/settings.json.in M +35 -0doc/index.docbook M +16 -15 modules/ksb/BuildContext.pm M +98 -0modules/ksb/BuildSystem/KDECMake.pm M +1-0modules/ksb/FirstRun.pm https://invent.kde.org/sdk/kdesrc-build/-/commit/1d9b2355c10db4d8825cefe06c73b07d0b4f4373 diff --git a/completions/zsh/_kdesrc-build b/completions/zsh/_kdesrc-build index f9b3d7ec..ca79d62e 100644 --- a/completions/zsh/_kdesrc-build +++ b/completions/zsh/_kdesrc-build @@ -39,5 +39,7 @@ _arguments \ '--rebuild-failures[Only those modules which failed to build on a previous run.]' \ '--force-build[Disable skipping the build process.]' \ '--resume[Resum after a build failure]' \ + '--generate-vscode-project-config[Generate a vscode project config]' \ + '(--generate-vscode-project-config --no-generate-vscode-project-config)'{--generate-vscode-project-config,--no-generate-vscode-project-config}'[Generate a vscode project config]' \ \ '*:: :_kdesrc-build_modules' diff --git a/data/kdesrc-buildrc.in b/data/kdesrc-buildrc.in index d3fb6171..cec49d4f 100644 --- a/data/kdesrc-buildrc.in +++ b/data/kdesrc-buildrc.in @@ -58,6 +58,10 @@ global # Build with LSP support for everything that supports it compile-commands-linking %{compile-commands-linking} compile-commands-export %{compile-commands-export} + +# Generate .vscode config files in project directories +# Enable this if you want to use Visual Studio Code for development +generate-vscode-project-config %{generate-vscode-project-config} end global # With base options set, the remainder of the file is used to define modules to build, in the diff --git a/data/vscode/c_cpp_properties.json.in b/data/vscode/c_cpp_properties.json.in new file mode 100644 index ..92b17fad --- /dev/null +++ b/data/vscode/c_cpp_properties.json.in @@ -0,0 +1,17 @@ +{ +"configurations": [ +{ +"name": "Linux", +"includePath": [ +"${workspaceFolder}/**" +], +"defines": [], +"compilerPath": "/usr/bin/gcc", +"cStandard": "c17", +"cppStandard": "c++17", +"intelliSenseMode": "${default}", +"compileCommands": "${workspaceFolder}/compile_commands.json" +} +], +"version": 4 +} \ No newline at end of file diff --git a/data/vscode/extensions.json.in b/data/vscode/extensions.json.in new file mode 100644 index ..07ce6504 --- /dev/null +++ b/data/vscode/extensions.json.in @@ -0,0 +1,9 @@ +{ +"recommendations": [ +"ms-vscode.cpptools-extension-pack", // C/C++ debugging +"llvm-vs-code-extensions.vscode-clangd", // C/C++ LSP +"tonka3000.qtvsctools", // Qt +"bbenoist.QML", // QML +"deerawan.vscode-dash", // Docs +] +} \ No newline at end of file diff --git a/data/vscode/launch.json.in b/data/vscode/launch.json.in new file mode 100644 index ..02ea5709 --- /dev/null +++ b/data/vscode/launch.json.in @@ -0,0 +1,22 @@ +{ +"version": "0.2.0", +"configurations": [ +{ +"name": "Debug", +"type": "cppdbg", +"request": "launch", +"program": "${command:cmake.launchTargetPath}", +"args": [], +"stopAtEntry": false, +"cwd": "${workspaceFolder}", +"MIMode": "gdb", +"setupCommands": [ +{ +"description": "Enable pretty-printing for gdb", +
[sdk/kdesrc-build] doc: Add specification for configuration options
Git commit d9a2fb130cd9a096df5bc6ea182e36a66d814b9d by Andrew Shark. Committed on 29/11/2023 at 14:06. Pushed by ngraham into branch 'master'. Add specification for configuration options M +419 -258 doc/index.docbook https://invent.kde.org/sdk/kdesrc-build/-/commit/d9a2fb130cd9a096df5bc6ea182e36a66d814b9d diff --git a/doc/index.docbook b/doc/index.docbook index 6c4312ff..fe8b8248 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -1759,53 +1759,67 @@ option. Global scope only options - + -Option-name -Module - Global Behavior -Notes +Option name +Description async -Cannot be overridden -This option enables the asynchronous mode of operation, where the source + + +TypeBoolean +Default valueTrue +Available since1.6 + +This option enables the asynchronous mode of operation, where the source code update and the build process will be performed in parallel, instead of waiting for -all of the source code updates before starting the build process. This option defaults -to enabling asynchronous mode. To disable, set this option to false -This option is available since the 1.6 release. +all of the source code updates before starting the build process. colorful-output -Cannot be overridden -Set this option to false to disable the colorful output of . -This option defaults to true. Note that will not output the + +TypeBoolean +Default valueTrue +Set this option to false to disable the colorful output of . +Note that will not output the color codes to anything but a terminal (such as xterm, , or the normal - console). + console). disable-agent-check -Cannot be overridden -Normally if you are using to download the sources -(such as if you are using the git+ssh protocol), will try and + + +TypeBoolean +Default valueFalse + +If you are using to download the sources +(such as if you are using the git+ssh protocol), this option controls if will try and make sure that if you are using ssh-agent, it is actually managing some identities. This is to try and prevent from asking for your pass phrase -for every module. You can disable this check by setting -disable-agent-check to true. +for every module. git-desired-protocol -Cannot be overridden -This option only applies to modules from a + +TypeString +Default valuegit +History informationThis option was added in 1.16. Prior to 20.06 this option +was used to configure the fetch URL instead of the push URL. As of 20.06 +https is always used when updating KDE projects. + +This option only applies to modules from a project repository. What this option actually does is configure which network protocol to @@ -1826,16 +1840,17 @@ needed for network traffic. In any other situation you should not set this option as the default protocol is most efficient. -This option was added in 1.16. Prior to 20.06 this option -was used to configure the fetch URL instead of the push URL. As of 20.06 -https is always used when updating KDE projects. git-repository-base -Cannot be overridden -This option, added in version 1.12.1, is used to create a short + + +TypeString +Available since1.12.1 + +This option is used to create a short name to reference a specific Git repository base URL in later module set declarations, which is useful for quickly declaring many Git modules to build. @@ -1844,26 +1859,21 @@ quickly declaring many Git modules to build. to the base URL, and the actual base URL itself. For example: - global -# other options - -# This is the common path to all anonymous Git server modules. -git-repository-base kde-git kde: +# other options +# This is the common path to all anonymous Git server modules. +git-repository-base kde-git kde: end global # Module declarations module-set -# Now you can use the alias you defined earlier, but only -# in a module-set. -repository kde-git - -use-modules module1.git module2.git +# Now you can use the alias you defined earlier, but only in a module-set. +repository kde-git +use-modules module1.git module2.git end module-set - The module-set's use-modules option created two modules @@ -1871,11 +1881,11 @@ internally, with behaving as if it had read: module module1 -repository kde:module1.git +repository kde:module1.git end module module module2 -repository kde:module2.git +repository kde:module2.git end module @@ -1895,8 +1905,12 @@ different module sets. ignore-modules -Can't be overridden -Modules named by this option, which would be chosen by + + +TypeString +Available since1.16 + +Modules named by this option, which would be chosen by due to a use-modules option, are instead skipped entirely. Use this option when you want to build an entire kde-projects project grouping @@ -1915,15 +1929,18 @@ result in both kde/kdegraphics/libs and is compared). See also . - -This option was introduced with 1.16. install-environment-driver -Cannot be overridden
[sdk/kdesrc-build] /: Remove unused option kde-languages
Git commit aec5f8b9c19bed58a633f9fb2c72392c0a70cf68 by Andrew Shark. Committed on 16/11/2023 at 15:03. Pushed by ngraham into branch 'master'. Remove unused option kde-languages M +0-24 doc/index.docbook M +0-1modules/ksb/BuildContext.pm M +2-2vim/syntax/kdesrc-buildrc.vim https://invent.kde.org/sdk/kdesrc-build/-/commit/aec5f8b9c19bed58a633f9fb2c72392c0a70cf68 diff --git a/doc/index.docbook b/doc/index.docbook index 1ade05f5..d39ec95c 100644 --- a/doc/index.docbook +++ b/doc/index.docbook @@ -2487,30 +2487,6 @@ change this to a directory needing root access, you may want to read about the well. - -kde-languages -Cannot be overridden -This option allows you to choose to download and install -localization packages along with . You might do this if you do not live in -the United States and would like to use translated into your native -language. - -To use this option, set it to a space-separated list of languages to -install. Each language has a language code associated with it, which you -can look up at this page: http://l10n.kde.org/teams-list.php;>http://l10n.kde.org/teams-list.php. - - -It is alright to choose only one language. By default, none are -downloaded, which means will display in American English. - -For instance, to choose to install French, you would set the option to -something like: kde-languages -fr. You would still need to use - in order to choose the French language, however. - - - libname Module setting overrides global diff --git a/modules/ksb/BuildContext.pm b/modules/ksb/BuildContext.pm index 12edbd72..d2a0cc6e 100644 --- a/modules/ksb/BuildContext.pm +++ b/modules/ksb/BuildContext.pm @@ -161,7 +161,6 @@ our %defaultGlobalOptions = ( "do-not-compile" => "", "http-proxy" => '', # Proxy server to use for HTTP. "kdedir" => "$ENV{HOME}/kde", -"kde-languages"=> "", "libname" => $libname, "libpath" => "", "log-dir" => "log", diff --git a/vim/syntax/kdesrc-buildrc.vim b/vim/syntax/kdesrc-buildrc.vim index 297fcd76..e60c4731 100644 --- a/vim/syntax/kdesrc-buildrc.vim +++ b/vim/syntax/kdesrc-buildrc.vim @@ -46,14 +46,14 @@ syn keyword ksbrcOption contained skipwhite nextgroup=ksbrcStringValue syn keyword ksbrcGlobalOption contained skipwhite nextgroup=ksbrcStringValue \ branch-group git-desired-protocol git-repository-base http-proxy -\ kde-languages niceness debug-level persistent-data-file set-env +\ niceness debug-level persistent-data-file set-env \ num-cores num-cores-low-mem " MUST BE CONSISTENT WITH ABOVE. Used when a module-set option is used in the " wrong spot to highlight the error. syn keyword ksbrcErrorGlobalOption contained skipwhite nextgroup=ksbrcStringValue \ branch-group git-desired-protocol git-repository-base http-proxy -\ kde-languages niceness debug-level persistent-data-file set-env +\ niceness debug-level persistent-data-file set-env \ num-cores num-cores-low-mem syn keyword ksbrcModuleSetOption contained skipwhite nextgroup=ksbrcStringValue