/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include // This is a table mapping XML tag IDE names to command line options struct cmIDEFlagTable { std::string IDEName; // name used in the IDE xml file std::string commandFlag; // command line flag std::string comment; // comment std::string value; // string value unsigned int special; // flags for special handling requests enum { UserValue = (1 << 0), // flag contains a user-specified value UserIgnored = (1 << 1), // ignore any user value UserRequired = (1 << 2), // match only when user value is non-empty Continue = (1 << 3), // continue looking for matching entries SemicolonAppendable = (1 << 4), // a flag that if specified multiple times // should have its value appended to the // old value with semicolons (e.g. // /NODEFAULTLIB: => // IgnoreDefaultLibraryNames) UserFollowing = (1 << 5), // expect value in following argument CaseInsensitive = (1 << 6), // flag may be any case SpaceAppendable = (1 << 7), // a flag that if specified multiple times // should have its value appended to the // old value with spaces CommaAppendable = (1 << 8), // a flag that if specified multiple times // should have its value appended to the // old value with commas (e.g. C# /nowarn UserValueIgnored = UserValue | UserIgnored, UserValueRequired = UserValue | UserRequired }; };