#autoload

# SPDX-FileCopyrightText: 2022 Ivan Tkachenko <me@ratijas.tk>
# SPDX-FileCopyrightText: 2023 - 2024 Andrew Shark <ashark@linuxcomp.ru>
#
# SPDX-License-Identifier: GPL-2.0-or-later

local -aU kde_builder_projects

# The output of `kde-builder -M --query group` is in the format:
# extra-cmake-modules: frameworks
# Where "extra-cmake-modules" is project name,
# ": " is output separator,
# "frameworks" is group name, containing the project

if _cache_invalid kde_builder_projects || ! _retrieve_cache kde_builder_projects; then
  # strip ":*" suffix (i.e. everything after and including first column).
  # (@) array Expansion Flags are needed because we need to operate on each element separately.
  kde_builder_projects=( "${(@)${(f)"$(
    _call_program kde-builder-projects \
      kde-builder -M --query group --all-kde-projects --all-config-projects --log-level application=ERROR
    )"}%%:*}" )
  _store_cache kde_builder_projects kde_builder_projects
fi
_wanted modules expl "projects" \
  compadd -a kde_builder_projects

# ---

local -aU kde_builder_groups

if _cache_invalid kde_builder_groups || ! _retrieve_cache kde_builder_groups; then
  # strip "*: " prefix (i.e. everything before column and including the column and space after it).
  # (@) array Expansion Flags are needed because we need to operate on each element separately.
  kde_builder_groups=( "${(@)${(f)"$(
    _call_program kde-builder-groups \
      kde-builder -M --query group --all-kde-projects --all-config-projects --log-level application=ERROR
    )"}#*: }" )
  _store_cache kde_builder_groups kde_builder_groups
fi
_wanted module_sets expl "groups" \
  compadd -a kde_builder_groups
