X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fpublic-api%2Fcommon%2Fdali-common.h;h=cc73979dd0576bcae1ee46d5016632b299209fae;hb=01c39de261f6eb4e759c7a249e5d67dfef83bca2;hp=7e2ba29d55af55aca97f2c0fe5aa227b88712954;hpb=b371d834b097c58b8202b08baaf15ca9dc8d6324;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 7e2ba29..cc73979 --- a/dali/public-api/common/dali-common.h +++ b/dali/public-api/common/dali-common.h @@ -2,7 +2,7 @@ #define __DALI_COMMON_H__ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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. @@ -20,10 +20,6 @@ // EXTERNAL INCLUDES -#ifdef EMSCRIPTEN -#include -#endif - /* * Definitions for shared library support. * @@ -38,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 @@ -66,21 +80,6 @@ // C++0x not supported #endif -#ifdef EMSCRIPTEN - -#ifndef __clang__ -# error not clang? -#endif - -// clang cpp11 check is per feature -#if !__has_feature(cxx_constexpr) -# error constexpr needed for compile-time-math. Use -std=c+11 -#endif - -#define _CPP11 - -#endif - /** * @brief Two macros to provide branch predictor information. * DALI_LIKELY should be used when a branch is taken in almost all cases so the @@ -88,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. @@ -109,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: /** @@ -170,24 +174,12 @@ public: #define ASSERT_LOCATION NULL #endif -#ifdef EMSCRIPTEN - #define DALI_ASSERT_ALWAYS(cond) \ if(DALI_UNLIKELY(!(cond))) \ { \ Dali::DaliAssertMessage( ASSERT_LOCATION, #cond ); \ throw Dali::DaliException( ASSERT_LOCATION, #cond ); \ - EM_ASM(print(new Error().stack)); \ } -#else - -#define DALI_ASSERT_ALWAYS(cond) \ - if(DALI_UNLIKELY(!(cond))) \ - { \ - Dali::DaliAssertMessage( ASSERT_LOCATION, #cond ); \ - throw Dali::DaliException( ASSERT_LOCATION, #cond ); \ - } -#endif #define DALI_ABORT(message) \ { \