packages feed

fficxx-0.4: sample/mysample-generator/MySampleGen.hs

{-# LANGUAGE ScopedTypeVariables #-}

import           FFICXX.Generate.Builder
import           FFICXX.Generate.Type.Class
import           FFICXX.Generate.Type.Module
import           FFICXX.Generate.Type.PackageInterface

incs = [ AddCInc "test.h" "//test ok?" ]

srcs = [ AddCSrc "test.cpp" "//test ok??" ]


mycabal = Cabal { cabal_pkgname = "MySample"
                , cabal_cheaderprefix = "MySample"
                , cabal_moduleprefix = "MySample"
                , cabal_additional_c_incs = incs
                , cabal_additional_c_srcs = srcs
                }

mycabalattr = 
    CabalAttr 
    { cabalattr_license = Just "BSD3"
    , cabalattr_licensefile = Just "LICENSE"
    , cabalattr_extraincludedirs = []
    , cabalattr_extralibdirs = []
    , cabalattr_extrafiles = []
    }


myclass = Class mycabal

a :: Class
a = myclass "A" [] mempty Nothing
    [ Constructor [] Nothing
    , Virtual void_ "method1" [ ] Nothing
    ]

b :: Class
b = myclass "B" [a] mempty Nothing
    [ Constructor [] Nothing
    , Virtual (cppclass_ a) "method2" [ cppclass a "x" ] Nothing
    ]

myclasses = [ a, b]

toplevelfunctions = [ ]


main :: IO ()
main = do 
  simpleBuilder "MySample" [] (mycabal,mycabalattr,myclasses,toplevelfunctions,[]) [ ] []