on master help sign in
Merge pull request #2912 from melted/link_icon
b3b7bb7Niklas Larsson
Setup.hs+20
@@ -10,6 +10,7 @@ import Distribution.Simple.LocalBuildInfo as L
10import qualified Distribution.Simple.Setup as S
10import qualified Distribution.Simple.Setup as S
11import qualified Distribution.Simple.Program as P
11import qualified Distribution.Simple.Program as P
12import Distribution.Simple.Utils (createDirectoryIfMissingVerbose, rewriteFile)
12import Distribution.Simple.Utils (createDirectoryIfMissingVerbose, rewriteFile)
13+import Distribution.Compiler
13import Distribution.PackageDescription
14import Distribution.PackageDescription
14import Distribution.Text
15import Distribution.Text
15
16
@@ -45,6 +46,9 @@ mymake = "make"
45make verbosity =
46make verbosity =
46 P.runProgramInvocation verbosity . P.simpleProgramInvocation mymake
47 P.runProgramInvocation verbosity . P.simpleProgramInvocation mymake
47
48
49+#ifdef mingw32_HOST_OS
50+windres verbosity = P.runProgramInvocation verbosity . P.simpleProgramInvocation "windres"
51+#endif
48-- -----------------------------------------------------------------------------
52-- -----------------------------------------------------------------------------
49-- Flags
53-- Flags
50
54
@@ -198,6 +202,21 @@ getVersion args flags = do
198 let buildinfo = (emptyBuildInfo { cppOptions = ["-DVERSION="++hash] }) :: BuildInfo
202 let buildinfo = (emptyBuildInfo { cppOptions = ["-DVERSION="++hash] }) :: BuildInfo
199 return (Just buildinfo, [])
203 return (Just buildinfo, [])
200
204
205+
206+
207+idrisPreBuild args flags = do
208+#ifdef mingw32_HOST_OS
209+ createDirectoryIfMissing True dir
210+ windres verbosity ["icons/idris_icon.rc","-o", dir++"idris_icon.o"]
211+ return (Nothing, [("idris", emptyBuildInfo { ldOptions = [dir ++ "idris_icon.o"] })])
212+ where
213+ verbosity = S.fromFlag $ S.buildVerbosity flags
214+ dir = dirPref
215+ dirPref = S.fromFlagOrDefault "dist" $ S.buildDistPref flags
216+#else
217+ return (Nothing, [])
218+#endif
219+
201idrisBuild _ flags _ local = unless (execOnly (configFlags local)) $ do
220idrisBuild _ flags _ local = unless (execOnly (configFlags local)) $ do
202 buildStdLib
221 buildStdLib
203 buildRTS
222 buildRTS
@@ -247,6 +266,7 @@ idrisInstall verbosity copy pkg local = unless (execOnly (configFlags local)) $
247main = defaultMainWithHooks $ simpleUserHooks
266main = defaultMainWithHooks $ simpleUserHooks
248 { postClean = idrisClean
267 { postClean = idrisClean
249 , postConf = idrisConfigure
268 , postConf = idrisConfigure
269+ , preBuild = idrisPreBuild
250 , postBuild = idrisBuild
270 , postBuild = idrisBuild
251 , postCopy = \_ flags pkg local ->
271 , postCopy = \_ flags pkg local ->
252 idrisInstall (S.fromFlag $ S.copyVerbosity flags)
272 idrisInstall (S.fromFlag $ S.copyVerbosity flags)
icons/idris_icon.rcnew file+1
@@ -0,0 +1 @@
1+0 ICON "idris.ico"
idris.cabal+3
@@ -788,6 +788,9 @@ Extra-source-files:
788 benchmarks/trivial/sortvec.idr
788 benchmarks/trivial/sortvec.idr
789 benchmarks/trivial/sortvec.ipkg
789 benchmarks/trivial/sortvec.ipkg
790
790
791+ icons/idris_icon.rc
792+ icons/idris.ico
793+
791source-repository head
794source-repository head
792 type: git
795 type: git
793 location: git://github.com/idris-lang/Idris-dev.git
796 location: git://github.com/idris-lang/Idris-dev.git