X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fcommon%2Fdali-common.h;h=5b668f578a4d33a87d8acf9394a6c0828ad77469;hb=refs%2Fchanges%2F27%2F224127%2F3;hp=a76ff30fd2da5ba6918da520d6f97072ca7c58ab;hpb=d8bf279cb063b02da642dcf73837a843e064580e;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/public-api/common/dali-common.h b/dali/public-api/common/dali-common.h old mode 100644 new mode 100755 index a76ff30..5b668f5 --- a/dali/public-api/common/dali-common.h +++ b/dali/public-api/common/dali-common.h @@ -1,8 +1,8 @@ -#ifndef __DALI_COMMON_H__ -#define __DALI_COMMON_H__ +#ifndef DALI_COMMON_H +#define DALI_COMMON_H /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,9 +23,9 @@ /* * Definitions for shared library support. * - * If a library is configured with --enable-exportall or --enable-debug + * If a library is built with -DENABLE_EXPORTALL=ON or -DENABLE_DEBUG=ON * then HIDE_DALI_INTERNALS is not defined, and nothing is hidden. - * If it is configured without these options (the default), then HIDE_INTERNALS + * If it is built without these options (the default), then HIDE_INTERNALS * is defined when building the library, visibility is automatically hidden, and the explicit * defines below come into use. * When building a library that uses DALI, HIDE_DALI_INTERNALS. @@ -34,17 +34,35 @@ # ifndef HIDE_DALI_INTERNALS # define DALI_EXPORT_API # define DALI_IMPORT_API +# define DALI_CORE_API # define DALI_INTERNAL # else # define DALI_EXPORT_API __attribute__ ((visibility ("default"))) # define DALI_IMPORT_API __attribute__ ((visibility ("default"))) +# define DALI_CORE_API __attribute__ ((visibility ("default"))) # define DALI_INTERNAL __attribute__ ((visibility ("hidden"))) # endif #else -/** Visibility attribute to show method definitions */ +#ifdef WIN32 + /** Visibility attribute to show declarations */ +# define DALI_EXPORT_API __declspec(dllexport) + +#ifdef BUILDING_DALI_CORE + /** Visibility attribute to hide declarations */ +# define DALI_CORE_API __declspec(dllexport) +#else +/** Visibility attribute to hide declarations */ +# define DALI_CORE_API __declspec(dllimport) +#endif + +#else + /** Visibility attribute to show declarations */ # define DALI_EXPORT_API /** Visibility attribute to show declarations */ # define DALI_IMPORT_API +/** Visibility attribute to show declarations */ +# define DALI_CORE_API +#endif /** Visibility attribute to hide declarations */ # define DALI_INTERNAL #endif @@ -69,8 +87,13 @@ * DALI_UNLIKELY should be used when a branch is almost never taken. * @SINCE_1_0.0 */ +#ifdef __GNUC #define DALI_LIKELY(expression) __builtin_expect( !!(expression), 1 ) #define DALI_UNLIKELY(expression) __builtin_expect( !!(expression), 0 ) +#else +#define DALI_LIKELY(expression) !!(expression) +#define DALI_UNLIKELY(expression) !!(expression) +#endif /** * @brief The DALi namespace. @@ -90,13 +113,13 @@ namespace Dali * @param[in] location Where the assertion occurred * @param[in] condition The assertion condition */ -DALI_IMPORT_API void DaliAssertMessage( const char* location, const char* condition ); +DALI_CORE_API void DaliAssertMessage( const char* location, const char* condition ); /** * @brief Exception class for Dali Core library - Raised by assertions in codebase. * @SINCE_1_0.0 */ -class DALI_IMPORT_API DaliException +class DALI_CORE_API DaliException { public: /** @@ -146,7 +169,11 @@ public: * @SINCE_1_0.0 */ #if defined(DEBUG_ENABLED) +#if defined(WIN32) +#define ASSERT_LOCATION __FUNCSIG__ +#else #define ASSERT_LOCATION __PRETTY_FUNCTION__ +#endif #else #define ASSERT_LOCATION NULL #endif @@ -176,4 +203,13 @@ public: #define DALI_ASSERT_DEBUG(cond) #endif -#endif // __DALI_COMMON_H__ +/// Use DALI_FALLTHROUGH in switch statements where one case is supposed to fall through into another case +#define DALI_FALLTHROUGH +#if __GNUC__ +#if __has_cpp_attribute(fallthrough) +#undef DALI_FALLTHROUGH +#define DALI_FALLTHROUGH [[fallthrough]] +#endif +#endif + +#endif // DALI_COMMON_H