mix.exs

# SPDX-FileCopyrightText: 2026 diffo-dev contributors
# SPDX-License-Identifier: Apache-2.0

defmodule Ieee1164.MixProject do
  use Mix.Project

  def project do
    [
      app: :ieee1164,
      version: "0.1.0",
      elixir: "~> 1.18",
      description: "Knowledge about IEEE 1164 — the nine-value logic standard at the heart of VHDL simulation.",
      start_permanent: Mix.env() == :prod,
      deps: deps(),
      docs: docs(),
      package: package(),
      usage_rules: usage_rules()
    ]
  end

        defp usage_rules do
        # Example for those using claude.
        [
          file: "CLAUDE.md",
          # rules to include directly in CLAUDE.md
          usage_rules: ["usage_rules:all"],
          skills: [
            location: ".claude/skills",
            # build skills that combine multiple usage rules
            build: [
              artefactory: [
                description: "Use this skill working when working with Artefact or Artefactory (doing Artefacture)",
                usage_rules: [:artefact]
              ]
            ]
          ]
        ]
      end

  def application do
    [
      extra_applications: [:logger]
    ]
  end

  defp deps do
    [
      {:usage_rules, "~> 1.0", only: [:dev]},
      {:artefact_kino, "~> 0.3"},
      {:artefact, "~> 0.3"},
      {:ex_doc, "~> 0.34", only: :dev, runtime: false},
      {:igniter, "~> 0.6", only: [:dev, :test]}
    ]
  end

  defp package do
    [
      name: "ieee1164",
      licenses: ["Apache-2.0"],
      links: %{
        "GitHub" => "https://github.com/diffo-dev/ieee1164",
        "HexDocs" => "https://hexdocs.pm/ieee1164"
      },
      files: ~w(lib priv/diffo/ieee1164 images docs
                mix.exs README.md CHANGELOG.md NOTICE.md LICENSES)
    ]
  end

  defp docs do
    [
      main: "readme",
      assets: %{"images" => "images"},
      extras: [
        "README.md": [title: "README"],
        "CHANGELOG.md": [title: "Changelog"],
        "NOTICE.md": [title: "Notice"],
        "docs/mix_tasks.md": [title: "Mix Tasks"],
        "docs/backgrounds.md": [title: "Print Specifications"]
      ],
      groups_for_extras: [
        Guides: ["docs/mix_tasks.md", "docs/backgrounds.md"]
      ]
    ]
  end
end