packages feed

opencv-0.0.0.0: opencv.cabal

name:          opencv
version:       0.0.0.0
homepage:      https://github.com/LumiGuide/haskell-opencv
license:       BSD3
license-file:  LICENSE
author:        Roel van Dijk <roel@lambdacube.nl>, Bas van Dijk <v.dijk.bas@gmail.com>
maintainer:    Roel van Dijk <roel@lambdacube.nl>, Bas van Dijk <v.dijk.bas@gmail.com>
build-type:    Custom
cabal-version: >=1.23
category:      AI, Graphics
synopsis:      Haskell binding to OpenCV-3.x
description:   This is a Haskell library providing a binding to OpenCV-3.x.
               It binds directly with the C++ API using the @inline-c@ Haskell library.
               .
               The library is far from complete but the framework is there to easily
               bind missing functionality.

extra-source-files:
    data/*.png
    data/*.jpg

extra-doc-files:
    doc/generated/*.png
    doc/generated/examples/*.png
    doc/generated/examples/*.gif
    doc/color_conversions.png

flag internal-documentation
    description: Enables documentation generation for internal modules.
    default: False
    manual: True

custom-setup
    setup-depends: base, Cabal

library
    hs-source-dirs: src
    include-dirs: include
    install-includes:
      haskell_opencv_matx_typedefs.hpp
      hsc_macros.hpp
      namespace.hpp
      orb.hpp
      simple_blob_detector.hpp
      termcriteria.hpp
      video_motion_analysis.hpp

    c-sources:
        src/OpenCV/Calib3d.cpp
      , src/OpenCV/Core/ArrayOps.cpp
      , src/OpenCV/Core/Types.cpp
      , src/OpenCV/Core/Types/Mat.cpp
      , src/OpenCV/Core/Types/Mat/Repa.cpp
      , src/OpenCV/Core/Types/Matx.cpp
      , src/OpenCV/Core/Types/Point.cpp
      , src/OpenCV/Core/Types/Rect.cpp
      , src/OpenCV/Core/Types/Size.cpp
      , src/OpenCV/Core/Types/Vec.cpp
      , src/OpenCV/Features2d.cpp
      , src/OpenCV/HighGui.cpp
      , src/OpenCV/ImgCodecs.cpp
      , src/OpenCV/ImgProc/ColorMaps.cpp
      , src/OpenCV/ImgProc/Drawing.cpp
      , src/OpenCV/ImgProc/FeatureDetection.cpp
      , src/OpenCV/ImgProc/GeometricImgTransform.cpp
      , src/OpenCV/ImgProc/ImgFiltering.cpp
      , src/OpenCV/ImgProc/MiscImgTransform.cpp
      , src/OpenCV/ImgProc/ObjectDetection.cpp
      , src/OpenCV/ImgProc/StructuralAnalysis.cpp
      , src/OpenCV/ImgProc/CascadeClassifier.cpp
      , src/OpenCV/Internal/Core/Types.cpp
      , src/OpenCV/Internal/Core/Types/Mat.cpp
      , src/OpenCV/Internal/Core/Types/Mat/ToFrom.cpp
      , src/OpenCV/Internal/Exception.cpp
      , src/OpenCV/Photo.cpp
      , src/OpenCV/Video.cpp
      , src/OpenCV/VideoIO/VideoCapture.cpp
      , src/OpenCV/VideoIO/VideoWriter.cpp
      , src/OpenCV/Video/MotionAnalysis.cpp

    cc-options: -Wall -std=c++11
    ghc-options: -Wall -fwarn-incomplete-patterns -funbox-strict-fields -O2
    if flag(internal-documentation)
        cpp-options: -DENABLE_INTERNAL_DOCUMENTATION

    build-depends:
        aeson             >= 0.9.0.1
      , base              >= 4.8     && <5
      , base64-bytestring >= 1.0.0.1
      , bindings-DSL      >= 1.0.23
      , bytestring        >= 0.10.6
      , containers        >= 0.5.6.2
      , data-default      >= 0.7.1.1
      , deepseq           >= 1.4.1.1
      , inline-c          >= 0.5.5.5
      , inline-c-cpp      >= 0.1
      , JuicyPixels       >= 3.2.8.1
      , linear            >= 1.20.4
      , primitive         >= 0.6.1
      , repa              >= 3.4.0.2
      , template-haskell  >= 2.10
      , text              >= 1.2.2.1
      , transformers      >= 0.4.2
      , vector            >= 0.11

    exposed-modules:
        OpenCV
        OpenCV.Calib3d
        OpenCV.Core.ArrayOps
        OpenCV.Core.Types
        OpenCV.Core.Types.Mat
        OpenCV.Core.Types.Mat.HMat
        OpenCV.Core.Types.Mat.Repa
        OpenCV.Core.Types.Matx
        OpenCV.Core.Types.Point
        OpenCV.Core.Types.Rect
        OpenCV.Core.Types.Size
        OpenCV.Core.Types.Vec
        OpenCV.Exception
        OpenCV.Features2d
        OpenCV.HighGui
        OpenCV.ImgCodecs
        OpenCV.ImgProc.ColorMaps
        OpenCV.ImgProc.Drawing
        OpenCV.ImgProc.FeatureDetection
        OpenCV.ImgProc.GeometricImgTransform
        OpenCV.ImgProc.ImgFiltering
        OpenCV.ImgProc.MiscImgTransform
        OpenCV.ImgProc.MiscImgTransform.ColorCodes
        OpenCV.ImgProc.ObjectDetection
        OpenCV.ImgProc.StructuralAnalysis
        OpenCV.ImgProc.Types
        OpenCV.ImgProc.CascadeClassifier
        OpenCV.JSON
        OpenCV.Photo
        OpenCV.TypeLevel
        OpenCV.Unsafe
        OpenCV.Video
        OpenCV.Video.MotionAnalysis
        OpenCV.VideoIO.Types
        OpenCV.VideoIO.VideoCapture
        OpenCV.VideoIO.VideoWriter

        OpenCV.Internal
        OpenCV.Internal.Mutable
        OpenCV.Internal.C.Inline
        OpenCV.Internal.C.PlacementNew
        OpenCV.Internal.C.PlacementNew.TH
        OpenCV.Internal.C.Types
        OpenCV.Internal.Calib3d.Constants
        OpenCV.Internal.Core.ArrayOps
        OpenCV.Internal.Core.Types
        OpenCV.Internal.Core.Types.Constants
        OpenCV.Internal.Core.Types.Mat
        OpenCV.Internal.Core.Types.Mat.Depth
        OpenCV.Internal.Core.Types.Mat.HMat
        OpenCV.Internal.Core.Types.Mat.Marshal
        OpenCV.Internal.Core.Types.Mat.ToFrom
        OpenCV.Internal.Core.Types.Matx
        OpenCV.Internal.Core.Types.Matx.TH
        OpenCV.Internal.Core.Types.Point
        OpenCV.Internal.Core.Types.Point.TH
        OpenCV.Internal.Core.Types.Rect
        OpenCV.Internal.Core.Types.Rect.TH
        OpenCV.Internal.Core.Types.Size
        OpenCV.Internal.Core.Types.Size.TH
        OpenCV.Internal.Core.Types.Vec
        OpenCV.Internal.Core.Types.Vec.TH
        OpenCV.Internal.Exception
        OpenCV.Internal.ImgCodecs
        OpenCV.Internal.ImgProc.MiscImgTransform
        OpenCV.Internal.ImgProc.MiscImgTransform.TypeLevel
        OpenCV.Internal.ImgProc.MiscImgTransform.ColorCodes
        OpenCV.Internal.ImgProc.Types
        OpenCV.Internal.Photo.Constants
        OpenCV.Internal.VideoIO.Constants
        OpenCV.Internal.VideoIO.Types
        OpenCV.Juicy

    default-extensions:
        BangPatterns
        DataKinds
        FlexibleContexts
        FlexibleInstances
        LambdaCase
        OverloadedStrings
        PackageImports
        PolyKinds
        ScopedTypeVariables
        TupleSections
        TypeFamilies
        TypeOperators

    default-language:   Haskell2010
    pkgconfig-depends:  opencv
    extra-libraries:    stdc++

test-suite doc-images-opencv
    type: exitcode-stdio-1.0
    hs-source-dirs: doc
    main-is: images.hs
    other-modules: ExampleExtractor
                   Language.Haskell.Meta.Syntax.Translate
    default-language: Haskell2010
    ghc-options: -Wall -fwarn-incomplete-patterns -threaded -funbox-strict-fields -O2 -rtsopts
    build-depends:
        base              >= 4.8 && < 5
      , bytestring        >= 0.10.6
      , containers        >= 0.5.6.2
      , data-default      >= 0.7.1.1
      , directory         >= 1.2.2
      , Glob              >= 0.7.5
      , haskell-src-exts  >= 1.18.2
      , JuicyPixels       >= 3.2.8.1
      , linear            >= 1.20.4
      , opencv            == 0.0.0
      , primitive         >= 0.6.1
      , template-haskell  >= 2.10
      , text              >= 1.2.2.1
      , transformers      >= 0.4.2
      , vector            >= 0.11

    default-extensions:
        BangPatterns
        DataKinds
        LambdaCase
        OverloadedStrings
        PackageImports
        PolyKinds
        ScopedTypeVariables
        TupleSections
        TypeFamilies
        TypeOperators

test-suite test-opencv
    type:             exitcode-stdio-1.0
    hs-source-dirs:   test
    main-is:          test.hs
    default-language: Haskell2010
    ghc-options:      -Wall -fwarn-incomplete-patterns -threaded -funbox-strict-fields -O2 -rtsopts
    build-depends:
        base              >= 4.8 && < 5
      , bytestring        >= 0.10.6
      , lens              >= 4.13
      , linear            >= 1.20.4
      , opencv            == 0.0.0
      , QuickCheck        >= 2.8.2
      , repa              >= 3.4.0.2
      , tasty             >= 0.11.0.2
      , tasty-hunit       >= 0.9.2
      , tasty-quickcheck  >= 0.8.4
      , transformers      >= 0.4.2
      , vector            >= 0.11

    default-extensions:
        DataKinds
        FlexibleContexts
        PackageImports
        RankNTypes
        ScopedTypeVariables
        TypeOperators

benchmark bench-opencv
    type:             exitcode-stdio-1.0
    hs-source-dirs:   bench
    main-is:          bench.hs
    default-language: Haskell2010
    ghc-options: -Wall -fwarn-incomplete-patterns -threaded -funbox-strict-fields -O2 -rtsopts
    build-depends:
        base              >= 4.8 && < 5
      , bytestring        >= 0.10.6
      , criterion         >= 1.1.1
      , opencv            == 0.0.0
      , repa              >= 3.4.0.2

    default-extensions:
        DataKinds
        PackageImports