clashilator 0.1.3 → 0.1.4
raw patch · 2 files changed
+23/−8 lines, 2 files
Files
- clashilator.cabal +1/−1
- src/Clash/Clashilator/Setup.hs +22/−7
clashilator.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: clashilator-version: 0.1.3+version: 0.1.4 synopsis: Automated Clash to Verilator bridge description: Code generator and @Setup.hs@ hooks to generate a Verilator simulation and access it from Clash category: Hardware, Development
src/Clash/Clashilator/Setup.hs view
@@ -21,6 +21,9 @@ import Distribution.Verbosity import Distribution.ModuleName import Distribution.Types.UnqualComponentName+#if MIN_VERSION_Cabal(3,8,0)+import Distribution.Utils.Path+#endif import Distribution.Types.Lens import Control.Lens hiding ((<.>))@@ -28,16 +31,29 @@ import Data.Maybe (fromMaybe) import System.FilePath import GHC (Ghc)-#if MIN_VERSION_ghc(9,0,0)+#if MIN_VERSION_ghc(9,4,0)+#elif MIN_VERSION_ghc(9,0,0)+#define RESET_LINKER import GHC (getSession, setSession)-import GHC.Driver.Types (HscEnv (..))+import GHC.Driver.Types (HscEnv(..)) import GHC.Runtime.Linker #elif MIN_VERSION_ghc(8,10,0)+#define RESET_LINKER import GHC (getSession, setSession)-import HscTypes (HscEnv (..))+import HscTypes (HscEnv(..)) import Linker #endif +#if !MIN_VERSION_Cabal(3,8,0)+type SymbolicPath from to = FilePath++getSymbolicPath :: SymbolicPath from to -> FilePath+getSymbolicPath = id++unsafeMakeSymbolicPath :: FilePath -> SymbolicPath from to+unsafeMakeSymbolicPath = id+#endif+ lookupX :: String -> BuildInfo -> Maybe String lookupX key buildInfo = lookup ("x-clashilator-" <> key) (view customFieldsBI buildInfo) @@ -105,7 +121,6 @@ compileFlags = [ "-fPIC"- , "-pgml c++" ] ldFlags =@@ -122,7 +137,7 @@ & extraLibs %~ ("stdc++":) & options %~ fixupOptions (compileFlags++) & ldOptions %~ (ldFlags++)- & hsSourceDirs %~ (incDir:)+ & hsSourceDirs %~ (unsafeMakeSymbolicPath incDir:) & otherModules %~ (fromString "Clash.Clashilator.FFI":) where verbosity = fromFlagOrDefault normal (buildVerbosity flags)@@ -130,7 +145,7 @@ clk = lookup "x-clashilator-clock" $ view customFieldsBI buildInfo -- TODO: Maybe we could add extra source dirs from "x-clashilator-source-dirs"?- srcDirs = view hsSourceDirs buildInfo+ srcDirs = getSymbolicPath <$> view hsSourceDirs buildInfo outDir = case compName of Nothing -> buildDir lbi Just name -> buildDir lbi </> unUnqualComponentName name@@ -139,7 +154,7 @@ clashilate :: LocalBuildInfo -> BuildFlags -> Component -> IO BuildInfo clashilate lbi flags c = do-#if MIN_VERSION_ghc(8,10,0)+#ifdef RESET_LINKER linker <- uninitializedLinker let startAction = do env <- getSession