code: def copy_include_dirs(tile):
      
  
      if 'products' not in tile.settings:
          return
  
      incdirs = tile.settings['products'].get('include_directories', [])
      incdirs = map(lambda x: os.path.normpath(utilities.join_path(x)), incdirs)
      incdirs = sorted(incdirs, key=lambda x: len(x))
  
      seen_dirs = pygtrie.PrefixSet(factory=lambda: pygtrie.StringTrie(separator=os.path.sep))
  
      env = Environment(tools=[])
  
      # all include directories are relative to the firmware/src directory
      outputbase = os.path.join('build', 'output', 'include')
      inputbase = os.path.join('firmware', 'src')
      for inc in incdirs:
          if inc in seen_dirs:
              continue
  
          relinput = os.path.join(inputbase, inc)
          finaldir = os.path.join(outputbase, inc)
  
          for folder, subdirs, filenames in os.walk(relinput):
              relfolder = os.path.relpath(folder, relinput)
              for filename in filenames:
                  if filename.endswith(".h"):
                      infile = os.path.join(folder, filename)
                      outfile = os.path.join(finaldir, relfolder, filename)
                      env.Command([outfile], [infile], Copy("$TARGET", "$SOURCE"))
  
          seen_dirs.add(inc)
docs: Copy all include directories that this tile defines as products in build/output/include