blob: 06c91869402d74c83ba8e937d431c3322fc1e10d [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_IMPELLER_BASE_CONFIG_H_
#define FLUTTER_IMPELLER_BASE_CONFIG_H_
#include <cstdlib>
#include "flutter/fml/logging.h"
#if defined(__GNUC__) || defined(__clang__)
#define IMPELLER_COMPILER_CLANG 1
#else // defined(__GNUC__) || defined(__clang__)
#define IMPELLER_COMPILER_CLANG 0
#endif // defined(__GNUC__) || defined(__clang__)
#if IMPELLER_COMPILER_CLANG
#define IMPELLER_PRINTF_FORMAT(format_number, args_number) \
__attribute__((format(printf, format_number, args_number)))
#else // IMPELLER_COMPILER_CLANG
#define IMPELLER_PRINTF_FORMAT(format_number, args_number)
#endif // IMPELLER_COMPILER_CLANG
#define IMPELLER_UNIMPLEMENTED \
impeller::ImpellerUnimplemented(__FUNCTION__, __FILE__, __LINE__);
namespace impeller {
[[noreturn]] inline void ImpellerUnimplemented(const char* method,
const char* file,
int line) {
FML_CHECK(false) << "Unimplemented: " << method << " in " << file << ":"
<< line;
std::abort();
}
} // namespace impeller
#endif // FLUTTER_IMPELLER_BASE_CONFIG_H_