From dd0e06b339f549b6365090e04c63e9b5f9a82ead Mon Sep 17 00:00:00 2001 From: Bo Peng Date: Thu, 14 Sep 2006 15:40:06 +0000 Subject: [PATCH] Scons: add SIZEOF_WCHAR_T git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14997 a592a061-630c-0410-9148-cb99ea01b6c8 --- development/scons/SConstruct | 14 +++++++++++++- development/scons/scons_utils.py | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/development/scons/SConstruct b/development/scons/SConstruct index efdaa92782..8d0eb86665 100644 --- a/development/scons/SConstruct +++ b/development/scons/SConstruct @@ -653,6 +653,7 @@ conf = Configure(env, 'CheckCXXGlobalCstd' : utils.checkCXXGlobalCstd, 'CheckLC_MESSAGES' : utils.checkLC_MESSAGES, 'CheckIconvConst' : utils.checkIconvConst, + 'CheckSizeOfWChar' : utils.checkSizeOfWChar, } ) @@ -981,6 +982,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, @@ -1148,6 +1156,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 +1291,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' ) diff --git a/development/scons/scons_utils.py b/development/scons/scons_utils.py index e6c6aded65..6eaa686be7 100644 --- a/development/scons/scons_utils.py +++ b/development/scons/scons_utils.py @@ -255,6 +255,26 @@ int main() { return ret +def checkSizeOfWChar(conf): + ''' check the size of wchar ''' + check_sizeof_wchar = ''' +int i[ ( sizeof(wchar_t)==%d ? 1 : -1 ) ]; +int main() +{ + return 0; +} +''' + conf.Message('Check the size of wchar_t... ') + if conf.TryLink(check_sizeof_wchar % 2, '.cpp'): + ret = 2 + elif conf.TryLink(check_sizeof_wchar % 4, '.cpp'): + ret = 4 + else: + ret = 0 + conf.Result(str(ret)) + return ret + + def createConfigFile(conf, config_file, config_pre = '', config_post = '', headers = [], functions = [], types = [], libs = [],