# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 name alex version 3.5.4.0 revision 0 categories devel haskell maintainers nomaintainer license GPL-3 platforms macosx homepage https://www.haskell.org/alex/ description A tool for generating lexical analysers in Haskell long_description Alex is a tool for generating lexical analysers in \ Haskell. It takes a description of tokens based \ on regular expressions and generates a Haskell \ module containing code for scanning text \ efficiently. It is similar to the tool lex or flex \ for C/C++. checksums rmd160 68dbb0092ae6f9d4bf6e3884693a01c541e9d769 \ sha256 a9ea70f2c4900e685312cf330d1fe955a3e8f00acd1328d463ae150481d28ade \ size 94220 # relative paths to ${prefix} set alex_datadir share/${name} set build_store_root {} set build_store_dirname {} set build_alex_datadir {} # Fix for cabal data-files hardcoded path in binary # See: # https://github.com/commercialhaskell/stack/issues/848 # https://github.com/commercialhaskell/stack/issues/4857 # https://github.com/haskell/cabal/issues/462 # https://github.com/haskell/cabal/issues/3586 post-extract { xinstall -m 0644 -W ${worksrcpath} \ ${filespath}/Paths_NAME.hs ./src/Paths_${name}.hs reinplace "s|@PREFIX@|${prefix}|g" \ ${worksrcpath}/src/Paths_${name}.hs reinplace "s|@NAME@|${name}|g" \ ${worksrcpath}/src/Paths_${name}.hs reinplace -E "s|(Version\[\[:space:\]\]+)\\\[\[\[:digit:\]\]+(,\[\[:digit:\]\]+){1,4}\\\]|\\1\[[join [split ${version} .] ,]\]|" \ ${worksrcpath}/src/Paths_${name}.hs } variant stack \ description {Use stack to build.} {} if { [variant_isset "stack"] } { PortGroup haskell_stack 1.0 post-extract { if {[geteuid] == 0} { xinstall -o ${macportsuser} -d \ "[option haskell_stack.stack_root]" } else { xinstall -d \ "[option haskell_stack.stack_root]" } } set build_store_root ${worksrcpath}/.stack-work set build_store_dirname "${name}-${version}" } else { PortGroup haskell_cabal 1.0 variant haskell_cabal_use_prebuilt \ description {Use prebuilt cabal and ghc. This is a necessary\ default variant because alex is used to bootstrap ghc\ and ghc is used to bootstrap cabal.} { haskell_cabal.use_prebuilt yes } default_variants-append \ +haskell_cabal_use_prebuilt set build_store_root ${haskell_cabal.cabal_root}/store set build_store_dirname share build.post_args-append \ --bindir=${prefix}/bin \ --datadir=${prefix}/share/${name} } post-destroot { if {[geteuid] == 0} { xinstall -o ${macportsuser} -d \ ${destroot}${prefix}/${alex_datadir} } else { xinstall -d ${destroot}${prefix}/${alex_datadir} } # find cabal data-files fs-traverse f ${build_store_root} { if { [file isdirectory ${f}] && [file tail ${f}] eq ${build_store_dirname}} { set build_alex_datadir ${f} break } } xinstall -m 0644 {*}[glob ${build_alex_datadir}/*.hs] \ ${destroot}${prefix}/${alex_datadir} }