on master help sign in
Check for duplicates when adding object files/libs/flags
966ef43Edwin Brady
src/Idris/AbsSyntax.hs+4−4
@@ -37,19 +37,19 @@ getObjectFiles :: Codegen -> Idris [FilePath]
37getObjectFiles tgt = do i <- getIState; return (forCodegen tgt $ idris_objs i)
37getObjectFiles tgt = do i <- getIState; return (forCodegen tgt $ idris_objs i)
38
38
39addObjectFile :: Codegen -> FilePath -> Idris ()
39addObjectFile :: Codegen -> FilePath -> Idris ()
40−addObjectFile tgt f = do i <- getIState; putIState $ i { idris_objs = (tgt, f) : idris_objs i }
40+addObjectFile tgt f = do i <- getIState; putIState $ i { idris_objs = nub $ (tgt, f) : idris_objs i }
41
41
42getLibs :: Codegen -> Idris [String]
42getLibs :: Codegen -> Idris [String]
43getLibs tgt = do i <- getIState; return (forCodegen tgt $ idris_libs i)
43getLibs tgt = do i <- getIState; return (forCodegen tgt $ idris_libs i)
44
44
45addLib :: Codegen -> String -> Idris ()
45addLib :: Codegen -> String -> Idris ()
46−addLib tgt f = do i <- getIState; putIState $ i { idris_libs = (tgt, f) : idris_libs i }
46+addLib tgt f = do i <- getIState; putIState $ i { idris_libs = nub $ (tgt, f) : idris_libs i }
47
47
48getFlags :: Codegen -> Idris [String]
48getFlags :: Codegen -> Idris [String]
49getFlags tgt = do i <- getIState; return (forCodegen tgt $ idris_cgflags i)
49getFlags tgt = do i <- getIState; return (forCodegen tgt $ idris_cgflags i)
50
50
51addFlag :: Codegen -> String -> Idris ()
51addFlag :: Codegen -> String -> Idris ()
52−addFlag tgt f = do i <- getIState; putIState $ i { idris_cgflags = (tgt, f) : idris_cgflags i }
52+addFlag tgt f = do i <- getIState; putIState $ i { idris_cgflags = nub $ (tgt, f) : idris_cgflags i }
53
53
54addDyLib :: [String] -> Idris (Either DynamicLib String)
54addDyLib :: [String] -> Idris (Either DynamicLib String)
55addDyLib libs = do i <- getIState
55addDyLib libs = do i <- getIState
@@ -62,7 +62,7 @@ addDyLib libs = do i <- getIState
62 return (Left x)
62 return (Left x)
63
63
64addHdr :: Codegen -> String -> Idris ()
64addHdr :: Codegen -> String -> Idris ()
65−addHdr tgt f = do i <- getIState; putIState $ i { idris_hdrs = (tgt, f) : idris_hdrs i }
65+addHdr tgt f = do i <- getIState; putIState $ i { idris_hdrs = nub $ (tgt, f) : idris_hdrs i }
66
66
67addLangExt :: LanguageExt -> Idris ()
67addLangExt :: LanguageExt -> Idris ()
68addLangExt TypeProviders = do i <- getIState ; putIState $ i { idris_language_extensions = [TypeProviders] }
68addLangExt TypeProviders = do i <- getIState ; putIState $ i { idris_language_extensions = [TypeProviders] }