From bf1e4afd3ac5cdaf6e19f4259ff6283ecbeb0718 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sat, 5 Dec 2009 03:00:44 +0000 Subject: [PATCH] 2009-12-05 03:58 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * bin/postinst.bat + Syncing C/C++ Harbour build mode with hbmk2 invocation options in postinst phase. (please test) Only required for mingw, but it's done for every compiler for consistency, but only if it's overridden by user. (so f.e. for msvc, C++ isn't enabled in this case. This could be done on hbmk2 level however, but it would cause a lot of 3rd party code to break so I didn't do it yet.) I didn't add logic to hbmk2 to inherit build-time C/C++ setting, because it wouldn't work in cross-build situations, and multi-target installations. * utils/hbmk2/hbmk2.prg + Added comment on msvc C++ mode. --- harbour/ChangeLog | 27 ++++++++++++++++++++++----- harbour/bin/postinst.bat | 4 ++++ harbour/utils/hbmk2/hbmk2.prg | 9 +++++++++ 3 files changed, 35 insertions(+), 5 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index d0a1c06c41..caa46584d0 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,23 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-12-05 03:58 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * bin/postinst.bat + + Syncing C/C++ Harbour build mode with hbmk2 invocation + options in postinst phase. (please test) + Only required for mingw, but it's done for every compiler + for consistency, but only if it's overridden by user. + (so f.e. for msvc, C++ isn't enabled in this case. This + could be done on hbmk2 level however, but it would cause + a lot of 3rd party code to break so I didn't do it yet.) + + I didn't add logic to hbmk2 to inherit build-time C/C++ + setting, because it wouldn't work in cross-build situations, + and multi-target installations. + + * utils/hbmk2/hbmk2.prg + + Added comment on msvc C++ mode. + 2009-12-03 23:24 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * contrib/hbide/hbide.ch + contrib/hbide/hbide.env @@ -27,10 +44,10 @@ + Started the possibility to switch to any compiler while building a project. ! Implemented tooltips on dialog components. + Added one more tab which holds the contents of hbide.env - residing alongside hbide.exe. + residing alongside hbide.exe. - NOTE: hbide.env is an experimental feature and as such name and location - of this file may change in future. + NOTE: hbide.env is an experimental feature and as such name and location + of this file may change in future. ! Few more artifacts corrected. @@ -45640,8 +45657,8 @@ method (non-C++ method is broken when using LTCG and potentially in other scenarios like IA64). Note, this doesn't mean we'd allow non-ANSI C usage inside Harbour, - so no C++ features are allowd. This won't cause any - drawbacks for the user AFAIK, if you know otherwise, pls + so no C++ features are allowed. This won't cause any + drawbacks for the users AFAIK, if you know otherwise, pls speak up. [Notice that we're using C++ mode for owatcom on all platforms.] diff --git a/harbour/bin/postinst.bat b/harbour/bin/postinst.bat index 86922c77b5..602cdfd648 100644 --- a/harbour/bin/postinst.bat +++ b/harbour/bin/postinst.bat @@ -49,6 +49,10 @@ if "%HB_SHELL%" == "nt" goto _SH_NT if "%HB_PLATFORM%" == "linux" goto _NO_DLL_BIN if "%HB_BUILD_DLL%" == "no" goto _NO_DLL_BIN + set HBMK_OPTIONS= + if "%HB_BUILD_MODE%" == "cpp" set HBMK_OPTIONS=%HBMK_OPTIONS% -cpp=yes + if "%HB_BUILD_MODE%" == "c" set HBMK_OPTIONS=%HBMK_OPTIONS% -cpp=no + echo ! Making shared version of Harbour binaries... "%HB_HOST_BIN_DIR%\hbmk2" -quiet -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbrun-dll" "%~dp0..\utils\hbrun\hbrun.hbp" "%HB_HOST_BIN_DIR%\hbmk2" -quiet -q0 -lng=en-EN -shared "-o%HB_BIN_INSTALL%\hbmk2-dll" "%~dp0..\utils\hbmk2\hbmk2.hbp" diff --git a/harbour/utils/hbmk2/hbmk2.prg b/harbour/utils/hbmk2/hbmk2.prg index c4cffba5e7..d97e0ff609 100644 --- a/harbour/utils/hbmk2/hbmk2.prg +++ b/harbour/utils/hbmk2/hbmk2.prg @@ -2939,6 +2939,15 @@ FUNCTION hbmk( aArgs, /* @ */ lPause ) CASE ( hbmk[ _HBMK_cPLAT ] == "win" .AND. hbmk[ _HBMK_cCOMP ] $ "msvc|msvc64|msvcia64|icc|iccia64" ) .OR. ; ( hbmk[ _HBMK_cPLAT ] == "wce" .AND. hbmk[ _HBMK_cCOMP ] == "msvcarm" ) /* NOTE: Cross-platform: wce/ARM on win/x86 */ + /* ; Not enabled yet, because it would cause a lot of 3rd party code to + break due to sloppy type conversions and other trivial coding errors + usually not noticed with C compilers. [vszakats] */ +#if 0 + IF hbmk[ _HBMK_lCPP ] == NIL + hbmk[ _HBMK_lCPP ] := .T. + ENDIF +#endif + IF Empty( nCCompVer ) /* Compatibility with Harbour GNU Make system */ IF hbmk[ _HBMK_cCOMP ] == "msvcarm" .AND. FindInPath( "clarm" )