Skip to content

Commit

Permalink
build_instructions.md: Document Windows Build. Add approximate GCC,…
Browse files Browse the repository at this point in the history
… Clang versions.

  - Add approximate required versions of GCC/Clang.
    - Address #4, but leave issue open until we enforce this in the build.
  - Adds some documentation on how to build for native Windows, and we have existing GitHub CI building it. Close some issues:
    - Fix #5
    - Fix #6.
    - Due to bazelbuild/bazel#22763 it is difficult to configure custom "startup" options for windows. For now the instructions tell the user what configuration changes can be used to fix Windows "long path issues".
  - Drop "Linux" from build instructions header. All platform specific requirements are in the prerequisite sections. Build and test commands work on all supported platforms.

PiperOrigin-RevId: 688994914
  • Loading branch information
jwcullen committed Oct 23, 2024
1 parent c0d60b0 commit ff3ae82
Showing 1 changed file with 27 additions and 5 deletions.
32 changes: 27 additions & 5 deletions docs/build_instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,32 @@

## Prerequisites for building the encoder

### All platforms

- Bazel: `iamf-tools` uses the Bazel build system. See Bazel's
[Getting started](https://bazel.build/start) page for installation
instructions.
- CMake: required to build some dependencies. See CMake's
[Download](https://cmake.org/download/) page to install.
- Clang 13+ or GCC 10+ for Linux-like systems or MSVC for Windows.

### Additional Windows prerequisites

Windows requires some additional prerequisites:

- MSYS32: See [msys2.org](https://www.msys2.org/) for installation
instructions.
- MSCV: Follow Bazel's
[Build on Windows](https://bazel.build/configure/windows) for installation
instructions.
- Address
[long path issues](https://bazel.build/configure/windows#long-path-issues)
by adding the following to `iamf-tools/.bazelrc` or another
[custom .bazelrc](https://bazel.build/run/bazelrc) file:

## Building the encoder on Linux
`startup --output_user_root=C:/tmp`

## Building the encoder

Building the encoder binary:

Expand All @@ -24,9 +43,10 @@ bazel test -c opt //iamf/...

## Test suite

[iamf/cli/testdata](../iamf/cli/testdata) covers a wide variety of IAMF features.
These samples can be used as encoder input. After encoding the resultant `.iamf`
files can be used to assist in testing or debugging an IAMF-compliant decoder.
[iamf/cli/testdata](../iamf/cli/testdata) covers a wide variety of IAMF
features. These samples can be used as encoder input. After encoding the
resultant `.iamf` files can be used to assist in testing or debugging an
IAMF-compliant decoder.

See the separate [README.md](../iamf/cli/testdata/README.md) for further
documentation.
Expand Down Expand Up @@ -63,4 +83,6 @@ documentation.
* `docs/` - Documentation.

## Contributing
If you have improvements or fixes, we would love to have your contributions. See [CONTRIBUTING.md](../CONTRIBUTING.md) for details.

If you have improvements or fixes, we would love to have your contributions. See
[CONTRIBUTING.md](../CONTRIBUTING.md) for details.

0 comments on commit ff3ae82

Please sign in to comment.