make windows installer builder include libmagic files when present, but skip otherwise
This commit is contained in:
parent
aed64428d5
commit
3baef37caf
2 changed files with 21 additions and 8 deletions
|
@ -9,11 +9,15 @@
|
||||||
- for that.
|
- for that.
|
||||||
-
|
-
|
||||||
- To build the installer, git-annex should already be built to
|
- To build the installer, git-annex should already be built to
|
||||||
- ./git-annex.exe and the necessary utility programs
|
- ./git-annex.exe, then run this program.
|
||||||
- (specifically rsync)
|
|
||||||
- already installed in PATH from msys32.
|
|
||||||
-
|
-
|
||||||
- Copyright 2013-2015 Joey Hess <id@joeyh.name>
|
- A build of libmagic will also be included in the installer, if its files
|
||||||
|
- are found in the current directory:
|
||||||
|
- ./magic.mgc ./libmagic-1.dll ./libgnurx-0.dll
|
||||||
|
- To build git-annex to usse libmagic, it has to be built with the
|
||||||
|
- magicmime build flag turned on.
|
||||||
|
-
|
||||||
|
- Copyright 2013-2020 Joey Hess <id@joeyh.name>
|
||||||
-
|
-
|
||||||
- Licensed under the GNU AGPL version 3 or higher.
|
- Licensed under the GNU AGPL version 3 or higher.
|
||||||
-}
|
-}
|
||||||
|
@ -42,7 +46,8 @@ main = do
|
||||||
withTmpDir "nsis-build" $ \tmpdir -> do
|
withTmpDir "nsis-build" $ \tmpdir -> do
|
||||||
let gitannex = tmpdir </> gitannexprogram
|
let gitannex = tmpdir </> gitannexprogram
|
||||||
mustSucceed "ln" [File "git-annex.exe", File gitannex]
|
mustSucceed "ln" [File "git-annex.exe", File gitannex]
|
||||||
mapM_ (\f -> mustSucceed "ln" [File f, File (tmpdir </> f)]) (magicDLLs ++ magicShare)
|
magicDLLs' <- installwhenpresent magicDLLs
|
||||||
|
magicShare' <- installwhenpresent magicShare
|
||||||
let license = tmpdir </> licensefile
|
let license = tmpdir </> licensefile
|
||||||
mustSucceed "sh" [Param "-c", Param $ "zcat standalone/licences.gz > '" ++ license ++ "'"]
|
mustSucceed "sh" [Param "-c", Param $ "zcat standalone/licences.gz > '" ++ license ++ "'"]
|
||||||
webappscript <- vbsLauncher tmpdir "git-annex-webapp" "git annex webapp"
|
webappscript <- vbsLauncher tmpdir "git-annex-webapp" "git annex webapp"
|
||||||
|
@ -52,7 +57,7 @@ main = do
|
||||||
let gitannexcmd = tmpdir </> "git-annex.cmd"
|
let gitannexcmd = tmpdir </> "git-annex.cmd"
|
||||||
writeFile gitannexcmd "git annex %*"
|
writeFile gitannexcmd "git annex %*"
|
||||||
writeFile nsifile $ makeInstaller
|
writeFile nsifile $ makeInstaller
|
||||||
gitannex gitannexcmd license htmlhelp (winPrograms ++ magicDLLs) magicShare
|
gitannex gitannexcmd license htmlhelp (winPrograms ++ magicDLLs') magicShare'
|
||||||
[ webappscript, autostartscript ]
|
[ webappscript, autostartscript ]
|
||||||
mustSucceed "makensis" [File nsifile]
|
mustSucceed "makensis" [File nsifile]
|
||||||
removeFile nsifile -- left behind if makensis fails
|
removeFile nsifile -- left behind if makensis fails
|
||||||
|
@ -63,6 +68,15 @@ main = do
|
||||||
case r of
|
case r of
|
||||||
True -> return ()
|
True -> return ()
|
||||||
False -> error $ cmd ++ " failed"
|
False -> error $ cmd ++ " failed"
|
||||||
|
installwhenpresent fs = do
|
||||||
|
fs' <- forM fs $ \f -> do
|
||||||
|
present <- doesFileExist f
|
||||||
|
if present
|
||||||
|
then do
|
||||||
|
mustSucceed "ln" [File f, File (tmpdir </> f)]
|
||||||
|
return (Just f)
|
||||||
|
else return Nothing
|
||||||
|
return (catMaybes fs')
|
||||||
|
|
||||||
{- Generates a .vbs launcher which runs a command without any visible DOS
|
{- Generates a .vbs launcher which runs a command without any visible DOS
|
||||||
- box. It expects to be passed the directory where git-annex is installed. -}
|
- box. It expects to be passed the directory where git-annex is installed. -}
|
||||||
|
|
|
@ -26,5 +26,4 @@ tree, run "stack build" to download and
|
||||||
build all dependencies and git-annex. "stack install" will install git-annex.
|
build all dependencies and git-annex. "stack install" will install git-annex.
|
||||||
|
|
||||||
(To build the git-annex installer, you also need to install the NullSoft
|
(To build the git-annex installer, you also need to install the NullSoft
|
||||||
installer system. The script `standalone/windows/build.sh` is
|
installer system, see Build/NullSoftInstaller.hs for details.)
|
||||||
used to make the builds linked to above.)
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue