Define macros to detect cppast when parsing the code

This commit is contained in:
Jonathan Müller 2017-06-06 14:33:11 +02:00
commit 206c771b1d
2 changed files with 12 additions and 0 deletions

View file

@ -29,6 +29,11 @@ namespace cppast
class libclang_compile_config final : public compile_config
{
public:
/// Creates the default configuration.
///
/// \effects It will set the clang binary determined by the build system,
/// as well as the libclang system include directory determined by the build system.
/// It will also define `__cppast__` with the value `"libclang"` as well as `__cppast_major__` and `__cppast_minor__`.
libclang_compile_config();
/// \effects Sets the path to the location of the `clang++` binary and the version of that binary.

View file

@ -49,13 +49,20 @@ namespace
libclang_compile_config::libclang_compile_config() : compile_config({})
{
// set given clang binary
auto ptr = CPPAST_CLANG_VERSION_STRING;
auto major = parse_number(ptr);
auto minor = parse_number(ptr);
auto patch = parse_number(ptr);
set_clang_binary(CPPAST_CLANG_BINARY, major, minor, patch);
// set system include dir
add_include_dir(CPPAST_LIBCLANG_SYSTEM_INCLUDE_DIR);
// set macros to detect cppast
define_macro("__cppast__", "libclang");
define_macro("__cppast_version_major__", CPPAST_VERSION_MAJOR);
define_macro("__cppast_version_minor__", CPPAST_VERSION_MINOR);
}
void libclang_compile_config::do_set_flags(cpp_standard standard, compile_flags flags)