blob: e6af54552b8a8a777d4f8bba32457ef7d8baa956 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
/* $Rev$ $Date$ */
#ifndef tuscany_config_hpp
#define tuscany_config_hpp
#include "ap_config.h"
#undef PACKAGE_BUGREPORT
#undef PACKAGE_NAME
#undef PACKAGE_STRING
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
#include "../config.h"
/**
* Platform configuration and debug functions.
*/
namespace tuscany
{
/**
* Attribute used to mark unused parameters.
*/
#ifndef unused
#define unused __attribute__ ((unused))
#endif
/**
* Compiler feature detection.
*/
#ifdef __clang__
#if __has_feature(cxx_lambdas)
#define HAS_CXX0X_LAMBDAS 1
#endif
#else
#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 4)
#define HAS_CXX0X_LAMBDAS 1
#endif
#endif
/**
* Debug utilities.
*/
#ifdef WANT_MAINTAINER_MODE
/**
* Strict compile warnings.
*/
#define WANT_MAINTAINER_WARNINGS
/**
* Fast fail assertion.
*/
#define WANT_MAINTAINER_ASSERT
/**
* Debug log.
*/
#define WANT_MAINTAINER_LOG
/**
* Add string watch members to important classes to help watch them in a debugger.
*/
//#define WANT_MAINTAINER_WATCH
/**
* Maintain counters of important objects to help test garbage collection.
*/
//#define WANT_MAINTAINER_COUNTERS
#ifdef WANT_MAINTAINER_COUNTERS
const bool debug_inc(long int& c) {
c++;
return true;
}
const bool debug_dec(long int& c) {
c--;
return true;
}
#else
#define debug_inc(c)
#define debug_dec(c)
#endif
#else
#define debug_inc(c)
#define debug_dec(c)
#endif
}
#endif /* tuscany_config_hpp */