Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc8d61f1 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Support OUT_DIR for license graph."

parents 477b8e05 c778e4cb
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1477,7 +1477,7 @@ define xml-notice-rule
$(1): PRIVATE_PRODUCT := $(2)
$(1): PRIVATE_MESSAGE := $(3)
$(1): $(call corresponding-license-metadata,$(4)) $(XMLNOTICE) $(BUILD_SYSTEM)/Makefile
	$(XMLNOTICE) -o $$@ -product=$$(PRIVATE_PRODUCT) -title=$$(PRIVATE_MESSAGE) $(foreach prefix, $(5), -strip_prefix=$(prefix)) $(call corresponding-license-metadata,$(4))
	OUT_DIR=$(OUT_DIR) $(XMLNOTICE) -o $$@ -product=$$(PRIVATE_PRODUCT) -title=$$(PRIVATE_MESSAGE) $(foreach prefix, $(5), -strip_prefix=$(prefix)) $(call corresponding-license-metadata,$(4))

notice_files: $(1)
endef
@@ -1493,7 +1493,7 @@ define text-notice-rule
$(1): PRIVATE_PRODUCT := $(2)
$(1): PRIVATE_MESSAGE := $(3)
$(1): $(call corresponding-license-metadata,$(4)) $(TEXTNOTICE) $(BUILD_SYSTEM)/Makefile
	$(TEXTNOTICE) -o $$@ -product=$$(PRIVATE_PRODUCT) -title=$$(PRIVATE_MESSAGE) $(foreach prefix, $(5), -strip_prefix=$(prefix)) $(call corresponding-license-metadata,$(4))
	OUT_DIR=$(OUT_DIR) $(TEXTNOTICE) -o $$@ -product=$$(PRIVATE_PRODUCT) -title=$$(PRIVATE_MESSAGE) $(foreach prefix, $(5), -strip_prefix=$(prefix)) $(call corresponding-license-metadata,$(4))

notice_files: $(1)
endef
@@ -1509,7 +1509,7 @@ define html-notice-rule
$(1): PRIVATE_PRODUCT := $(2)
$(1): PRIVATE_MESSAGE := $(3)
$(1): $(call corresponding-license-metadata,$(4)) $(HTMLNOTICE) $(BUILD_SYSTEM)/Makefile
	$(HTMLNOTICE) -o $$@ -product=$$(PRIVATE_PRODUCT) -title=$$(PRIVATE_MESSAGE) $(foreach prefix, $(5), -strip_prefix=$(prefix)) $(call corresponding-license-metadata,$(4))
	OUT_DIR=$(OUT_DIR) $(HTMLNOTICE) -o $$@ -product=$$(PRIVATE_PRODUCT) -title=$$(PRIVATE_MESSAGE) $(foreach prefix, $(5), -strip_prefix=$(prefix)) $(call corresponding-license-metadata,$(4))

notice_files: $(1)
endef
+22 −21
Original line number Diff line number Diff line
@@ -579,14 +579,14 @@ $(strip $(foreach target, $(sort $(1)), \
    $(ALL_MODULES.$(target).META_LIC), \
    $(if $(strip $(ALL_TARGETS.$(target).META_LIC)), \
      $(ALL_TARGETS.$(target).META_LIC), \
      $(call license-metadata-dir)/$(target).meta_lic))))
      $(call append-path,$(call license-metadata-dir),$(patsubst $(OUT_DIR)%,out%,$(target).meta_lic))))))
endef

###########################################################
## License metadata build rule for my_register_name $(1)
###########################################################
define license-metadata-rule
$(foreach meta_lic, $(ALL_MODULES.$(1).DELAYED_META_LIC),$(call _license-metadata-rule,$(1),$(meta_lic)))
$(foreach meta_lic, $(subst //,/,$(ALL_MODULES.$(1).DELAYED_META_LIC)),$(call _license-metadata-rule,$(1),$(meta_lic)))
$(call notice-rule,$(1))
endef

@@ -626,7 +626,7 @@ $(2): $(BUILD_LICENSE_METADATA)
$(2) : $(foreach d,$(_deps),$(call word-colon,1,$(d))) $(foreach n,$(_notices),$(call word-colon,1,$(n)) )
	rm -f $$@
	mkdir -p $$(dir $$@)
	$(BUILD_LICENSE_METADATA) \
	OUT_DIR=$(OUT_DIR) $(BUILD_LICENSE_METADATA) \
	  $$(addprefix -mt ,$$(PRIVATE_MODULE_TYPE)) \
	  $$(addprefix -mc ,$$(PRIVATE_MODULE_CLASS)) \
	  $$(addprefix -k ,$$(PRIVATE_KINDS)) \
@@ -670,6 +670,7 @@ endef
define non-module-license-metadata-rule
$(strip $(eval _dir := $(call license-metadata-dir)))
$(strip $(eval _tgt := $(strip $(1))))
$(strip $(eval _meta := $(call append-path,$(_dir),$(patsubst $(OUT_DIR)%,out%,$(_tgt).meta_lic))))
$(strip $(eval _deps := $(sort $(filter-out 0p: :,$(foreach d,$(strip $(ALL_NON_MODULES.$(_tgt).DEPENDENCIES)),$(ALL_TARGETS.$(call word-colon,1,$(d)).META_LIC):$(call wordlist-colon,2,9999,$(d)))))))
$(strip $(eval _notices := $(sort $(ALL_NON_MODULES.$(_tgt).NOTICES))))
$(strip $(eval _path := $(sort $(ALL_NON_MODULES.$(_tgt).PATH))))
@@ -682,21 +683,21 @@ $(strip $(eval \
  )) \
)

$(_dir)/$(_tgt).meta_lic: PRIVATE_KINDS := $(sort $(ALL_NON_MODULES.$(_tgt).LICENSE_KINDS))
$(_dir)/$(_tgt).meta_lic: PRIVATE_CONDITIONS := $(sort $(ALL_NON_MODULES.$(_tgt).LICENSE_CONDITIONS))
$(_dir)/$(_tgt).meta_lic: PRIVATE_NOTICES := $(_notices)
$(_dir)/$(_tgt).meta_lic: PRIVATE_NOTICE_DEPS := $(_deps)
$(_dir)/$(_tgt).meta_lic: PRIVATE_SOURCES := $(ALL_NON_MODULES.$(_tgt).DEPENDENCIES)
$(_dir)/$(_tgt).meta_lic: PRIVATE_TARGETS := $(_tgt)
$(_dir)/$(_tgt).meta_lic: PRIVATE_PATH := $(_path)
$(_dir)/$(_tgt).meta_lic: PRIVATE_IS_CONTAINER := $(ALL_NON_MODULES.$(_tgt).IS_CONTAINER)
$(_dir)/$(_tgt).meta_lic: PRIVATE_PACKAGE_NAME := $(strip $(ALL_NON_MODULES.$(_tgt).LICENSE_PACKAGE_NAME))
$(_dir)/$(_tgt).meta_lic: PRIVATE_INSTALL_MAP := $(strip $(_install_map))
$(_dir)/$(_tgt).meta_lic: $(BUILD_LICENSE_METADATA)
$(_dir)/$(_tgt).meta_lic : $(foreach d,$(_deps),$(call word-colon,1,$(d))) $(foreach n,$(_notices),$(call word-colon,1,$(n)) )
$(_meta): PRIVATE_KINDS := $(sort $(ALL_NON_MODULES.$(_tgt).LICENSE_KINDS))
$(_meta): PRIVATE_CONDITIONS := $(sort $(ALL_NON_MODULES.$(_tgt).LICENSE_CONDITIONS))
$(_meta): PRIVATE_NOTICES := $(_notices)
$(_meta): PRIVATE_NOTICE_DEPS := $(_deps)
$(_meta): PRIVATE_SOURCES := $(ALL_NON_MODULES.$(_tgt).DEPENDENCIES)
$(_meta): PRIVATE_TARGETS := $(_tgt)
$(_meta): PRIVATE_PATH := $(_path)
$(_meta): PRIVATE_IS_CONTAINER := $(ALL_NON_MODULES.$(_tgt).IS_CONTAINER)
$(_meta): PRIVATE_PACKAGE_NAME := $(strip $(ALL_NON_MODULES.$(_tgt).LICENSE_PACKAGE_NAME))
$(_meta): PRIVATE_INSTALL_MAP := $(strip $(_install_map))
$(_meta): $(BUILD_LICENSE_METADATA)
$(_meta) : $(foreach d,$(_deps),$(call word-colon,1,$(d))) $(foreach n,$(_notices),$(call word-colon,1,$(n)) )
	rm -f $$@
	mkdir -p $$(dir $$@)
	$(BUILD_LICENSE_METADATA) \
	OUT_DIR=$(OUT_DIR) $(BUILD_LICENSE_METADATA) \
          -mt raw -mc unknown \
	  $$(addprefix -k ,$$(PRIVATE_KINDS)) \
	  $$(addprefix -c ,$$(PRIVATE_CONDITIONS)) \
@@ -723,7 +724,7 @@ endef
###########################################################
define declare-license-metadata
$(strip \
  $(eval _tgt := $(strip $(1))) \
  $(eval _tgt := $(subst //,/,$(strip $(1)))) \
  $(eval ALL_NON_MODULES += $(_tgt)) \
  $(eval ALL_NON_MODULES.$(_tgt).LICENSE_KINDS := $(strip $(2))) \
  $(eval ALL_NON_MODULES.$(_tgt).LICENSE_CONDITIONS := $(strip $(3))) \
@@ -763,7 +764,7 @@ endef
###########################################################
define declare-container-license-metadata
$(strip \
  $(eval _tgt := $(strip $(1))) \
  $(eval _tgt := $(subst //,/,$(strip $(1)))) \
  $(eval ALL_NON_MODULES += $(_tgt)) \
  $(eval ALL_NON_MODULES.$(_tgt).LICENSE_KINDS := $(strip $(2))) \
  $(eval ALL_NON_MODULES.$(_tgt).LICENSE_CONDITIONS := $(strip $(3))) \
@@ -781,7 +782,7 @@ endef
###########################################################
define declare-0p-target
$(strip \
  $(eval _tgt := $(strip $(1))) \
  $(eval _tgt := $(subst //,/,$(strip $(1)))) \
  $(eval ALL_0P_TARGETS += $(_tgt)) \
)
endef
@@ -898,7 +899,7 @@ reportallnoticelibrarynames: $(_all)
	$(hide) rm -f $$(PRIVATE_LIST_FILE)
	$(hide) mkdir -p $$(dir $$(PRIVATE_LIST_FILE))
	$(hide) find out -name '*meta_lic' -type f -printf '"%p"\n' >$$(PRIVATE_LIST_FILE)
	$(COMPLIANCENOTICE_SHIPPEDLIBS) @$$(PRIVATE_LIST_FILE)
	OUT_DIR=$(OUT_DIR) $(COMPLIANCENOTICE_SHIPPEDLIBS) @$$(PRIVATE_LIST_FILE)
endef

###########################################################
@@ -923,7 +924,7 @@ $(strip \
    $(eval ALL_TARGETS.$(t).META_LIC := 0p) \
  ) \
  $(foreach t,$(sort $(ALL_NON_MODULES)), \
    $(eval ALL_TARGETS.$(t).META_LIC := $(_dir)/$(t).meta_lic) \
    $(eval ALL_TARGETS.$(t).META_LIC := $(call append-path,$(_dir),$(patsubst $(OUT_DIR)%,out%,$(t).meta_lic))) \
  ) \
  $(foreach t,$(sort $(ALL_NON_MODULES)),$(eval $(call non-module-license-metadata-rule,$(t)))) \
  $(foreach m,$(sort $(ALL_MODULES)),$(eval $(call license-metadata-rule,$(m)))) \
+1 −1
Original line number Diff line number Diff line
@@ -116,7 +116,7 @@ func main() {
		ofile = &bytes.Buffer{}
	}

	ctx := &context{ofile, os.Stderr, os.DirFS("."), *stripPrefix}
	ctx := &context{ofile, os.Stderr, compliance.FS, *stripPrefix}

	err := billOfMaterials(ctx, flag.Args()...)
	if err != nil {
+4 −1
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ import (
	"os"
	"strings"
	"testing"

	"android/soong/tools/compliance"
)

func TestMain(m *testing.M) {
@@ -37,6 +39,7 @@ func Test(t *testing.T) {
	tests := []struct {
		condition   string
		name        string
		outDir      string
		roots       []string
		stripPrefix string
		expectedOut []string
@@ -282,7 +285,7 @@ func Test(t *testing.T) {
				rootFiles = append(rootFiles, "testdata/"+tt.condition+"/"+r)
			}

			ctx := context{stdout, stderr, os.DirFS("."), []string{tt.stripPrefix}}
			ctx := context{stdout, stderr, compliance.GetFS(tt.outDir), []string{tt.stripPrefix}}

			err := billOfMaterials(&ctx, rootFiles...)
			if err != nil {
+4 −3
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ import (
	"flag"
	"fmt"
	"io"
	"io/fs"
	"os"
	"path/filepath"
	"sort"
@@ -68,7 +69,7 @@ func main() {
		os.Exit(2)
	}

	err := checkShare(os.Stdout, os.Stderr, flag.Args()...)
	err := checkShare(os.Stdout, os.Stderr, compliance.FS, flag.Args()...)
	if err != nil {
		if err != failConflicts {
			if err == failNoneRequested {
@@ -82,14 +83,14 @@ func main() {
}

// checkShare implements the checkshare utility.
func checkShare(stdout, stderr io.Writer, files ...string) error {
func checkShare(stdout, stderr io.Writer, rootFS fs.FS, files ...string) error {

	if len(files) < 1 {
		return failNoneRequested
	}

	// Read the license graph from the license metadata files (*.meta_lic).
	licenseGraph, err := compliance.ReadLicenseGraph(os.DirFS("."), stderr, files)
	licenseGraph, err := compliance.ReadLicenseGraph(rootFS, stderr, files)
	if err != nil {
		return fmt.Errorf("Unable to read license metadata file(s) %q: %w\n", files, err)
	}
Loading