packages feed

hsqml-0.3.6.1: hsqml.cabal

cabal-version:      3.8
Name:               hsqml
Version:            0.3.6.1
Build-type:         Custom
License:            BSD-3-Clause
License-file:       LICENSE
Copyright:          (c) 2010-2018 Robin KAY, (c) 2025 Sascha-Oliver Prolic
Author:             Robin KAY, Sascha-Oliver Prolic
Maintainer:         saschaprolic@googlemail.com
Stability:          experimental
Homepage:           http://www.gekkou.co.uk/software/hsqml/
Category:           Graphics, GUI
Synopsis:           Haskell binding for Qt Quick

tested-with: GHC ==9.4.8 || ==9.6.6 || ==9.8.4 || ==9.10.2 || ==9.12.2

Extra-source-files:
    README.md
    cbits/*.cpp cbits/*.h test/Graphics/QML/Test/*.hs

Extra-doc-files:
    CHANGELOG

Description:
    A Haskell binding for Qt Quick, a cross-platform framework for creating
    graphical user interfaces. For further information on installing and using
    this library, please see the project's web site.

Source-repository head
    type:     git
    location: https://github.com/prolic/HsQML

Flag UsePkgConfig
    Description:
        Use pkg-config for libraries instead of the platform default mechanism.
    Default: False

Flag ThreadedTestSuite
    Description:
        Build test executable with the threaded RTS.
    Default: True

Flag ForceGHCiLib
    Description:
        Force enable GHCi workaround library if not using shared libraries.
    Default: True

Flag UseExitHook
    Description:
        Override the OnExitHook symbol to shutdown the Qt framework on exit.
    Default: True

Flag EnableQmlDebugging
    Description:
        Allow the QML debug server to be enabled via Qt arguments.
    Default: False

Custom-Setup
    Setup-depends:
        base             == 4.*,
        template-haskell == 2.*,
        Cabal            >= 3.8 && < 4.0,
        filepath         >= 1.4.300 && < 1.5

common extensions
  default-extensions:
    NoPolyKinds
    TypeOperators

  default-language:   GHC2021

common ghc-options
  ghc-options:
    -Wall -Wcompat -Widentities -Wincomplete-record-updates
    -Wincomplete-uni-patterns -Wpartial-fields -Wredundant-constraints
    -fhide-source-paths -Wno-unused-do-bind -fshow-hole-constraints
    -Wno-unticked-promoted-constructors

Library
    import: extensions
    import: ghc-options
    Build-depends:
        base         == 4.*,
        bytestring   >= 0.11.5 && < 0.12,
        containers   >= 0.7 && < 0.9,
        directory    >= 1.3.9 && < 1.4,
        filepath     >= 1.4.300 && < 1.5,
        text         >= 2.1.2 && < 2.2,
        tagged       >= 0.8.9 && < 0.9,
        transformers >= 0.6.2 && < 0.7,
        QuickCheck >= 2.16.0 && < 2.17,
    Exposed-modules:
        Graphics.QML
        Graphics.QML.Debug
        Graphics.QML.Canvas
        Graphics.QML.Engine
        Graphics.QML.Marshal
        Graphics.QML.Model
        Graphics.QML.Objects
        Graphics.QML.Objects.ParamNames
        Graphics.QML.Objects.Weak
    Other-modules:
        Graphics.QML.Internal.BindPrim
        Graphics.QML.Internal.BindCanvas
        Graphics.QML.Internal.BindObj
        Graphics.QML.Internal.BindCore
        Graphics.QML.Internal.JobQueue
        Graphics.QML.Internal.Marshal
        Graphics.QML.Internal.MetaObj
        Graphics.QML.Internal.Objects
        Graphics.QML.Internal.Types
    Hs-source-dirs: src
    C-sources:
        cbits/Canvas.cpp
        cbits/Class.cpp
        cbits/ClipboardHelper.cpp
        cbits/Engine.cpp
        cbits/HighDpiScaling.cpp
        cbits/Intrinsics.cpp
        cbits/Manager.cpp
        cbits/Model.cpp
        cbits/Object.cpp
    Include-dirs: cbits
    X-moc-headers:
        cbits/Canvas.h
        cbits/ClipboardHelper.h
        cbits/Engine.h
        cbits/HighDpiScaling.h
        cbits/Manager.h
        cbits/Model.h
    CC-options: --std=c++11
    X-separate-cbits: True
    build-tool-depends: c2hs:c2hs
    if flag(ForceGHCiLib)
        X-force-ghci-lib: True
    if flag(UseExitHook)
        CC-options: -DHSQML_USE_EXIT_HOOK
    if flag(EnableQmlDebugging)
        CC-options: -DQT_QML_DEBUG_NO_WARNING
    if os(windows) && !flag(UsePkgConfig)
        Include-dirs: /QT_ROOT/include
        Extra-libraries:
            Qt5Core, Qt5Gui, Qt5Widgets, Qt5Network, Qt5Qml, Qt5Quick, stdc++
        Extra-lib-dirs: /SYS_ROOT/bin /QT_ROOT/bin
        if impl(ghc < 7.8)
            -- Pre-7.8 GHCi can't load eh_frame sections
            GHC-options: -optc-fno-asynchronous-unwind-tables
    else
        if os(darwin) && !flag(UsePkgConfig)
            Frameworks: QtCore QtGui QtWidgets QtNetwork QtQml QtQuick
            CC-options: -F /QT_ROOT/lib
            Extra-framework-dirs: /QT_ROOT/lib
        else
            Pkgconfig-depends:
                Qt5Core    >= 5.0 && < 6.0,
                Qt5Gui     >= 5.0 && < 6.0,
                Qt5Widgets >= 5.0 && < 6.0,
                Qt5Network >= 5.0 && < 6.0,
                Qt5Qml     >= 5.0 && < 6.0,
                Qt5Quick   >= 5.0 && < 6.0
        Extra-libraries: stdc++

Test-Suite hsqml-test1
    import: extensions
    import: ghc-options
    Type: exitcode-stdio-1.0
    Hs-source-dirs: test
    Main-is: Test1.hs
    Build-depends:
        base       == 4.*,
        containers >= 0.7 && < 0.9,
        directory  >= 1.3.9 && < 1.4,
        text       >= 2.1.2 && < 2.2,
        tagged     >= 0.8.9 && < 0.9,
        QuickCheck >= 2.16.0 && < 2.17,
        hsqml
    Other-modules:
        Graphics.QML.Test.AutoListTest
        Graphics.QML.Test.DataTest
        Graphics.QML.Test.Framework
        Graphics.QML.Test.Harness
        Graphics.QML.Test.MayGen
        Graphics.QML.Test.MixedTest
        Graphics.QML.Test.ScriptDSL
        Graphics.QML.Test.SignalTest
        Graphics.QML.Test.SimpleTest
        Graphics.QML.Test.TestObject
    if os(darwin) && !flag(UsePkgConfig)
        -- Library not registered yet
        GHC-options: -hide-option-framework-path /QT_ROOT/lib
    if flag(ThreadedTestSuite)
        GHC-options: -threaded