import os, sys, copy, cPickle, glob, time
+# determine where I am ...
+#
+from SCons.Node.FS import default_fs
+# default_fs.SConstruct_dir is where SConstruct file is located.
+scons_dir = default_fs.SConstruct_dir.path
+scons_absdir = default_fs.SConstruct_dir.abspath
+
+# if SConstruct is copied to the top source directory
+if os.path.exists(os.path.join(scons_dir, 'development', 'scons', 'scons_manifest.py')):
+ scons_dir = os.path.join(scons_dir, 'development', 'scons')
+ scons_absdir = os.path.join(scons_absdir, 'development', 'scons')
+# get the ../.. of scons_dir
+top_src_dir = os.path.split(os.path.split(scons_absdir)[0])[0]
+
+sys.path.extend([scons_absdir, os.path.join(top_src_dir, 'lib', 'doc')])
+import depend
+
# scons_utils.py defines a few utility function
import scons_utils as utils
# import all file lists
print "Scons >= 0.96.92 is required."
Exit(1)
-# determine where I am ...
-#
-from SCons.Node.FS import default_fs
-# default_fs.SConstruct_dir is where SConstruct file is located.
-scons_dir = default_fs.SConstruct_dir.path
-# get the ../.. of scons_dir
-top_src_dir = os.path.split(os.path.split(default_fs.SConstruct_dir.abspath)[0])[0]
-sys.path.append(os.path.join(top_src_dir, 'lib', 'doc'))
-import depend
#----------------------------------------------------------
# Global definitions
#
# 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_version, lyx_date = utils.getVerFromConfigure(top_src_dir)
package_cygwin_version = '%s-1' % package_version
boost_version = ['1_34']
# BoolOption('pch', 'Whether or not use pch', False),
# enable assertion, (config.h has ENABLE_ASSERTIOS
BoolOption('assertions', 'Use assertions', True),
- # enable warning, (config.h has WITH_WARNINGS)
- # default to False since MSVC does not have #warning
- BoolOption('warnings', 'Use warnings', False),
# config.h define _GLIBCXX_CONCEPT_CHECKS
# Note: for earlier version of gcc (3.3) define _GLIBCPP_CONCEPT_CHECKS
BoolOption('concept_checks', 'Enable concept checks', True),
# TOP_SRCDIR, LOCALEDIR, LYX_DIR, PROGRAM_SUFFIX
# lib/lyx2lyx/lyx2lyx_version.py.in
# PACKAGE_VERSION
-# src/version.cpp.in
-# PACKAGE_VERSION, LYX_DATE, VERSION_INFO
# full path name is used to build msvs project files
# and to replace TOP_SRCDIR in package.C
env['TOP_SRCDIR'] = Dir(top_src_dir).abspath
-# needed by src/version.cpp.in => src/version.cpp
-env['PACKAGE_VERSION'] = package_version
-env['LYX_DATE'] = time.asctime()
# determine share_dir etc
packaging_method = env.get('packaging')
}
)
+# When using msvc, windows.h is required
+if use_vc and not conf.CheckCHeader('windows.h'):
+ print 'Windows.h is not found. Please install Windows Platform SDK.'
+ print 'Please check config.log for more information.'
+ Exit(1)
+
# pkg-config? (if not, we use hard-coded options)
if conf.CheckPkgConfig('0.15.0'):
env['HAS_PKG_CONFIG'] = True
if (not use_vc and not conf.CheckLibWithHeader('z', 'zlib.h', 'C')) \
or (use_vc and not conf.CheckLibWithHeader('zdll', 'zlib.h', 'C')):
print 'Did not find zdll.lib or zlib.h, exiting!'
+ print 'Please check config.log for more information.'
Exit(1)
if conf.CheckLib('iconv'):
env['ICONV_LIB'] = 'iconv'
env['ICONV_LIB'] = None
else:
print 'Did not find iconv or libiconv, exiting!'
+ print 'Please check config.log for more information.'
Exit(1)
# check socket libs
* implements this with the help of libc, or whether it has own code
* does not matter for us, because we don't use libc directly (Georg)
*/
-#if defined(HAVE_WCHAR_T) && SIZEOF_WCHAR_T == 4 && ! defined(__FREEBSD__)
+#if defined(HAVE_WCHAR_T) && SIZEOF_WCHAR_T == 4 && !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__)
# define USE_WCHAR_T
#endif
print "Warning: Can not locate any spell checker"
elif spell_opt != 'no':
print "Warning: Can not locate specified spell checker:", spell_opt
+ print 'Please check config.log for more information.'
Exit(1)
# check arg types of select function
# something wrong
if sizeof_wchar_t == 0:
print 'Error: Can not determine the size of wchar_t.'
+ print 'Please check config.log for more information.'
Exit(1)
+
+# fill in the version info
+env['VERSION_INFO'] = '''Configuration
+ Host type: %s
+ Special build flags: %s
+ C Compiler: %s
+ C Compiler flags: %s %s
+ C++ Compiler: %s
+ C++ Compiler LyX flags: %s
+ C++ Compiler flags: %s %s
+ Linker flags: %s
+ Linker user flags: %s
+Build info:
+ Builing directory: %s
+ Local library directory: %s
+ Libraries paths: %s
+ Boost libraries: %s
+ include search path: %s
+Frontend:
+ Frontend: %s
+ Packaging: %s
+ LyX dir: %s
+ LyX files dir: %s
+''' % (platform_name,
+ env.subst('$CCFLAGS'), env.subst('$CC'),
+ env.subst('$CPPFLAGS'), env.subst('$CFLAGS'),
+ env.subst('$CXX'), env.subst('$CXXFLAGS'),
+ env.subst('$CPPFLAGS'), env.subst('$CXXFLAGS'),
+ env.subst('$LINKFLAGS'), env.subst('$LINKFLAGS'),
+ env.subst('$BUILDDIR'), env.subst('$LOCALLIBPATH'),
+ str(env['LIBPATH']), str(boost_libraries),
+ str(env['CPPPATH']),
+ frontend, packaging_method,
+ prefix, env['LYX_DIR'])
+
#
# create config.h
result = utils.createConfigFile(conf,
('mktemp', 'HAVE_MKTEMP', None),
('mkstemp', 'HAVE_MKSTEMP', None),
('strerror', 'HAVE_STRERROR', None),
- ('count', 'HAVE_STD_COUNT', '''
-#include <algorithm>
-int count()
-{
-char a[] = "hello";
-return std::count(a, a+5, 'l');
-}
-'''),
('getcwd', 'HAVE_GETCWD', None),
('setenv', 'HAVE_SETENV', None),
('putenv', 'HAVE_PUTENV', None),
'HAVE_GETTEXT',
'Define to 1 if using system gettext library'
),
- (env.has_key('warnings') and env['warnings'],
- 'WITH_WARNINGS',
- 'Define this if you want to see the warning directives put here and there by the developpers to get attention'
- ),
(env.has_key('concept_checks') and env['concept_checks'],
'_GLIBCXX_CONCEPT_CHECKS',
'libstdc++ concept checking'
'Define to the one symbol short name of this package.'),
('#define PACKAGE_VERSION "%s"' % package_version,
'Define to the version of this package.'),
+ ('#define VERSION_INFO "%s"' % env['VERSION_INFO'].replace('\n', '\\n'),
+ 'Full version info'),
+ ('#define LYX_DATE "%s"' % lyx_date,
+ 'Date of release'),
('#define BOOST_ALL_NO_LIB 1',
'disable automatic linking of boost libraries.'),
('#define USE_%s_PACKAGING 1' % packaging_method.upper(),
char * strerror(int n);
#endif
-#ifdef HAVE_MKSTEMP
-#ifndef HAVE_DECL_MKSTEMP
-#if defined(__cplusplus)
-extern "C"
-#endif
-int mkstemp(char*);
-#endif
-#endif
-
#include <../boost/config.h>
#endif
# still can not find it
if not succ:
print 'Did not find qt libraries, exiting!'
+ print 'Please check config.log for more information.'
Exit(1)
#
# Now, determine the correct suffix:
if use_vc:
frontend_env['LINKCOM'] = [frontend_env['LINKCOM'], \
'mt.exe /MANIFEST %s /outputresource:$TARGET;1' % \
- env.subst('$BUILDDIR/lyx.exe.manifest')]
+ env.File('$BUILDDIR/lyx.exe.manifest').path]
frontend_env = conf.Finish()
#
# Report results
#
-# fill in the version info
-env['VERSION_INFO'] = '''Configuration
- Host type: %s
- Special build flags: %s
- C Compiler: %s
- C Compiler flags: %s %s
- C++ Compiler: %s
- C++ Compiler LyX flags: %s
- C++ Compiler flags: %s %s
- Linker flags: %s
- Linker user flags: %s
-Build info:
- Builing directory: %s
- Local library directory: %s
- Libraries paths: %s
- Boost libraries: %s
- Frontend libraries: %s
- System libraries: %s
- include search path: %s
-Frontend:
- Frontend: %s
- Packaging: %s
- LyX dir: %s
- LyX files dir: %s
-''' % (platform_name,
- env.subst('$CCFLAGS'), env.subst('$CC'),
- env.subst('$CPPFLAGS'), env.subst('$CFLAGS'),
- env.subst('$CXX'), env.subst('$CXXFLAGS'),
- env.subst('$CPPFLAGS'), env.subst('$CXXFLAGS'),
- env.subst('$LINKFLAGS'), env.subst('$LINKFLAGS'),
- env.subst('$BUILDDIR'), env.subst('$LOCALLIBPATH'),
- str(env['LIBPATH']), str(boost_libraries),
- str(frontend_libs), str(system_libs), str(env['CPPPATH']),
- frontend, packaging_method,
- prefix, env['LYX_DIR'])
-if frontend in ['qt4']:
- env['VERSION_INFO'] += ''' include dir: %s
- library dir: %s
- X11: %s
-''' % (qt_inc_path, qt_lib_path, env['X11'])
print env['VERSION_INFO']
support = frontend_env.StaticLibrary(
target = '$LOCALLIBPATH/support',
source = ['$BUILDDIR/common/support/%s' % x for x in src_support_files] + Package_cpp,
+ CCFLAGS = [
+ '$CCFLAGS',
+ '-DHAVE_CONFIG_H',
+ '-DQT_CLEAN_NAMESPACE',
+ '-DQT_GENUINE_STR',
+ '-DQT_NO_STL',
+ '-DQT_NO_KEYWORDS',
+ ]
+
)
Alias('support', support)
print "Processing files in src/frontends/qt4..."
- qt4_moc_files = ["$BUILDDIR/common/frontends/qt4/%s" % x for x in src_frontends_qt4_moc_files]
-
- #
- # Compile resources
- #
- resources = [frontend_env.Uic4(x.split('.')[0]) for x in \
- ["$BUILDDIR/common/frontends/qt4/ui/%s" % x for x in src_frontends_qt4_ui_files]]
-
#
# moc qt4_moc_files, the moced files are included in the original files
#
- qt4_moced_files = [frontend_env.Moc4(x.replace('.cpp', '_moc.cpp'), x.replace('.cpp', '.h')) for x in qt4_moc_files]
-
qt4 = frontend_env.StaticLibrary(
target = '$LOCALLIBPATH/qt4',
source = ['$BUILDDIR/common/frontends/qt4/%s' % x for x in src_frontends_qt4_files],
'$BUILDDIR/common/images',
'$BUILDDIR/common/frontends',
'$BUILDDIR/common/frontends/qt4',
+ '$BUILDDIR/common/frontends/qt4/ui',
'$BUILDDIR/common/frontends/controllers'
],
CCFLAGS = [
#
print "Processing files in src..."
- env.Depends('$BUILDDIR/common/version.cpp', '$BUILDDIR/common/config.h')
- version_cpp = env.substFile('$BUILDDIR/common/version.cpp', '$TOP_SRCDIR/src/version.cpp.in')
-
if env.has_key('USE_ASPELL') and env['USE_ASPELL']:
src_post_files.append('ASpell.cpp')
elif env.has_key('USE_PSPELL') and env['USE_PSPELL']:
# so I exclude main.cpp from lyxbase
lyxbase_pre = env.StaticLibrary(
target = '$LOCALLIBPATH/lyxbase_pre',
- source = ['$BUILDDIR/common/%s' % x for x in src_pre_files] + version_cpp
+ source = ['$BUILDDIR/common/%s' % x for x in src_pre_files]
)
lyxbase_post = env.StaticLibrary(
target = '$LOCALLIBPATH/lyxbase_post',
('bind/pt', lib_bind_pt_files),
('bind/sv', lib_bind_sv_files),
('doc', lib_doc_files),
+ ('doc/biblio', lib_doc_biblio_files),
('doc/clipart', lib_doc_clipart_files),
('doc/cs', lib_doc_cs_files),
('doc/da', lib_doc_da_files),