{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
-- |
-- Module      : Data.Array.Accelerate.LLVM.Native.Compile.Cache
-- Copyright   : [2017..2020] The Accelerate Team
-- License     : BSD3
--
-- Maintainer  : Trevor L. McDonell <trevor.mcdonell@gmail.com>
-- Stability   : experimental
-- Portability : non-portable (GHC extensions)
--

module Data.Array.Accelerate.LLVM.Native.Compile.Cache (

  module Data.Array.Accelerate.LLVM.Compile.Cache

) where

import Data.Array.Accelerate.LLVM.Compile.Cache
import Data.Array.Accelerate.LLVM.Native.Target

import Data.Version
import System.FilePath
import qualified Data.ByteString.Char8                              as B8
import qualified Data.ByteString.Short.Char8                        as S8

import Paths_accelerate_llvm_native


instance Persistent Native where
  targetCacheTemplate :: LLVM Native FilePath
targetCacheTemplate =
    FilePath -> LLVM Native FilePath
forall (m :: * -> *) a. Monad m => a -> m a
return (FilePath -> LLVM Native FilePath)
-> FilePath -> LLVM Native FilePath
forall a b. (a -> b) -> a -> b
$ FilePath
"accelerate-llvm-native-" FilePath -> FilePath -> FilePath
forall a. [a] -> [a] -> [a]
++ Version -> FilePath
showVersion Version
version
         FilePath -> FilePath -> FilePath
</> FilePath
"llvm-hs-" FilePath -> FilePath -> FilePath
forall a. [a] -> [a] -> [a]
++ VERSION_llvm_hs
         FilePath -> FilePath -> FilePath
</> ShortByteString -> FilePath
S8.unpack ShortByteString
nativeTargetTriple
         FilePath -> FilePath -> FilePath
</> ByteString -> FilePath
B8.unpack ByteString
nativeCPUName
         FilePath -> FilePath -> FilePath
</> FilePath
"meep.o"