]> git.lyx.org Git - lyx.git/blobdiff - development/scons/SConstruct
compile fix
[lyx.git] / development / scons / SConstruct
index efdaa92782622cc1a4ab33f99308dd202e9fcf00..2e2fab77c91632cb3c671f7e5f11cc44d2bd3631 100644 (file)
@@ -653,6 +653,7 @@ conf = Configure(env,
         'CheckCXXGlobalCstd' : utils.checkCXXGlobalCstd,
         'CheckLC_MESSAGES' : utils.checkLC_MESSAGES,
         'CheckIconvConst' : utils.checkIconvConst,
+        'CheckSizeOfWChar' : utils.checkSizeOfWChar,
     }
 )
 
@@ -913,6 +914,9 @@ if not fast_start or not os.path.isfile(boost_config_h) \
                 '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)
@@ -981,6 +985,13 @@ if not fast_start or not os.path.isfile(boost_config_h) \
     # 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,
@@ -1050,7 +1061,8 @@ int count()
         ],
         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'),
@@ -1148,6 +1160,8 @@ int count()
                 "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 */
@@ -1281,7 +1295,9 @@ int mkstemp(char*);
                 ),
             ],
             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'
         )