diff --git a/devel/generator/generate.pl b/devel/generator/generate.pl index 48f11fbe..aa20c23b 100755 --- a/devel/generator/generate.pl +++ b/devel/generator/generate.pl @@ -117,10 +117,12 @@ for my $top_level_dir (@$top_level_dirs) { # determine variant parts my $variant_prefix_part = $variant; my $variant_suffix_part = ''; + my $is_vcs_variant = 0; if ($variant) { for my $variant_suffixes (@variant_suffixes) { for my $variant_suffix (@$variant_suffixes) { next unless $variant =~ qr/.*-$variant_suffix$/; + $is_vcs_variant = 1 if $variant_suffixes == \@vcs_0_variant_suffixes; $variant_prefix_part = substr($variant, 0, length($variant) - length($variant_suffix) - 1); $variant_suffix_part = $variant_suffix_part ? "$variant_suffix-$variant_suffix_part" : $variant_suffix; last; @@ -131,6 +133,7 @@ for my $top_level_dir (@$top_level_dirs) { my $package_name_suffix = $variant_suffix_part ? "-$variant_suffix_part" : ""; my $is_static_variant = $variant_suffix_part =~ qr/static/; my $has_static_variant = $is_static_variant || -d "$default_package_name/$variant-static"; + my $is_cross_variant = $variant_prefix_part =~ qr/mingw-w64|android|apple-darwin/; my $package_name = "$package_name_prefix$default_package_name$package_name_suffix"; next if defined $filter_regex && $package_name !~ $filter_regex; @@ -142,6 +145,8 @@ for my $top_level_dir (@$top_level_dirs) { variant => $variant, variant_prefix_part => $variant_prefix_part, variant_suffix_part => $variant_suffix_part, + is_vcs_variant => $is_vcs_variant, + is_cross_variant => $is_cross_variant, default_package_name => $default_package_name, package_name_prefix => $package_name_prefix, package_name_suffix => $package_name_suffix, @@ -151,6 +156,7 @@ for my $top_level_dir (@$top_level_dirs) { qt_major_version => $qt_major_version, qt_module => $qt_module, qt_module_sha256 => $qt_module_sha256, + project_sha256sum => 'TODO', static_variant => $is_static_variant, static_suffix => $is_static_variant ? '-static' : '', static_deps => undef, diff --git a/devel/generator/templates/layouts/own-project.sh.ep b/devel/generator/templates/layouts/own-project.sh.ep new file mode 100644 index 00000000..8bf52bad --- /dev/null +++ b/devel/generator/templates/layouts/own-project.sh.ep @@ -0,0 +1,53 @@ +# Maintainer: Martchus +<%== content_for 'additional_contributors' %>\ + +# All my PKGBUILDs are managed at https://github.com/Martchus/PKGBUILDs where +# you also find the URL of a binary repository. + +<%== content_for 'comment_header' %>\ +_reponame=<%= stash('reponame') // $package_name %> +pkgname=<%= $package_name %> +<%== content %>\ +url="https://github.com/Martchus/${_reponame}" +% if ($is_vcs_variant) { +source=("${_reponame}::${MARTCHUS_GIT_URL_PREFIX:-git+https://github.com/Martchus}/${_reponame}.git") +sha256sums=('SKIP') +% } +% else { +source=("${pkgname}-${pkgver}.tar.gz::https://github.com/Martchus/${_reponame}/archive/v${pkgver}.tar.gz") +sha256sums=('<%== $project_sha256sum %>') +% } +% if ($is_cross_variant) { +options=(!buildflags staticlibs !strip !emptydirs) +% } + +<%== content_for 'additional_content' %>\ +% if (stash('needs_port')) { +ephemeral_port() { + comm -23 <(seq 49152 65535) <(ss -tan | awk '{print $4}' | cut -d':' -f2 | grep "[0-9]\{1,5\}" | sort | uniq) | shuf | head -n 1 +} + +% } +% if ($is_vcs_variant) { +pkgver() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame}" + echo "$(git rev-list --count HEAD).$(git rev-parse --short HEAD)" +} + +% } +build() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" +%== include 'own-project-build' +} + +% if (content_for('check_args')->size) { +check() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" +%== include 'own-project-check' +} + +% } +package() { + cd "$srcdir/${PROJECT_DIR_NAME:-$_reponame-$pkgver}" +%== include 'own-project-package' +}