# -*- ruby -*-
#
# Copyright (C) 2011-2018  Ruby-GNOME2 Project Team
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

$LOAD_PATH.unshift("./../glib2/lib")
require "gnome2/rake/package-task"

package_name = File.basename(__dir__)
spec = Gem::Specification.load("#{package_name}.gemspec")

GNOME2::Rake::PackageTask.define(spec, __dir__) do |package|
  package.windows.packages = []
  package.windows.dependencies = []
  package.windows.build_dependencies = [
    "glib2",
    "gobject-introspection",
    "cairo-gobject",
  ]
  package.external_packages = [
    {
      :name => "icu",
      :download_site => :icu,
      :label => "ICU",
      :version => "58.2",
      :base_name => "icu",
      :archive_base_name => lambda do |package|
        archive_base_name_version = package.version.gsub(".", "_")
        "icu4c-#{archive_base_name_version}-src.tgz"
      end,
      :compression_method => "gz",
      :base_dir_in_package => "source",
      :windows => {
        :configure_args => [
          "--with-cross-build=#{package.package.tmp_dir}/native/icu/icu/source",
          "CPPFLAGS=-DU_USE_STRTOD_L=0",
        ],
        :built_file => "bin/icu-config",
      },
      :native => {
        :build => true,
        :configure_args => [
          "CPPFLAGS=-DU_USE_STRTOD_L=0",
        ],
        :built_file => "bin/icu-config",
      },
    },
    {
      :name => "harfbuzz",
      :download_site => :freedesktop,
      :label => "HarfBuzz",
      :version => "1.8.5",
      :compression_method => "bz2",
      :windows => {
        :configure_args => [
        ],
        :patches => [
        ],
        :built_file => "bin/libharfbuzz-0.dll",
      },
    },
    {
      :name => "graphene",
      :download_site => :gnome,
      :label => "Graphene",
      :version => "1.8.2",
      :compression_method => "xz",
      :windows => {
        :meson_args => [
          "-Dtests=false",
          "-Dbenchmarks=false",
        ],
        :patches => [
          "graphene-disable-werror-float-conversion.diff",
        ],
        :built_file => "bin/libgraphene-1.0-0.dll",
      },
    },
    {
      :name => "fribidi/fribidi",
      :download_site => :github,
      :label => "FriBidi",
      :version => "v1.0.5",
      :compression_method => "bz2",
      :windows => {
        :configure_args => [
          "--disable-docs",
        ],
        :built_file => "bin/libfribidi-0.dll",
      },
    },
    {
      :name => "pango",
      :download_site => :gnome,
      :label => "Pango",
      :version => "1.42.3",
      :compression_method => "xz",
      :windows => {
        :configure_args => [
          "--enable-introspection",
        ],
        :built_file => "bin/libpango-1.0-0.dll",
      },
    },
  ]
end
