Also, cppcheck possibly doesn't provide a Show Includes (MSVS)-type (or: gcc -H) log functionality - which however likely is a crucial functionality when trying to re-create a functionally completely equivalent parsing tree within a sufficiently complex source environment. So you may have a case of some important infrastructure define (think _M_X64 or _MSC_VER stuff) not yet being -D:d, and this resulting in some infrastructure #include not getting done, thus getting a completely mismatching traversal...
Also, cppcheck possibly doesn't provide a Show Includes (MSVS)-type (or: gcc -H) log functionality - which however likely is a crucial functionality when trying to re-create a functionally completely equivalent parsing tree within a sufficiently complex source environment. So you may have a case of some important infrastructure define not yet being -D:d, and this resulting in some infrastructure #include not getting done, thus getting a completely mismatching traversal of #include hierarchy (mismatch...
Hello all, when initially doing a cppcheck invocation on a more complex project, cppcheck keeps spewing unknownMacro errors. Checking Foo\Bar.cpp ... Foo\Bar.h:108:2: error: There is an unknown macro here somewhere. Configuration is required. If DECLARE_MESSAGE_MAP is a macro then please configure it. [unknownMacro] This error message is sufficiently confusing/misleading/imprecise since in most cases this is a case of letting cppcheck know where to resolve include paths to the required headers which...
Correction: hardcoding: vcproj2cmake_recursive.rb: prefer using official toolkit helpers.
Correction: consistency: prefer Array.collect().
Correction: consistency: stale logging.
Bug fix: IMPORTANT: consistency: fix IDL breakage (incomplete rename of v2c_target_midl_compile function).
Bug fix: IMPORTANT: consistency: vcproj2cmake_func.cmake: fix wrong function naming.
Bug fix: IMPORTANT: vcproj2cmake_recursive.rb: missed another source_root-affected location.
Issue fix: layer violation: vcproj2cmake_recursive.rb: helper should care about elements joining parts only.
Correction: consistency|symmetry: Array: have last element be termined by ',', too.
Cleanup: duplication: V2C_VS10Defines: add TEXT_PROJECT.
Cleanup: multi-line (super(), initialize()).
Cleanup: consistency|order: textOut should always be the first parameter.
Bug fix: cmake_path_join() failed to take empty arguments into account.
Cleanup: multi-line.
Cleanup: consistency|scope: always prefer Array.each to for ... in ... loop.
Cleanup: consistency: remove superfluous newlines.
Cleanup: multi-line (CMake context generators).
Correction: consistency: V2C_VS10ProjectParser: include V2C_VS10Syntax (all VS10 classes should be including this).
Cleanup: relocate FOUND_* constants into separate ResultsFound module.
Cleanup: multi-line.
Cleanup: duplication: vcproj2cmake_recursive.rb: relocate File.stat handling into new helper module helper.
Cleanup: duplication: relocate "obj.nil? or obj.empty?" checks into central documented helpers.
Correction: consistency|minor: util_file.rb: this .rb file does not need to be executable since it is a *module*.
Comment corrections.
Issue fix: duplication|open-coding: do not open-code important producer <-> consumer [communication] protocol aspects!!
Cleanup: multi-line.
Correction: consistency: V2C_VSToolCompilerDefines: include V2C_VSToolDefines (especially since V2C_VSToolLinkerDefines does so, too).
Cleanup: consistency: correct indenting issues (tabs etc.).
Bug fix: order of include_directories() flags needs to be AFTER/BEFORE SYSTEM.
Correction: compat: use File.exist? or more specific (Ruby flags File.exists? naming as deprecated).
Comments transform to flexible list.
Cleanup: consistency *inter*-func: misc.
Correction: minor|order: util_file.rb: relocate module UtilFileCommon to achieve correct comment location.
Cleanup: consistency: have same implementation style for all logging functions.
Cleanup: consistency: V2C_VS10ProjectParser: correct alphabetic order.
Bug fix: consistency|determinism|order: IMPORTANT: definitely avoid hash node address/sorting difference (prevents noise: re-generated thus *touch-changed* files!)
Cleanup: duplication: remove superfluous extra conditional (target_is_valid) check lines.
Correction: layer: relocate comments/docs to where they should actually be.
Feature Infrastructure IMPORTANT: tests: add tests/README.txt, add unit test execution reminder.
Cleanup: move closing brackets back to last-param line.
Cleanup: duplication: do condition match within central helper rather than open-coded on user side.
Cleanup: consistency: add per-linker_info line just like compiler part.
Cleanup: duplication: add nice array_collect_compact() helper to save some LOC.
Cleanup: duplication: use helper variables.
Bug fix IMPORTANT: consistency: always remember to call "super" in initialize()!!
Correction: consistency: add missing $v2c_enable_processes config setting.
Cleanup: consistency: rename to V2C_CMakeFileListGenerator_VS7 (was: V2C_CMakeFileListsGenerator_VS7).
Cleanup: multi-line, plus conditionals.
Cleanup: consistency: project files: add some entries missing in certain files.
Correction: consistency: add marker comments missing in some files.
README: multi-line (to achieve 80line breaks etc.)
Bug fix: consistency: fix several wrong (single-parametric) calls to error_unknown_case_value().
Cleanup: duplication: avoid repeated open-coded access to class members.
Cleanup: consistency|duplication: use existing TEXT_LABEL helper.
Correction: layer: relocate generic XML parts out of VS-specific XML class.
Correction: consistency: log_fatal(): improper log level check.
Correction: consistency: rename some variables to p_FOO since they are clearly Pathname-typed already.
Cleanup: consistency: misc.
Cleanup: multi-line.
Cleanup: multi-line.
Correction: minor: use desirable (instance-bound) logger.debug() rather than undesirable (free-running) log_debug().
Cleanup: duplication: _v2c_scc_do_setup(): use prefix_of_source_dir_ helper variable.
Cleanup: symmetry: correct mis-matching comment.
Bug fix: consistency: add missing log level check to log_info().
Correction: duplication: V2C_VS10BaseElemParser had duplicate "include V2C_VS10Defines".
Bug fix: don't skip update of root skeleton file.
Cleanup: multi-line (comments).
Bug fix: use SpEcIaLlY (tm) escaped backslash to avoid CMake parse error.
Correction: consistency: fix message deviating from all others.
Correction: visibility: improve correctness of class "private" areas.
Relocate V2C_ParserBase.
Cleanup: consistency: avoid non-standard/obscure syntax "raise EXCP_TYPE.new".
Cleanup: duplication|reliability: unhandled_exception() should directly control exception re-raise.
Correction: change improper log wording.
Cleanup: duplication: improve/add helper vars, to avoid repeated access to specific member names.
Provide high-level helper for referencing the list of sub projects.
Correction: consistency: source_group() generator: create directory only in case we do have any content to create.
Tools: relocate check into new is_unmodified() helper.
File list generator: misc. cleanup.
Feature: warn about missing .filters project file.
Bug fix: PCH: many fixes and improvements, originating from Windows tests.
CMAKE_MODULE_PATH appending: split off handling into standard helper.
Cleanup: consistency: add missing function Logger::fatal.
Add V2C_GeneratorBase::generator_error_unknown_case().
Cleanup: multi-line.
Feature IMPORTANT (avoid wc fs mess): have single proper root-level directory for all temporary (non-SCM) content.
Add helper var arr_arg_sources (+ minor syntax consistency cleanup).
Add comment-only helper method tempfile_prefix().
Cleanup: relocate parser-generic logging parts into module V2C_ParserGenericLogging.
Cleanup: multi-line (Logger).
Cleanup: multi-line.
Cleanup: consistency: rename all deviations to consistent "info_file" naming.
Correction: fix improperly scoped (worded) messages.
Feature: Actively disallow source tree builds and modifications.
Feature: File list generator: add function call for user callback.
CMAKE_MODULE_PATH appending: add another base helper.
File list generator: cleanup SOURCE property handling.
multi-line put_v2c_target_midl_compile().