# This file is used to parse meta files\r
#\r
# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>\r
-# (C) Copyright 2015-2016 Hewlett Packard Enterprise Development LP<BR>\r
+# (C) Copyright 2015-2018 Hewlett Packard Enterprise Development LP<BR>\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
\r
self.IncludedFiles.add (IncludedFile1)\r
\r
+ # todo: rework the nested include checking logic\r
+ # Current nested include checking rely on dsc file order inside build.db.\r
+ # It is not reliable and will lead to build fail in some case.\r
+ #\r
+ # When project A and B include a common dsc file C.\r
+ # Build project A. It give dsc file A = ID 1 in build.db, and C ID = 2.\r
+ # Build project B. It give dsc file B ID = 3, and C ID still = 2.\r
+ # Then, we build project B fail, unless we clean build.db.\r
+ # In oldder BaseTools, the project B ID will still be 1,\r
+ # that's why it work before.\r
+\r
# Does not allow lower level included file to include upper level included file\r
- if Parser._From != Owner and int(Owner) > int (Parser._From):\r
- EdkLogger.error('parser', FILE_ALREADY_EXIST, File=self._FileWithError,\r
- Line=self._LineIndex + 1, ExtraData="{0} is already included at a higher level.".format(IncludedFile1))\r
+ #if Parser._From != Owner and int(Owner) > int (Parser._From):\r
+ # EdkLogger.error('parser', FILE_ALREADY_EXIST, File=self._FileWithError,\r
+ # Line=self._LineIndex + 1, ExtraData="{0} is already included at a higher level.".format(IncludedFile1))\r
\r
\r
# set the parser status with current status\r