/* * Copyright © 2014 Christian Persch * * This library is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published * by the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . */ #pragma once #if !defined (__VTE_VTE_H_INSIDE__) && !defined (VTE_COMPILATION) #error "Only can be included directly." #endif #include #if GTK_CHECK_VERSION(4,0,0) #define _VTE_GTK 4 #elif GTK_CHECK_VERSION(3,90,0) #error gtk+ version not supported #elif GTK_CHECK_VERSION(3,0,0) #define _VTE_GTK 3 #else #error gtk+ version unknown #endif #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 6) #define _VTE_GNUC_PACKED __attribute__((__packed__)) #else #define _VTE_GNUC_PACKED #endif /* !__GNUC__ */ #ifdef __GNUC__ #define _VTE_GNUC_FLAG_ENUM __attribute__((__flag_enum__)) #else #define _VTE_GNUC_FLAG_ENUM #endif #ifdef VTE_COMPILATION #define _VTE_GNUC_NONNULL(...) #else #if defined(__GNUC__) #define _VTE_GNUC_NONNULL(...) __attribute__((__nonnull__(__VA_ARGS__))) #else #define _VTE_GNUC_NONNULL(...) #endif #endif #define _VTE_PUBLIC __attribute__((__visibility__("default"))) extern #if defined(__cplusplus) && __cplusplus >= 201103L #define _VTE_CXX_NOEXCEPT noexcept(true) #else #ifdef __GNUC__ #define _VTE_CXX_NOEXCEPT __attribute__((__nothrow__)) #else #define _VTE_CXX_NOEXCEPT #endif #endif /* __cplusplus __ */