From f1c6f25e70a5790709065f6b5f0c8e63218c6d97 Mon Sep 17 00:00:00 2001 From: Niklas Larsson Date: Sun, 24 Jan 2016 22:10:40 +0100 Subject: [PATCH] Add the idris icon to the windows build --- Setup.hs | 20 ++++++++++++++++++++ icons/idris_icon.rc | 1 + idris.cabal | 3 +++ 3 files changed, 24 insertions(+) create mode 100644 icons/idris_icon.rc diff --git a/Setup.hs b/Setup.hs index f1d8303ad..890400570 100644 --- a/Setup.hs +++ b/Setup.hs @@ -10,6 +10,7 @@ import Distribution.Simple.LocalBuildInfo as L import qualified Distribution.Simple.Setup as S import qualified Distribution.Simple.Program as P import Distribution.Simple.Utils (createDirectoryIfMissingVerbose, rewriteFile) +import Distribution.Compiler import Distribution.PackageDescription import Distribution.Text @@ -45,6 +46,9 @@ mymake = "make" make verbosity = P.runProgramInvocation verbosity . P.simpleProgramInvocation mymake +#ifdef mingw32_HOST_OS +windres verbosity = P.runProgramInvocation verbosity . P.simpleProgramInvocation "windres" +#endif -- ----------------------------------------------------------------------------- -- Flags @@ -198,6 +202,21 @@ getVersion args flags = do let buildinfo = (emptyBuildInfo { cppOptions = ["-DVERSION="++hash] }) :: BuildInfo return (Just buildinfo, []) + + +idrisPreBuild args flags = do +#ifdef mingw32_HOST_OS + createDirectoryIfMissing True dir + windres verbosity ["icons/idris_icon.rc","-o", dir++"idris_icon.o"] + return (Nothing, [("idris", emptyBuildInfo { ldOptions = [dir ++ "idris_icon.o"] })]) + where + verbosity = S.fromFlag $ S.buildVerbosity flags + dir = dirPref + dirPref = S.fromFlagOrDefault "dist" $ S.buildDistPref flags +#else + return (Nothing, []) +#endif + idrisBuild _ flags _ local = unless (execOnly (configFlags local)) $ do buildStdLib buildRTS @@ -247,6 +266,7 @@ idrisInstall verbosity copy pkg local = unless (execOnly (configFlags local)) $ main = defaultMainWithHooks $ simpleUserHooks { postClean = idrisClean , postConf = idrisConfigure + , preBuild = idrisPreBuild , postBuild = idrisBuild , postCopy = \_ flags pkg local -> idrisInstall (S.fromFlag $ S.copyVerbosity flags) diff --git a/icons/idris_icon.rc b/icons/idris_icon.rc new file mode 100644 index 000000000..c7ffd8f1a --- /dev/null +++ b/icons/idris_icon.rc @@ -0,0 +1 @@ +0 ICON "idris.ico" diff --git a/idris.cabal b/idris.cabal index 910e4d1bf..fd77de1a7 100644 --- a/idris.cabal +++ b/idris.cabal @@ -788,6 +788,9 @@ Extra-source-files: benchmarks/trivial/sortvec.idr benchmarks/trivial/sortvec.ipkg + icons/idris_icon.rc + icons/idris.ico + source-repository head type: git location: git://github.com/idris-lang/Idris-dev.git