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

Commit c344620e authored by Inseob Kim's avatar Inseob Kim Committed by Android (Google) Code Review
Browse files

Merge "Capture libeigen's header correctly" into rvc-dev

parents 07e99ad3 67f3dbca
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -403,6 +403,31 @@ func (l *libraryDecorator) collectHeadersForSnapshot(ctx android.ModuleContext)
		if strings.HasPrefix(dir, android.PathForOutput(ctx).String()) {
			continue
		}
		// libeigen wrongly exports the root directory "external/eigen". But only two
		// subdirectories "Eigen" and "unsupported" contain exported header files. Even worse
		// some of them have no extension. So we need special treatment for libeigen in order
		// to glob correctly.
		if dir == "external/eigen" {
			// Only these two directories contains exported headers.
			for _, subdir := range []string{"Eigen", "unsupported/Eigen"} {
				glob, err := ctx.GlobWithDeps("external/eigen/"+subdir+"/**/*", nil)
				if err != nil {
					ctx.ModuleErrorf("glob failed: %#v", err)
					return
				}
				for _, header := range glob {
					if strings.HasSuffix(header, "/") {
						continue
					}
					ext := filepath.Ext(header)
					if ext != "" && ext != ".h" {
						continue
					}
					ret = append(ret, android.PathForSource(ctx, header))
				}
			}
			continue
		}
		exts := headerExts
		// Glob all files under this special directory, because of C++ headers.
		if strings.HasPrefix(dir, "external/libcxx/include") {