late binding functions
This snippet executes during a special context during build-time.
@late()
def tools():
import os
executables = []
sitepath = os.path.join(this.root, "Lib", "site-packages", this.name)
if os.path.exists(sitepath):
executables.extend(os.listdir(sitepath))
binpath = os.path.join(this.root, "Scripts")
if os.path.exists(binpath):
executables.extend(os.listdir(binpath))
return executables
early binding
This snippet executes during a special context during build-time.
@early()
def variants():
from rez.package_py_utils import expand_requires
requires = ["platform-**", "arch-**", "os-**", "python-2.7"]
return [expand_requires(*requires)]
early binding
This snippet executes during a special context during build-time.
@early()
def private_build_requires():
import os
requires = ["pip-19+"]
if os.name == "nt":
return ["msvc-14.16+<14.20"] + requires
return ["cmake-3"] + requires
pwsh build_commands
@early()
def build_command():
import os
import sys
os.environ["REZ_BUILD_PROJECT_VENDOR_VERSION"] = this.extra["vendor_version"]
os.environ["REZ_BUILD_PROJECT_PACKAGE_NAME"] = this.extra["winget_package_name"]
os.environ["REZ_BUILD_PROJECT_OVERRIDE_PARAMS"] = this.extra["winget_override_params"]
if os.name == "nt":
command = 'pwsh -File "{0}"'
prefix = "%REZ_BUILD_SOURCE_PATH%"
script = "rezbuild.ps1"
return command.format(os.path.join(prefix, script))
command alias
In this snippet an alias to be used in a rez env context is created.
def commands():
import os
env.PATH.prepend(os.path.join(this.root, this.name, "bin"))
if os.name == "nt":
alias("pycharm", "pycharm64")
resolve package command
Values are accessible via the resolve
package command directly or through expansion.
The end result of resolve.rez.root
here is the same as the expansion "$REZ_REZ_ROOT"
or "{resolve.rez.root}"
, but generally using the command is preferable on Windows. In this particular example, if expansion is used, the value of rez_cmake_module_path
would have "\"
instead of "/"
in it.
def commands():
import os
rez_cmake_module_path = os.path.join(
resolve.rez.root,
"rezplugins",
"build_system",
"cmake_files"
).replace("\\", "/")
env.CMAKE_MODULE_PATH.prepend(rez_cmake_module_path)
extra attribute
In this snippet a custom package attribute named "extra" is defined and used during build-time.
extra = {
"vendor_version": version,
"winget_package_name": "ShareX.ShareX",
"winget_override_params": "/verysilent /suppressmsgboxes /tasks=!createdesktopicon,createsendtoicon",
}
install files
Selectively copy content from binary build dir to install dir
Source: ffmpeg build.ps1
if (!($env:REZ_BUILD_INSTALL -eq "1")) {
Write-Host "Nothing more to do. Use 'rez-build -i' to install."
Exit 0
}
Write-Host "Installing..." -ForegroundColor "Green"
Push-Location ".\$env:REZ_BUILD_PROJECT_NAME-$env:REZ_BUILD_PROJECT_VERSION"
Get-ChildItem -Directory . | Where-Object {
$_.Name -like "bin" -or
$_.Name -like "doc" -or
$_.Name -like "presets"
} | ForEach-Object {
Copy-Item -Path $_ -Destination $env:REZ_BUILD_INSTALL_PATH -Recurse -Force
}
Pop-Location