on master help sign in
Add the idris icon to the windows build
commitf1c6f25e70a5790709065f6b5f0c8e63218c6d97 authorNiklas Larsson <niklas@mm.st> dateSun 24 Jan 2016, 22:10 (11 years ago) parent4e5474a
3 files changed+24
Setup.hs+20 icons/idris_icon.rc+1 idris.cabal+3
Setup.hs+20
@@ -10,6 +10,7 @@ import Distribution.Simple.LocalBuildInfo as L
1010import qualified Distribution.Simple.Setup as S
1111import qualified Distribution.Simple.Program as P
1212import Distribution.Simple.Utils (createDirectoryIfMissingVerbose, rewriteFile)
13+import Distribution.Compiler
1314import Distribution.PackageDescription
1415import Distribution.Text
1516
@@ -45,6 +46,9 @@ mymake = "make"
4546make verbosity =
4647 P.runProgramInvocation verbosity . P.simpleProgramInvocation mymake
4748
49+#ifdef mingw32_HOST_OS
50+windres verbosity = P.runProgramInvocation verbosity . P.simpleProgramInvocation "windres"
51+#endif
4852-- -----------------------------------------------------------------------------
4953-- Flags
5054
@@ -198,6 +202,21 @@ getVersion args flags = do
198202 let buildinfo = (emptyBuildInfo { cppOptions = ["-DVERSION="++hash] }) :: BuildInfo
199203 return (Just buildinfo, [])
200204
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+
201220idrisBuild _ flags _ local = unless (execOnly (configFlags local)) $ do
202221 buildStdLib
203222 buildRTS
@@ -247,6 +266,7 @@ idrisInstall verbosity copy pkg local = unless (execOnly (configFlags local)) $
247266main = defaultMainWithHooks $ simpleUserHooks
248267 { postClean = idrisClean
249268 , postConf = idrisConfigure
269+ , preBuild = idrisPreBuild
250270 , postBuild = idrisBuild
251271 , postCopy = \_ flags pkg local ->
252272 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:
788788 benchmarks/trivial/sortvec.idr
789789 benchmarks/trivial/sortvec.ipkg
790790
791+ icons/idris_icon.rc
792+ icons/idris.ico
793+
791794source-repository head
792795 type: git
793796 location: git://github.com/idris-lang/Idris-dev.git