Create Win32 icon and resorce and build it into the executable
This commit is contained in:
parent
8ad4e3585f
commit
087a579450
3 changed files with 54 additions and 0 deletions
2
data/midori.rc
Normal file
2
data/midori.rc
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
|
||||||
|
IDR_MAINFRAME ICON DISCARDABLE "../_build_/default/data/midori.ico"
|
|
@ -27,5 +27,7 @@ obj = bld.new_task_gen ('cc', 'program')
|
||||||
obj.target = 'midori'
|
obj.target = 'midori'
|
||||||
obj.includes = '. .. ../panels'
|
obj.includes = '. .. ../panels'
|
||||||
obj.source = 'main.c'
|
obj.source = 'main.c'
|
||||||
|
if bld.env['WINRC']:
|
||||||
|
obj.source += ' ../data/midori.rc'
|
||||||
obj.uselib = 'UNIQUE LIBSOUP GMODULE GTHREAD GIO GTK SQLITE WEBKIT LIBXML'
|
obj.uselib = 'UNIQUE LIBSOUP GMODULE GTHREAD GIO GTK SQLITE WEBKIT LIBXML'
|
||||||
obj.uselib_local = 'panels'
|
obj.uselib_local = 'panels'
|
||||||
|
|
50
wscript
50
wscript
|
@ -19,6 +19,9 @@ import Utils
|
||||||
import pproc as subprocess
|
import pproc as subprocess
|
||||||
import os
|
import os
|
||||||
import UnitTest
|
import UnitTest
|
||||||
|
import Task
|
||||||
|
from TaskGen import extension
|
||||||
|
import misc
|
||||||
|
|
||||||
major = 0
|
major = 0
|
||||||
minor = 1
|
minor = 1
|
||||||
|
@ -52,6 +55,16 @@ def is_mingw (env):
|
||||||
return cc.find ('mingw') != -1# or cc.find ('wine') != -1
|
return cc.find ('mingw') != -1# or cc.find ('wine') != -1
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# Compile Win32 res files to (resource) object files
|
||||||
|
@extension ('.rc')
|
||||||
|
def rc_file(self, node):
|
||||||
|
rctask = self.create_task ('winrc')
|
||||||
|
rctask.set_inputs (node)
|
||||||
|
rctask.set_outputs (node.change_ext ('.rc.o'))
|
||||||
|
self.compiled_tasks.append (rctask)
|
||||||
|
Task.simple_task_type ('winrc', '${WINRC} -o${TGT} ${SRC}', color='BLUE',
|
||||||
|
before='cc cxx', shell=False)
|
||||||
|
|
||||||
def configure (conf):
|
def configure (conf):
|
||||||
def option_checkfatal (option, desc):
|
def option_checkfatal (option, desc):
|
||||||
if hasattr (Options.options, 'enable_' + option):
|
if hasattr (Options.options, 'enable_' + option):
|
||||||
|
@ -96,10 +109,17 @@ def configure (conf):
|
||||||
nls = 'no '
|
nls = 'no '
|
||||||
conf.define ('ENABLE_NLS', [0,1][nls == 'yes'])
|
conf.define ('ENABLE_NLS', [0,1][nls == 'yes'])
|
||||||
|
|
||||||
|
if is_mingw (conf.env) or Options.platform == 'win32':
|
||||||
|
if not conf.find_program ('convert', var='CONVERT'):
|
||||||
|
Utils.pprint ('YELLOW', 'midori.ico won\'t be created')
|
||||||
|
conf.find_program ('windres', var='WINRC')
|
||||||
|
|
||||||
# This is specific to cross compiling with mingw
|
# This is specific to cross compiling with mingw
|
||||||
if is_mingw (conf.env) and Options.platform != 'win32':
|
if is_mingw (conf.env) and Options.platform != 'win32':
|
||||||
if not 'AR' in os.environ and not 'RANLIB' in os.environ:
|
if not 'AR' in os.environ and not 'RANLIB' in os.environ:
|
||||||
conf.env['AR'] = os.environ['CC'][:-3] + 'ar'
|
conf.env['AR'] = os.environ['CC'][:-3] + 'ar'
|
||||||
|
if conf.find_program (os.environ['CC'][:-3] + 'windres', var='WINRC'):
|
||||||
|
os.environ['WINRC'] = os.environ['CC'][:-3] + 'windres'
|
||||||
Options.platform = 'win32'
|
Options.platform = 'win32'
|
||||||
# Make sure we don't have -fPIC in the CCFLAGS
|
# Make sure we don't have -fPIC in the CCFLAGS
|
||||||
conf.env["shlib_CCFLAGS"] = []
|
conf.env["shlib_CCFLAGS"] = []
|
||||||
|
@ -112,6 +132,9 @@ def configure (conf):
|
||||||
|
|
||||||
Utils.pprint ('BLUE', 'Mingw recognized, assuming cross compile.')
|
Utils.pprint ('BLUE', 'Mingw recognized, assuming cross compile.')
|
||||||
|
|
||||||
|
if conf.env['CONVERT'] and not conf.env['WINRC']:
|
||||||
|
Utils.pprint ('YELLOW', 'midori.ico won\'t be created')
|
||||||
|
|
||||||
dirname_default ('LIBDIR', os.path.join (conf.env['PREFIX'], 'lib'))
|
dirname_default ('LIBDIR', os.path.join (conf.env['PREFIX'], 'lib'))
|
||||||
if conf.env['PREFIX'] == '/usr':
|
if conf.env['PREFIX'] == '/usr':
|
||||||
dirname_default ('SYSCONFDIR', '/etc')
|
dirname_default ('SYSCONFDIR', '/etc')
|
||||||
|
@ -314,6 +337,33 @@ def set_options (opt):
|
||||||
add_enable_option ('hildon', 'Maemo integration', group, disable=not is_maemo ())
|
add_enable_option ('hildon', 'Maemo integration', group, disable=not is_maemo ())
|
||||||
|
|
||||||
def build (bld):
|
def build (bld):
|
||||||
|
def image_to_win32ico (task):
|
||||||
|
'Converts an image to a Win32 ico'
|
||||||
|
|
||||||
|
if not os.path.exists (bld.env['CONVERT']):
|
||||||
|
return 1
|
||||||
|
|
||||||
|
infile = task.inputs[0].abspath (task.env)
|
||||||
|
outfile = task.outputs[0].abspath (task.env)
|
||||||
|
command = bld.env['CONVERT'] + ' -background transparent \
|
||||||
|
-geometry 32x32 -extent 32x32 ' + \
|
||||||
|
infile + ' ' + outfile
|
||||||
|
if Utils.exec_command (command):
|
||||||
|
return 1
|
||||||
|
|
||||||
|
if task.chmod:
|
||||||
|
os.chmod (outfile, task.chmod)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
if bld.env['WINRC']:
|
||||||
|
obj = bld.new_task_gen ('copy',
|
||||||
|
fun = image_to_win32ico,
|
||||||
|
source = 'icons/scalable/midori.svg',
|
||||||
|
target = 'data/midori.ico',
|
||||||
|
before = 'cc')
|
||||||
|
|
||||||
|
bld.add_group ()
|
||||||
|
|
||||||
bld.add_subdirs ('katze midori icons')
|
bld.add_subdirs ('katze midori icons')
|
||||||
|
|
||||||
if bld.env['addons']:
|
if bld.env['addons']:
|
||||||
|
|
Loading…
Reference in a new issue