]> git.lyx.org Git - lyx.git/blobdiff - development/scons/SConstruct
Scons: add support for system iconv function (from glibc)
[lyx.git] / development / scons / SConstruct
index 7fc8b3b640a6f6679a7409adba863ecbe7dd70d8..efdaa92782622cc1a4ab33f99308dd202e9fcf00 100644 (file)
@@ -12,7 +12,7 @@
 # to INSTALL.scons for detailed instructions.
 #
 
-import os, sys, copy, cPickle, glob
+import os, sys, copy, cPickle, glob, time
 
 # scons_utils.py defines a few utility function
 sys.path.append('config')
@@ -384,13 +384,14 @@ env.AppendUnique(LIBPATH = ['$LOCALLIBPATH'])
 #     lib/lyx2lyx/lyx2lyx_version.py.in
 #       PACKAGE_VERSION
 #     src/version.C.in
-#       PACKAGE_VERSION, VERSION_INFO
+#       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.C.in => src/version.C
 env['PACKAGE_VERSION'] = package_version
+env['LYX_DATE'] = time.asctime()
 
 # determine share_dir etc
 packaging_method = env.get('packaging')
@@ -672,12 +673,12 @@ if not fast_start:
         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)
@@ -930,6 +931,8 @@ if not fast_start or not os.path.isfile(boost_config_h) \
 
 #ifdef __CYGWIN__
 #  define BOOST_POSIX 1
+#  define BOOST_POSIX_API 1
+#  define BOOST_POSIX_PATH 1
 #endif
 
 #define BOOST_ALL_NO_LIB 1
@@ -1104,7 +1107,13 @@ int count()
                 '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'
@@ -1347,19 +1356,20 @@ elif frontend == 'qt4':
     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'),