You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.1 KiB
36 lines
1.1 KiB
"""
|
|
Generate build dependencies for Cargo.
|
|
|
|
The `build.py` script is invoked by cargo when building libcretonne to
|
|
generate Rust code from the instruction descriptions. Cargo needs to know when
|
|
it is necessary to rerun the build script.
|
|
|
|
If the build script outputs lines of the form:
|
|
|
|
cargo:rerun-if-changed=/path/to/file
|
|
|
|
cargo will rerun the build script when those files have changed since the last
|
|
build.
|
|
"""
|
|
from __future__ import absolute_import, print_function
|
|
import os
|
|
from os.path import dirname, abspath, join
|
|
|
|
|
|
def source_files(top):
|
|
"""
|
|
Recursively find all interesting source files and directories in the
|
|
directory tree starting at top. Yield a path to each file.
|
|
"""
|
|
for (dirpath, dirnames, filenames) in os.walk(top):
|
|
yield dirpath
|
|
for f in filenames:
|
|
if f.endswith('.py'):
|
|
yield join(dirpath, f)
|
|
|
|
|
|
def generate():
|
|
print("Dependencies from meta language directory:")
|
|
meta = dirname(abspath(__file__))
|
|
for path in source_files(meta):
|
|
print("cargo:rerun-if-changed=" + path)
|
|
|