Hi Tamas,
Thanks for the patch. We already had "LLVM/Clang C"
detection inside the __GNUC__ branch, is it still
necessary, or can we now safely delete it?
Viktor
On 2010 May 30, at 14:44, Tamas TEVESZ wrote:
>
> - clang 2 does c++ now, so only fall back to c mode if we are running
> clang1
> - clang2 has some nice macros for version stuff, use them
>
> tested with both clang2 (bsd) and clang1 (linux), both appear to be
> fine.
>
> thanks to viktor for solving my troubles with the
> $($(shell(($($((subst))$)zoink))$)$))kaboom)$)) madness.
>
> Index: src/common/hbver.c
> ===================================================================
> --- src/common/hbver.c (revision 14637)
> +++ src/common/hbver.c (working copy)
> @@ -700,6 +700,18 @@
> iVerPatch = 0;
> #endif
>
> +#elif defined( __llvm__ ) && defined( __clang_major__ )
> +
> + pszName = "LLVM/Clang C";
> +
> + iVerMajor = __clang_major__;
> + iVerMinor = __clang_minor__;
> + iVerPatch = __clang_patchlevel__;
> +
> + #if defined( __cplusplus )
> + hb_strncpy( szSub, "++", sizeof( szSub ) - 1 );
> + #endif
> +
> #elif defined( __GNUC__ )
>
> #if defined( __DJGPP__ )
> @@ -783,6 +795,15 @@
> else
> hb_strncpy( pszCompiler, "(unknown)", COMPILER_BUF_SIZE - 1 );
>
> +#if defined( __clang_version__ )
> + if (strstr( __clang_version__, "("))
> + /* "2.0 (trunk 103176)" -> "(trunk 103176)" */
> + hb_snprintf( szSub, sizeof( szSub ), " %s", strstr( __clang_version__,
> "("));
> + else
> + hb_snprintf( szSub, sizeof( szSub ), " (%s)", __clang_version__);
> + hb_strncat( pszCompiler, szSub, COMPILER_BUF_SIZE - 1 );
> +#endif
> +
> #if defined( __DJGPP__ )
> hb_snprintf( szSub, sizeof( szSub ), " (DJGPP %i.%02i)", ( int )
> __DJGPP__, ( int ) __DJGPP_MINOR__ );
> hb_strncat( pszCompiler, szSub, COMPILER_BUF_SIZE - 1 );
> Index: config/bsd/clang.mk
> ===================================================================
> --- config/bsd/clang.mk (revision 14637)
> +++ config/bsd/clang.mk (working copy)
> @@ -3,8 +3,11 @@
> #
>
> ifeq ($(HB_BUILD_MODE),cpp)
> - # -ccc-clang-cxx
> - HB_CMP := clang
> + ifneq ($(findstring clang$(subst x, ,x)version$(subst x, ,x)1,$(shell
> clang --version)),)
> + HB_BUILD_MODE := c
> + else
> + HB_CMP := clang++
> + endif
> else
> HB_CMP := clang
> endif
> Index: config/linux/clang.mk
> ===================================================================
> --- config/linux/clang.mk (revision 14637)
> +++ config/linux/clang.mk (working copy)
> @@ -3,8 +3,11 @@
> #
>
> ifeq ($(HB_BUILD_MODE),cpp)
> - # -ccc-clang-cxx
> - HB_CMP := clang
> + ifneq ($(findstring clang$(subst x, ,x)version$(subst x, ,x)1,$(shell
> clang --version)),)
> + HB_BUILD_MODE := c
> + else
> + HB_CMP := clang++
> + endif
> else
> HB_CMP := clang
> endif
>
> --
> [-]
>
> mkdir /nonexistent<clang.diff>_______________________________________________
> Harbour mailing list (attachment size limit: 40KB)
> [email protected]
> http://lists.harbour-project.org/mailman/listinfo/harbour
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour