tools.deploy.windows: embed icon.ico from deployed vocab dir into deployed exe
parent
f1d6082738
commit
b1160f6b36
|
@ -1,11 +1,15 @@
|
|||
! Copyright (C) 2007, 2009 Slava Pestov.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: io io.files io.pathnames io.directories io.encodings.ascii kernel namespaces
|
||||
USING: io io.encodings.binary io.files io.pathnames io.directories
|
||||
io.encodings.ascii kernel namespaces
|
||||
sequences locals system splitting tools.deploy.backend
|
||||
tools.deploy.config tools.deploy.config.editor assocs hashtables
|
||||
prettyprint combinators windows.shell32 windows.user32 ;
|
||||
prettyprint combinators windows.kernel32 windows.shell32 windows.user32
|
||||
alien.c-types vocabs.metadata vocabs.loader ;
|
||||
IN: tools.deploy.windows
|
||||
|
||||
CONSTANT: app-icon-resource-id "APPICON"
|
||||
|
||||
: copy-dll ( bundle-name -- )
|
||||
"resource:factor.dll" swap copy-file-into ;
|
||||
|
||||
|
@ -18,12 +22,26 @@ IN: tools.deploy.windows
|
|||
dup copy-dll
|
||||
deploy-ui? get ".exe" ".com" ? copy-vm ;
|
||||
|
||||
:: (embed-ico) ( vm ico-bytes -- )
|
||||
vm 0 BeginUpdateResource :> hUpdate
|
||||
hUpdate [
|
||||
hUpdate RT_ICON app-icon-resource-id 0 ico-bytes dup byte-length
|
||||
UpdateResource drop
|
||||
hUpdate 0 EndUpdateResource drop
|
||||
] when ;
|
||||
|
||||
: embed-ico ( vm vocab -- )
|
||||
dup vocab-windows-icon-path vocab-append-path dup exists?
|
||||
[ binary file-contents (embed-ico) ]
|
||||
[ 2drop ] if ;
|
||||
|
||||
M: winnt deploy*
|
||||
"resource:" [
|
||||
dup deploy-config [
|
||||
deploy-name get
|
||||
{
|
||||
[ create-exe-dir ]
|
||||
[ create-exe-dir dup ]
|
||||
[ drop embed-ico ]
|
||||
[ image-name ]
|
||||
[ drop namespace make-deploy-image ]
|
||||
[ nip "" copy-resources ]
|
||||
|
|
Loading…
Reference in New Issue