-
Notifications
You must be signed in to change notification settings - Fork 367
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into zicher3d/patterns
- Loading branch information
Showing
39 changed files
with
659 additions
and
239 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
name: python | ||
|
||
on: | ||
push: | ||
paths-ignore: | ||
- '**.md' | ||
pull_request: | ||
paths-ignore: | ||
- '**.md' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
# Generate the sdist first. We'll use it to create the wheels. | ||
# https://packaging.python.org/en/latest/flow#the-source-distribution-sdist | ||
sdist: | ||
name: Generate Source Distribution | ||
runs-on: ubuntu-latest | ||
outputs: | ||
sdist_filename: ${{ steps.generate.outputs.filename }} | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: 3.11 | ||
|
||
- name: Install Build Command | ||
run: python -m pip install build | ||
|
||
- name: Generate Sdist | ||
id: generate | ||
run: | | ||
python -m build -s . --outdir dist | ||
echo "filename=$(ls dist)" >> "$GITHUB_OUTPUT" | ||
- name: Upload Sdist | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: sdist | ||
path: ./dist/*.tar.gz | ||
|
||
# Create the wheels. It'll use the sdist to confirm that we can compile MaterialX from the sdist. | ||
# https://packaging.python.org/en/latest/flow#the-built-distributions-wheels | ||
wheels: | ||
name: Generate Wheel | ||
runs-on: ${{ matrix.os }} | ||
needs: ['sdist'] | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ['37', '38', '39', '310', '311'] | ||
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | ||
|
||
steps: | ||
- name: Download Sdist | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: sdist | ||
path: sdist | ||
|
||
- name: Build Wheel | ||
# https://cibuildwheel.readthedocs.io/en/stable/ | ||
uses: pypa/[email protected] | ||
with: | ||
# Build from the sdist. We want to make sure it's valid and works as expected. | ||
package-dir: ${{ github.workspace }}/sdist/${{ needs.sdist.outputs.sdist_filename }} | ||
output-dir: wheels | ||
env: | ||
CIBW_BUILD: 'cp${{ matrix.python-version }}-*' | ||
CIBW_SKIP: '*musllinux*' | ||
CIBW_ARCHS: 'auto64' | ||
# https://github.com/pypa/manylinux | ||
# manylinux2014 is CentOS 7 based. Which means GCC 10 and glibc 2.17. | ||
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 | ||
CIBW_BEFORE_ALL_LINUX: yum install -y libXt-devel | ||
CIBW_BEFORE_ALL_MACOS: sudo xcode-select -switch /Applications/Xcode_13.4.app | ||
CIBW_BUILD_VERBOSITY: 1 | ||
CIBW_ENVIRONMENT: CMAKE_BUILD_PARALLEL_LEVEL=2 | ||
# CIBW_BUILD_FRONTEND: build # https://github.com/pypa/build | ||
MACOSX_DEPLOYMENT_TARGET: '10.15' | ||
|
||
- name: Upload Wheel | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: wheels | ||
path: ./wheels/*.whl | ||
|
||
test: | ||
name: Test Wheel | ||
needs: ['wheels'] | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] | ||
os: ['ubuntu-latest', 'macos-latest', 'windows-latest'] | ||
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- uses: actions/setup-python@v4 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Download Wheels | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: wheels | ||
path: wheels | ||
|
||
- name: Install Wheel | ||
run: python -m pip install MaterialX --find-links wheels --no-index | ||
|
||
- name: Python Tests | ||
shell: bash | ||
run: | | ||
set -e | ||
python python/MaterialXTest/main.py | ||
python python/MaterialXTest/genshader.py | ||
python python/Scripts/mxformat.py ./resources/Materials/TestSuite/stdlib/upgrade --yes --upgrade | ||
python python/Scripts/mxvalidate.py ./resources/Materials/Examples/StandardSurface/standard_surface_marble_solid.mtlx --stdlib --verbose | ||
python python/Scripts/mxdoc.py --docType md ./libraries/pbrlib/pbrlib_defs.mtlx | ||
python python/Scripts/mxdoc.py --docType html ./libraries/bxdf/standard_surface.mtlx | ||
python python/Scripts/generateshader.py ./resources/Materials/Examples/StandardSurface --target glsl | ||
python python/Scripts/generateshader.py ./resources/Materials/Examples/StandardSurface --target osl | ||
python python/Scripts/generateshader.py ./resources/Materials/Examples/StandardSurface --target mdl | ||
python python/Scripts/generateshader.py ./resources/Materials/Examples/StandardSurface --target msl |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,2 @@ | ||
build | ||
dist |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,26 @@ | ||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ | ||
DESTINATION "${MATERIALX_INSTALL_STDLIB_PATH}" MESSAGE_NEVER | ||
PATTERN "CMakeLists.txt" EXCLUDE | ||
PATTERN "pbrlib_genosl_impl.*" EXCLUDE) | ||
|
||
if (MATERIALX_OSL_LEGACY_CLOSURES) | ||
set(PBRLIB_SUFFIX "legacy") | ||
else() | ||
set(PBRLIB_SUFFIX "mtlx") | ||
endif() | ||
|
||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/pbrlib/genosl/pbrlib_genosl_impl.${PBRLIB_SUFFIX}" | ||
DESTINATION "${MATERIALX_INSTALL_STDLIB_PATH}/pbrlib/genosl/" RENAME pbrlib_genosl_impl.mtlx) | ||
if(NOT SKBUILD) | ||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ | ||
DESTINATION "${MATERIALX_INSTALL_STDLIB_PATH}" | ||
PATTERN "CMakeLists.txt" EXCLUDE | ||
PATTERN "pbrlib_genosl_impl.*" EXCLUDE) | ||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/pbrlib/genosl/pbrlib_genosl_impl.${PBRLIB_SUFFIX}" | ||
DESTINATION "${MATERIALX_INSTALL_STDLIB_PATH}/pbrlib/genosl/" RENAME pbrlib_genosl_impl.mtlx) | ||
endif() | ||
|
||
set(MATERIALX_PYTHON_LIBRARIES_PATH "${MATERIALX_PYTHON_FOLDER_NAME}/${MATERIALX_INSTALL_STDLIB_PATH}") | ||
if(SKBUILD) | ||
set(MATERIALX_PYTHON_LIBRARIES_PATH "${SKBUILD_PLATLIB_DIR}/MaterialX/libraries") | ||
endif() | ||
|
||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/ | ||
DESTINATION "python/MaterialX/${MATERIALX_INSTALL_STDLIB_PATH}" | ||
DESTINATION "${MATERIALX_PYTHON_LIBRARIES_PATH}" | ||
PATTERN "CMakeLists.txt" EXCLUDE | ||
PATTERN "pbrlib_genosl_impl.*" EXCLUDE) | ||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/pbrlib/genosl/pbrlib_genosl_impl.${PBRLIB_SUFFIX}" | ||
DESTINATION "python/MaterialX/${MATERIALX_INSTALL_STDLIB_PATH}/pbrlib/genosl/" RENAME pbrlib_genosl_impl.mtlx) | ||
DESTINATION "${MATERIALX_PYTHON_LIBRARIES_PATH}/pbrlib/genosl/" RENAME pbrlib_genosl_impl.mtlx) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
[build-system] | ||
# Use a fixed version because we use an experimental feature | ||
# (a custom plugin) and for now that functionality has | ||
# no compatibility promises. | ||
requires = ["scikit-build-core==0.4.4"] | ||
build-backend = "scikit_build_core.build" | ||
|
||
[project] | ||
name = "MaterialX" | ||
dynamic = ["version"] | ||
|
||
authors = [ | ||
{ name="Contributors to the MaterialX project", email="[email protected]" }, | ||
] | ||
readme = "README.md" | ||
requires-python = ">=3.6" | ||
|
||
classifiers = [ | ||
"Programming Language :: Python :: 3", | ||
"License :: OSI Approved :: Apache Software License", | ||
"Operating System :: OS Independent", | ||
] | ||
|
||
[project.urls] | ||
"Homepage" = "https://materialx.org" | ||
"Source" = "https://github.com/AcademySoftwareFoundation/MaterialX" | ||
"Bug Tracker" = "https://github.com/AcademySoftwareFoundation/MaterialX/issues" | ||
|
||
[project.scripts] | ||
baketextures = "MaterialX._scripts.baketextures:main" | ||
generateshader = "MaterialX._scripts.generateshader:main" | ||
genmdl = "MaterialX._scripts.genmdl:main" | ||
mxdoc = "MaterialX._scripts.mxdoc:main" | ||
mxupdate = "MaterialX._scripts.mxupdate:main" | ||
mxvalidate = "MaterialX._scripts.mxvalidate:main" | ||
translateshader = "MaterialX._scripts.translateshader:main" | ||
writenodegraphs = "MaterialX._scripts.writenodegraphs:main" | ||
|
||
[tool.scikit-build] | ||
cmake.minimum-version = "3.18" | ||
cmake.verbose = false | ||
cmake.build-type = "Release" | ||
|
||
# Enable experimental features if any are available | ||
# In this case we need custom local plugin to get | ||
# the project version from cmake. | ||
experimental = true | ||
metadata.version.provider = "mtx_skbuild_plugin" | ||
metadata.version.provider-path = "./python" | ||
|
||
# Uncoment when developing locally to enable inplace builds. | ||
# build-dir = "build/" | ||
|
||
logging.level = "DEBUG" | ||
|
||
# Since the python package doesn't live in a standard directory | ||
# in the source (i.e ./src or ./), we need to manually specify | ||
# where the package is. | ||
wheel.packages = ["python/MaterialX"] | ||
|
||
sdist.exclude = [ | ||
"/build", | ||
"/dist", | ||
"/resources", | ||
"/javascript", | ||
"/documents", | ||
"/.github", | ||
"MANIFEST.in" | ||
] | ||
|
||
[tool.scikit-build.cmake.define] | ||
MATERIALX_BUILD_SHARED_LIBS = 'OFF' # Be explicit | ||
MATERIALX_BUILD_PYTHON = 'ON' | ||
MATERIALX_TEST_RENDER = 'OFF' | ||
MATERIALX_WARNINGS_AS_ERRORS = 'ON' | ||
MATERIALX_BUILD_TESTS = 'OFF' | ||
# TODO: How could we harmonize this variable with SKBUILD? | ||
MATERIALX_INSTALL_PYTHON = 'OFF' |
Oops, something went wrong.