{% set version = "8.6.8" %}
{% set maj_min = ".".join(version.split(".")[:2]) %}

package:
  name: tk
  version: {{ version }}

source:
  - url: https://downloads.sourceforge.net/tcl/tcl{{ version }}-src.tar.gz
    folder: tcl{{ version }}
    sha256: c43cb0c1518ce42b00e7c8f6eaddd5195c53a98f94adc717234a65cbcfd3f96a
  - url: https://downloads.sourceforge.net/tcl/tk{{ version }}-src.tar.gz
    folder: tk{{ version }}
    sha256: 49e7bca08dde95195a27f594f7c850b088be357a7c7096e44e1158c7a5fd7b33
    patches:
      # https://trac.macports.org/ticket/55649
      - patch-macosx-tkMacOSXXStubs.c.diff  # [osx]

build:
  number: 0
  detect_binary_files_with_prefix: true
  run_exports:
    # pin to major.minor because library names have that info in them
    - {{ pin_subpackage('tk', max_pin='x.x') }}

requirements:
  build:
    - {{ compiler('c') }}
    - {{ cdt('xorg-x11-proto-devel') }}  # [linux]
    - {{ cdt('libx11-devel') }}          # [linux]
    - {{ cdt('libxcb') }}                # [linux]
    - {{ cdt('libxau') }}                # [linux]
    - make                               # [linux]
  host:
    - zlib  # [unix]

test:

  files:
    - hello.tcl

  commands:
    # Check for binaries.
    {% for ver_suffix in ["", maj_min] %}
    - test -f "${PREFIX}/bin/tclsh{{ ver_suffix }}"                                            # [unix]
    - test -f "${PREFIX}/bin/wish{{ ver_suffix }}"                                             # [unix]
    - if not exist %LIBRARY_PREFIX%\\bin\\wish{{ ver_suffix.replace(".", "") }}.exe exit 1     # [win]
    - if not exist %LIBRARY_PREFIX%\\bin\\tclsh{{ ver_suffix.replace(".", "") }}.exe exit 1    # [win]
    {% endfor %}

    # Check for includes.
    {% set tcl_tk_includes = [
            "tcl",
            "tclDecls",
            "tclPlatDecls",
            "tclPlatDecls",
            "tclTomMathDecls",
            "tclTomMath",
            "tk",
            "tkDecls",
            "tkPlatDecls"
    ] %}
    {% for each_tcl_tk_include in tcl_tk_includes %}
    - test -f "${PREFIX}/include/{{ each_tcl_tk_include }}.h"                        # [unix]
    - if not exist %LIBRARY_PREFIX%\\include\\{{ each_tcl_tk_include }}.h exit 1     # [win]
    {% endfor %}

    # Check for libraries.
    # Library naming note: t means "full thread support" in Windows
    #    https://sourceforge.net/p/tcl/mailman/tcl-bugs/thread/From_noreply@sourceforge.net_Mon_Jul_23_11:46:16_2012/
    {% set tcl_tk_libs = [
            "tcl",
            "tk"
    ] %}
    {% for each_tcl_tk_lib in tcl_tk_libs %}
    - test -f "${PREFIX}/lib/lib{{ each_tcl_tk_lib }}{{ maj_min }}.dylib"                                        # [osx]
    - test -f "${PREFIX}/lib/lib{{ each_tcl_tk_lib }}{{ maj_min }}.so"                                           # [linux]
    - test -f "${PREFIX}/lib/lib{{ each_tcl_tk_lib }}stub{{ maj_min }}.a"                                        # [unix]
    - if not exist %LIBRARY_PREFIX%\\lib\\{{ each_tcl_tk_lib }}{{ maj_min.replace(".", "") }}t.lib exit 1         # [win]
    - if not exist %LIBRARY_PREFIX%\\bin\\{{ each_tcl_tk_lib }}{{ maj_min.replace(".", "") }}t.dll exit 1         # [win]
    - if not exist %LIBRARY_PREFIX%\\lib\\{{ each_tcl_tk_lib }}stub{{ maj_min.replace(".", "") }}.lib exit 1     # [win]
    {% endfor %}

    # Check commands work and run a simple program.
    - tclsh hello.tcl
    - tclsh{{ maj_min }} hello.tcl                       # [unix]
    - tclsh{{ maj_min.replace(".", "") }} hello.tcl      # [win]
    # wish requires X11:
    # wish: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
    # The time has come to figure out how to handle missing system dependencies. cc @msarahan
    # - wish hello.tcl
    # - wish{{ maj_min }} hello.tcl                      # [unix]
    - wish{{ maj_min.replace(".", "") }}t hello.tcl      # [win]

about:
  home: http://www.tcl.tk/
  license: Tcl/Tk
  license_family: BSD
  summary: A dynamic programming language with GUI support.  Bundles Tcl and Tk.

extra:
  recipe-maintainers:
    - jakirkham
    - jjhelmus
    - msarahan
    - pelson
    - mingwandroid
