You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dtype selective build: check if portable/optimized in deps (#11030)
Pull Request resolved: #10998
When dtype selective build is enabled, error out if `kernel_deps` contains portable/optimized ops, and `deps` also contains portable/optimized. The check is recursive, ie, if any item in `deps` transitively depends on portable/optimized.
Differential Revision: [D74922471](https://our.internmc.facebook.com/intern/diff/D74922471/)
ghstack-source-id: 285201954
message="Dtype selective build requires that the portable library is not passed into `deps`. This will cause duplicate symbol errors in the build. Please remove it from `deps` and place it into `kernel_deps`"
message="Dtype selective build requires that the optimized library is not passed into `deps`. This will cause duplicate symbol errors in the build. Please remove it from `deps` and place it into `kernel_deps`"
Checks if child is a transitive dependency of parent and fails if it is.
900
+
The query runs the equivalent of `buck2 uquery "allpaths(parent, child)".
901
+
The path from parent->child is available in the out file and error message.
902
+
"""
903
+
message="Dependency violation: '{}' should not depend on '{}'. {}".format(parent, child, message)
904
+
905
+
ifparent==child:
906
+
fail(message)
907
+
908
+
runtime.genrule(
909
+
name=name,
910
+
macros_only=False,
911
+
cmd='mkdir -p $OUT;paths="$(query_targets allpaths({}, {}))"; echo "$paths" > $OUT/dep.txt; if [ -z "$paths" ]; then echo "Dependencies look good"; else echo {}. This will cause duplicate symbol errors when building with dtype selective build. The dependency path is: "$paths"; fail; fi'.format(parent, child, message),
912
+
define_static_target=False,
913
+
# The path is saved to $OUT/dep.txt and can be accessed via genrule_name[result].
0 commit comments