Mofidy codes for Dali Windows backend
[platform/core/uifw/dali-core.git] / dali / public-api / common / dali-common.h
old mode 100644 (file)
new mode 100755 (executable)
index a76ff30..cc73979
@@ -2,7 +2,7 @@
 #define __DALI_COMMON_H__
 
 /*
- * Copyright (c) 2017 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.
 #  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
  * 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:
   /**