MCPcopy Create free account
hub / github.com/FastLED/FastLED / find_board_build_info

Function find_board_build_info

ci/util/symbol_analysis.py:743–852  ·  view source on GitHub ↗

Find build info for a specific board or detect available boards Args: board_name: Board name to search for (optional) example: Example name for finding example-specific build_info_{example}.json (default: "Blink") Returns: Tuple of (build_info_path, board_name)

(
    board_name: Optional[str] = None, example: str = "Blink"
)

Source from the content-addressed store, hash-verified

741
742
743def find_board_build_info(
744 board_name: Optional[str] = None, example: str = "Blink"
745) -> tuple[Path, str]:
746 """Find build info for a specific board or detect available boards
747
748 Args:
749 board_name: Board name to search for (optional)
750 example: Example name for finding example-specific build_info_{example}.json (default: "Blink")
751
752 Returns:
753 Tuple of (build_info_path, board_name)
754 """
755 # Detect build directory
756 current = Path.cwd()
757 build_dir: Optional[Path] = None
758 while current != current.parent:
759 candidate = current / ".build"
760 if candidate.exists():
761 build_dir = candidate
762 break
763 current = current.parent
764
765 if not build_dir:
766 print("Error: Could not find build directory (.build)")
767 sys.exit(1)
768
769 assert build_dir is not None
770
771 # If specific board requested, look for it
772 if board_name:
773 # Try example-specific build_info_{example}.json first
774 build_info_filename = f"build_info_{example}.json"
775
776 # 1) Direct board directory: .build/<board>/build_info_{example}.json
777 board_dir = build_dir / board_name
778 if board_dir.exists() and (board_dir / build_info_filename).exists():
779 return board_dir / build_info_filename, board_name
780
781 # 2) PlatformIO nested directory: .build/pio/<board>/build_info_{example}.json
782 pio_board_dir = build_dir / "pio" / board_name
783 if pio_board_dir.exists() and (pio_board_dir / build_info_filename).exists():
784 return pio_board_dir / build_info_filename, board_name
785
786 # Fallback to legacy build_info.json (for backward compatibility)
787 if board_dir.exists() and (board_dir / "build_info.json").exists():
788 print(
789 f"Warning: Using legacy build_info.json (consider migrating to {build_info_filename})"
790 )
791 return board_dir / "build_info.json", board_name
792
793 if pio_board_dir.exists() and (pio_board_dir / "build_info.json").exists():
794 print(
795 f"Warning: Using legacy build_info.json (consider migrating to {build_info_filename})"
796 )
797 return pio_board_dir / "build_info.json", board_name
798
799 print(
800 f"Error: Board '{board_name}' not found or missing {build_info_filename} (or build_info.json)"

Callers 3

mainFunction · 0.85

Calls 2

printFunction · 0.50
appendMethod · 0.45