SF.net SVN: geany:[5400] trunk/wscript
eht16 at users.sourceforge.net
eht16 at xxxxx
Thu Nov 11 17:48:21 UTC 2010
Revision: 5400
http://geany.svn.sourceforge.net/geany/?rev=5400&view=rev
Author: eht16
Date: 2010-11-11 17:48:21 +0000 (Thu, 11 Nov 2010)
Log Message:
-----------
The usual Windows fixes
Modified Paths:
--------------
trunk/wscript
Modified: trunk/wscript
===================================================================
--- trunk/wscript 2010-11-11 13:43:47 UTC (rev 5399)
+++ trunk/wscript 2010-11-11 17:48:21 UTC (rev 5400)
@@ -47,7 +47,7 @@
from distutils import version
from waflib import Logs, Options, Scripting, Utils
from waflib.Configure import ConfigurationContext
-from waflib.Errors import WafError
+from waflib.Errors import ConfigurationError, WafError
from waflib.TaskGen import feature
@@ -122,12 +122,12 @@
conf.load('compiler_c')
is_win32 = _target_is_win32(conf)
- conf.check_cc(header_name='fcntl.h')
- conf.check_cc(header_name='fnmatch.h')
- conf.check_cc(header_name='glob.h')
- conf.check_cc(header_name='sys/time.h')
- conf.check_cc(header_name='sys/types.h')
- conf.check_cc(header_name='sys/stat.h')
+ conf.check_cc(header_name='fcntl.h', mandatory=False)
+ conf.check_cc(header_name='fnmatch.h', mandatory=False)
+ conf.check_cc(header_name='glob.h', mandatory=False)
+ conf.check_cc(header_name='sys/time.h', mandatory=False)
+ conf.check_cc(header_name='sys/types.h', mandatory=False)
+ conf.check_cc(header_name='sys/stat.h', mandatory=False)
conf.define('HAVE_STDLIB_H', 1) # are there systems without stdlib.h?
conf.define('STDC_HEADERS', 1) # an optimistic guess ;-)
@@ -135,19 +135,18 @@
_add_to_env_and_define(conf, 'HAVE_REGCOMP', 1)
_add_to_env_and_define(conf, 'USE_INCLUDED_REGEX', 1)
else:
- conf.check_cc(header_name='regex.h')
- if conf.env['HAVE_REGEX_H'] == 1:
+ try:
+ conf.check_cc(header_name='regex.h')
conf.check_cc(function_name='regcomp', header_name='regex.h')
- # fallback to included regex lib
- if conf.env['HAVE_REGCOMP'] != 1 or conf.env['HAVE_REGEX_H'] != 1:
- conf.define('HAVE_REGCOMP', 1)
- conf.define('USE_INCLUDED_REGEX', 1)
+ except ConfigurationError:
+ _add_to_env_and_define(conf, 'HAVE_REGCOMP', 1)
+ _add_to_env_and_define(conf, 'USE_INCLUDED_REGEX', 1)
- conf.check_cc(function_name='fgetpos', header_name='stdio.h')
- conf.check_cc(function_name='ftruncate', header_name='unistd.h')
- conf.check_cc(function_name='gethostname', header_name='unistd.h')
- conf.check_cc(function_name='mkstemp', header_name='stdlib.h')
- conf.check_cc(function_name='strstr', header_name='string.h', mandatory=True)
+ conf.check_cc(function_name='fgetpos', header_name='stdio.h', mandatory=False)
+ conf.check_cc(function_name='ftruncate', header_name='unistd.h', mandatory=False)
+ conf.check_cc(function_name='gethostname', header_name='unistd.h', mandatory=False)
+ conf.check_cc(function_name='mkstemp', header_name='stdlib.h', mandatory=False)
+ conf.check_cc(function_name='strstr', header_name='string.h')
# check sunOS socket support
if Options.platform == 'sunos':
@@ -179,6 +178,7 @@
# overwrite default prefix on Windows (tempfile.gettempdir() is the Waf default)
new_prefix = os.path.join(str(conf.root), '%s-%s' % (APPNAME, VERSION))
_add_to_env_and_define(conf, 'PREFIX', new_prefix, quote=True)
+ _add_to_env_and_define(conf, 'BINDIR', os.path.join(new_prefix, 'bin'), quote=True)
_add_to_env_and_define(conf, 'DOCDIR', os.path.join(conf.env['PREFIX'], 'doc'), quote=True)
_add_to_env_and_define(conf, 'LIBDIR', conf.env['PREFIX'], quote=True)
conf.define('LOCALEDIR', os.path.join('share' 'locale'), quote=True)
@@ -187,18 +187,8 @@
# DATADIR is defined in objidl.h, so we remove it from config.h but keep it in env
conf.undefine('DATADIR')
conf.env['DATADIR'] = os.path.join(conf.env['PREFIX'], 'data')
- # TODO
- # hack: we add the parent directory of the first include directory as this is missing in
- # list returned from pkg-config
- conf.env['CPPPATH_GTK'].insert(0, os.path.dirname(conf.env['CPPPATH_GTK'][0]))
- # we don't need -fPIC when compiling on or for Windows
- if '-fPIC' in conf.env['CFLAGS_cshlib']:
- conf.env['CFLAGS_cshlib'].remove('-fPIC')
- if '-fPIC' in conf.env['CXXFLAGS_cxxshlib']:
- conf.env['CXXFLAGS_cxxshlib'].remove('-fPIC')
- conf.env.append_value('program_LINKFLAGS', '-mwindows')
+ conf.env.append_value('LINKFLAGS_cprogram', ['-mwindows'])
conf.env.append_value('LIB_WIN32', ['wsock32', 'uuid', 'ole32', 'iberty'])
- conf.env['cshlib_PATTERN'] = '%s.dll'
else:
conf.env['cshlib_PATTERN'] = '%s.so'
# DATADIR and LOCALEDIR are defined by the intltool tool
@@ -226,11 +216,14 @@
conf.define('GETTEXT_PACKAGE', APPNAME, quote=True)
+ # no VTE on Windows
+ if is_win32:
+ conf.options.no_vte = True
+
_define_from_opt(conf, 'HAVE_PLUGINS', not conf.options.no_plugins, None)
_define_from_opt(conf, 'HAVE_SOCKET', not conf.options.no_socket, None)
_define_from_opt(conf, 'HAVE_VTE', not conf.options.no_vte, None)
- conf.env['HAVE_VTE'] = 1
conf.write_config_header('config.h', remove=False)
# some more compiler flags
@@ -336,6 +329,7 @@
geany_sources.add('src/vte.c')
if is_win32:
geany_sources.add('src/win32.c')
+ geany_sources.add('geany_private.rc')
bld.new_task_gen(
features = ['c', 'cxx', 'cprogram'],
@@ -345,8 +339,7 @@
includes = ['.', 'scintilla/include/', 'tagmanager/include/'],
defines = ['G_LOG_DOMAIN="Geany"', 'GEANY_PRIVATE'],
uselib = ['GTK', 'GIO', 'WIN32', 'SUNOS_SOCKET'],
- use = ['scintilla', 'tagmanager'],
- add_objects = 'geany-rc' if is_win32 else None)
+ use = ['scintilla', 'tagmanager'])
# geanyfunctions.h
bld.new_task_gen(
@@ -375,7 +368,7 @@
appname = 'geany')
# geany.pc
- bld.new_task_gen(
+ task = bld.new_task_gen(
source = 'geany.pc.in',
dct = {'VERSION' : VERSION,
'prefix': bld.env['PREFIX'],
@@ -385,15 +378,8 @@
'datarootdir': '${prefix}/share',
'datadir': '${datarootdir}',
'localedir': '${datarootdir}/locale'})
- # TODO test this on win32
- #install_path = None if is_win32 else '${LIBDIR}/pkgconfig')
- if is_win32:
- bld.new_task_gen(
- features = 'c',
- name = 'geany-rc',
- source = 'geany_private.rc')
- else:
+ if not is_win32:
# geany.desktop
if bld.env['INTLTOOL']:
bld.new_task_gen(
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list