Skip to content

Improve build configuration in GitHub CI#2861

Merged
jstone-lucasfilm merged 1 commit intoAcademySoftwareFoundation:mainfrom
jstone-lucasfilm:dev_github_ci
Apr 12, 2026
Merged

Improve build configuration in GitHub CI#2861
jstone-lucasfilm merged 1 commit intoAcademySoftwareFoundation:mainfrom
jstone-lucasfilm:dev_github_ci

Conversation

@jstone-lucasfilm
Copy link
Copy Markdown
Member

This changelist improves the build configuration in GitHub CI, reducing duplication across the build matrix and adjusting parallelism per platform. The following specific changes are included:

  • Consolidate extended build configuration as a local extended_cmake_config field on each matrix row, reducing the CMake Generate step to a single call.
  • Adjust build parallelism per platform through the CMAKE_BUILD_PARALLEL_LEVEL environment variable, defaulting to 4 and reduced to 1 on Windows, as the MSVC /MP flag already handles file-level parallelism within each project.
  • Simplify the MacOS rendering setup to setting a debug flag in extended builds, as the MTL_HARDWARE_RENDERING and LIBGL_ALWAYS_SOFTWARE overrides are not actually supported in Metal rendering.

This changelist improves the build configuration in GitHub CI, reducing duplication across the build matrix and adjusting parallelism per platform.  The following specific changes are included:

- Consolidate extended build configuration as a local `extended_cmake_config` field on each matrix row, reducing the CMake Generate step to a single call.
- Adjust build parallelism per platform through the CMAKE_BUILD_PARALLEL_LEVEL environment variable, defaulting to 4 and reduced to 1 on Windows, as the MSVC `/MP` flag already handles file-level parallelism within each project.
- Simplify the MacOS rendering setup to setting a debug flag in extended builds, as the `MTL_HARDWARE_RENDERING` and `LIBGL_ALWAYS_SOFTWARE` overrides are not actually supported in Metal rendering.
@jstone-lucasfilm jstone-lucasfilm requested a review from kwokcb April 11, 2026 19:16
Copy link
Copy Markdown
Contributor

@kwokcb kwokcb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is much nicer to have the localized extended build options per config vs a big if statement.

The counter comment I have is if you want more than one config to run the same extended options then it seems you need to repeat them (e.g. if you want to run MDL on > 1 platform/config). This could be error prone.

I guess you could do something like make a resuable option (e.g. extended_cmake_config_mdl or structure the matrix to extend extended_cmake_config another way ?

@jstone-lucasfilm
Copy link
Copy Markdown
Member Author

@kwokcb I think your note about reusable extended commands is a good one for the future, and we'll have many options available to share commands across jobs if this ends up being required.

At the current scale of our extended builds, I feel the approach proposed here strikes a better balance in clarity and readability than its predecessor, and it should be straightforward to evolve based on future needs.

Copy link
Copy Markdown
Contributor

@kwokcb kwokcb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was mostly checking that this won't cause issues with any future reuse. Sounds like this can be extended when needed. Looks good to check in. Thanks.

@jstone-lucasfilm jstone-lucasfilm merged commit 8eee5aa into AcademySoftwareFoundation:main Apr 12, 2026
36 checks passed
@jstone-lucasfilm jstone-lucasfilm deleted the dev_github_ci branch April 12, 2026 18:36
ashwinbhat added a commit to autodesk-forks/MaterialX that referenced this pull request Apr 13, 2026
Sync up to Apr 12, 2026
Improve build configuration in GitHub CI (AcademySoftwareFoundation#2861) 8eee5aa
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants