From 8e72ff3a1cfba60de2d5f2a9549d715075d0b684 Mon Sep 17 00:00:00 2001 From: krasimir Date: Tue, 23 Jun 2009 11:44:36 +0000 Subject: [PATCH] added preCopy and postCopy hooks in Setup.hs --- Setup.hs | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/Setup.hs b/Setup.hs index 504c35345..420720adb 100644 --- a/Setup.hs +++ b/Setup.hs @@ -5,7 +5,7 @@ import Distribution.Simple.LocalBuildInfo import Distribution.Simple.BuildPaths import Distribution.Simple.Utils import Distribution.Simple.Setup -import Distribution.PackageDescription +import Distribution.PackageDescription hiding (Flag) import Control.Monad import Data.Maybe import System.IO @@ -21,6 +21,8 @@ main = defaultMainWithHooks simpleUserHooks{ preBuild =checkRGLArgs , postBuild=buildRGL , preInst =checkRGLArgs , postInst =installRGL + , preCopy =checkRGLArgs + , postCopy =copyRGL , sDistHook=sdistRGL , runTests =testRGL } @@ -88,12 +90,20 @@ installRGL args flags pkg lbi = do let mode = getOptMode args let inst_gf_lib_dir = datadir (absoluteInstallDirs pkg lbi NoCopyDest) "lib" copyAll mode (getRGLBuildDir lbi mode) (inst_gf_lib_dir getRGLBuildSubDir lbi mode) - where - copyAll mode from to = do - putStrLn $ "Installing [" ++ show mode ++ "] " ++ to - createDirectoryIfMissing True to - files <- fmap (drop 2) $ getDirectoryContents from - mapM_ (\file -> copyFile (from file) (to file)) files + +copyRGL args flags pkg lbi = do + let mode = getOptMode args + dest = case copyDest flags of + NoFlag -> NoCopyDest + Flag d -> d + let inst_gf_lib_dir = datadir (absoluteInstallDirs pkg lbi dest) "lib" + copyAll mode (getRGLBuildDir lbi mode) (inst_gf_lib_dir getRGLBuildSubDir lbi mode) + +copyAll mode from to = do + putStrLn $ "Installing [" ++ show mode ++ "] " ++ to + createDirectoryIfMissing True to + files <- fmap (drop 2) $ getDirectoryContents from + mapM_ (\file -> copyFile (from file) (to file)) files sdistRGL pkg mb_lbi hooks flags = do paths <- getRGLFiles rgl_dir []