# some global settings
#
-package_version = '1.5.0svn'
-package_cygwin_version = '1.5.0svn-1'
+# get version number from configure.ac so that JMarc does
+# not have to change SConstruct during lyx release
+package_version = utils.getVerFromConfigure(top_src_dir)
+package_cygwin_version = '%s-1' % package_version
boost_version = '1_33_1'
devel_version = True
'CheckCXXGlobalCstd' : utils.checkCXXGlobalCstd,
'CheckLC_MESSAGES' : utils.checkLC_MESSAGES,
'CheckIconvConst' : utils.checkIconvConst,
+ 'CheckSizeOfWChar' : utils.checkSizeOfWChar,
}
)
or (use_vc and not conf.CheckLibWithHeader('zdll', 'zlib.h', 'C')):
print 'Did not find zdll.lib or zlib.h, exiting!'
Exit(1)
- has_iconv = conf.CheckLib('iconv')
- has_libiconv = conf.CheckLib('libiconv')
- if has_iconv:
- env['ICONV_LIB'] = 'iconv'
- elif has_libiconv:
- env['ICONV_LIB'] = 'libiconv'
+ if conf.CheckLib('iconv'):
+ env['ICONV_LIB'] = ['iconv']
+ elif conf.CheckLib('libiconv'):
+ env['ICONV_LIB'] = ['libiconv']
+ elif conf.CheckFunc('iconv_open'):
+ env['ICONV_LIB'] = []
else:
print 'Did not find iconv or libiconv, exiting!'
Exit(1)
'Define if you want assertions to be enabled in the code'
),
],
+ types = [
+ ('wchar_t', 'HAVE_WCHAR_T', None),
+ ],
config_post = '''
#if defined(HAVE_OSTREAM) && defined(HAVE_LOCALE) && defined(HAVE_SSTREAM)
#ifdef __CYGWIN__
# define BOOST_POSIX 1
+# define BOOST_POSIX_API 1
+# define BOOST_POSIX_PATH 1
#endif
#define BOOST_ALL_NO_LIB 1
# check arg types of select function
(select_arg1, select_arg234, select_arg5) = conf.CheckSelectArgType()
+ # check the size of wchar_t
+ sizeof_wchar_t = conf.CheckSizeOfWChar()
+ # something wrong
+ if sizeof_wchar_t == 0:
+ print 'Error: Can not determine the size of wchar_t.'
+ Exit(1)
+
#
# create config.h
result = utils.createConfigFile(conf,
],
types = [
('std::istreambuf_iterator<std::istream>', 'HAVE_DECL_ISTREAMBUF_ITERATOR',
- '#include <streambuf>\n#include <istream>')
+ '#include <streambuf>\n#include <istream>'),
+ ('wchar_t', 'HAVE_WCHAR_T', None),
],
libs = [
('gdi32', 'HAVE_LIBGDI32'),
'libstdc++ pedantic debug mode'
),
(os.name != 'nt', 'BOOST_POSIX',
- 'Indicates to boost which API to use (posix or windows).'
+ 'Indicates to boost < 1.34 which API to use (posix or windows).'
+ ),
+ (os.name != 'nt', 'BOOST_POSIX_API',
+ 'Indicates to boost 1.34 which API to use (posix or windows).'
+ ),
+ (os.name != 'nt', 'BOOST_POSIX_PATH',
+ 'Indicates to boost 1.34 which path style to use (posix or windows).'
),
(spell_engine is not None, spell_engine,
'Spell engine to use'
"Define to the type of arg 2, 3, 4 for `select'."),
('#define SELECT_TYPE_ARG5 %s' % select_arg5,
"Define to the type of arg 5 for `select'."),
+ ('#define SIZEOF_WCHAR_T %d' % sizeof_wchar_t,
+ 'Define to be the size of type wchar_t'),
],
config_post = '''/************************************************************
** You should not need to change anything beyond this point */
),
],
extra_items = [
- ('#define HAVE_ICONV 1', 'Define if iconv or libiconv is found')
+ ('#define HAVE_ICONV 1', 'Define if iconv or libiconv is found'),
+ ('#define SIZEOF_WCHAR_T %d' % sizeof_wchar_t,
+ 'Define to be the size of type wchar_t'),
],
config_post = '#endif'
)
# this looks misplaced, but intl/libintl.h is needed by src/message.C
if env['nls'] and included_gettext:
# libgnuintl.h.in => libintl.h
+ env.Depends('$TOP_SRCDIR/intl/libintl.h', '$BUILDDIR/intl/config.h')
env.substFile('$BUILDDIR/intl/libintl.h', '$TOP_SRCDIR/intl/libgnuintl.h.in')
env.Command('$BUILDDIR/intl/libgnuintl.h', '$BUILDDIR/intl/libintl.h',
[Copy('$TARGET', '$SOURCE')])
frontend_libs = [x + qt_lib_suffix for x in qt_libs]
+system_libs = env['ICONV_LIB']
if platform_name in ['win32', 'cygwin']:
# the final link step needs stdc++ to succeed under mingw
# FIXME: shouldn't g++ automatically link to stdc++?
if use_vc:
- system_libs = [env['ICONV_LIB'], 'ole32', 'shlwapi', 'shell32', 'advapi32', 'zdll']
+ system_libs += ['ole32', 'shlwapi', 'shell32', 'advapi32', 'zdll']
else:
- system_libs = [env['ICONV_LIB'], 'shlwapi', 'stdc++', 'z']
+ system_libs += ['shlwapi', 'stdc++', 'z']
elif platform_name == 'cygwin' and env['X11']:
- system_libs = [env['ICONV_LIB'], 'GL', 'Xmu', 'Xi', 'Xrender', 'Xrandr',
+ system_libs += ['GL', 'Xmu', 'Xi', 'Xrender', 'Xrandr',
'Xcursor', 'Xft', 'freetype', 'fontconfig', 'Xext', 'X11', 'SM', 'ICE',
'resolv', 'pthread', 'z']
else:
- system_libs = [env['ICONV_LIB'], 'z']
+ system_libs += ['z']
libs = [
('HAVE_LIBGDI32', 'gdi32'),
#
print "Processing files in src/support..."
+ env.Depends('$BUILDDIR/common/support/package.C', '$BUILDDIR/common/config.h')
env.substFile('$BUILDDIR/common/support/package.C', '$TOP_SRCDIR/src/support/package.C.in')
support = env.StaticLibrary(
#
print "Processing files in src..."
+ env.Depends('$BUILDDIR/common/version.C', '$BUILDDIR/common/config.h')
env.substFile('$BUILDDIR/common/version.C', '$TOP_SRCDIR/src/version.C.in')
if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
if platform_name == 'cygwin':
# cygwin packaging requires a file /usr/share/doc/Cygwin/foot-vendor-suffix.README
- Cygwin_README = os.path.join(dest_prefix_dir, 'doc', 'Cygwin',
- '%s%s.README' % (package, package_cygwin_version))
+ Cygwin_README = os.path.join(dest_prefix_dir, 'share', 'doc', 'Cygwin',
+ '%s-%s.README' % (package, package_cygwin_version))
env.InstallAs(Cygwin_README,
os.path.join(env.subst('$TOP_SRCDIR'), 'README.cygwin'))
Alias('install', Cygwin_README)
# also a directory /usr/share/doc/lyx for README etc
- Cygwin_Doc = os.path.join(dest_prefix_dir, 'doc', package)
+ Cygwin_Doc = os.path.join(dest_prefix_dir, 'share', 'doc', package)
env.Install(Cygwin_Doc, [os.path.join(env.subst('$TOP_SRCDIR'), x) for x in \
['INSTALL', 'README', 'README.Cygwin', 'RELEASE-NOTES', 'COPYING', 'ANNOUNCE']])
Alias('install', Cygwin_Doc)
+ # cygwin fonts also need to be installed
+ Cygwin_fonts = os.path.join(share_dest_dir, 'fonts')
+ env.Install(Cygwin_fonts,
+ [env.subst('$TOP_SRCDIR/development/Win32/packaging/bakoma/%s' % file) \
+ for file in win32_bakoma_fonts])
+ Alias('install', Cygwin_fonts)
+ # we also need a post installation script
+ tmp_script = utils.installCygwinPostinstallScript('/tmp')
+ postinstall_script = os.path.join(dest_dir, 'etc', 'postinstall', 'lyx.sh')
+ env.Install(postinstall_script, tmp_script)
+ Alias('install', postinstall_script)
+
+ # subst and install lyx2lyx_version.py which is not in scons_manifest.py
+ env.Depends(share_dest_dir + '/lyx2lyx/lyx2lyx_version.py', '$BUILDDIR/common/config.h')
+ env.substFile(share_dest_dir + '/lyx2lyx/lyx2lyx_version.py',
+ '$TOP_SRCDIR/lib/lyx2lyx/lyx2lyx_version.py.in')
+ Alias('install', share_dest_dir + '/lyx2lyx/lyx2lyx_version.py')
- # lyx1.4.x does not have lyx2lyx_version.py.in
- if os.path.isfile(env.subst('$TOP_SRCDIR/lib/lyx2lyx/lyx2lyx_version.py.in')):
- # subst and install this file
- env.substFile(share_dest_dir + '/lyx2lyx/lyx2lyx_version.py',
- '$TOP_SRCDIR/lib/lyx2lyx/lyx2lyx_version.py.in')
- Alias('install', share_dest_dir + '/lyx2lyx/lyx2lyx_version.py')
# man
env.InstallAs(os.path.join(man_dest_dir, 'lyx' + version_suffix + '.1'),
env.subst('$TOP_SRCDIR/lyx.man'))