47 lines
1.4 KiB
Haskell
Raw Permalink Normal View History

{-# LANGUAGE CApiFFI #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FieldSelectors #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UnboxedTuples #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-unused-imports #-}
module GarnetRs.Raw where
-- TODO this causes HLS to panic, and isn't yet supported by Ormolu/Fourmolu
-- {-# LANGUAGE ExplicitLevelImports #-}
-- import HsBindgen.Runtime.LibC qualified
-- import splice Data.List
-- import splice Data.Tuple.Extra
-- import splice HsBindgen.TH
-- import splice Language.Haskell.TH
-- import splice System.Process
-- import splice Prelude
import Data.List
import Data.Text qualified as T
import Data.Tuple.Extra
import HsBindgen.Runtime.LibC qualified
import HsBindgen.TH
import Language.Haskell.TH
import System.Process
do
systemDirs <- -- TODO bit of a hack
map (Dir . T.unpack . T.strip)
. concatMap (takeWhile (maybe False ((== ' ') . fst) . T.uncons) . dropWhile T.null . T.lines)
. drop 1
. T.splitOn "search starts here:"
. T.pack
. thd3
<$> runIO (readProcessWithExitCode "cpp" ["-v"] "")
withHsBindgen
def
{ clang = def{extraIncludeDirs = Pkg "rust/target/debug" : systemDirs}
}
def
$ hashInclude "garnet_rs.h"