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

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

Merge "Only write CMakeLists.txt for normal variants"

parents 01c66c19 dfe47521
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -62,10 +62,14 @@ func (c *cmakelistsGeneratorSingleton) GenerateBuildActions(ctx android.Singleto

	outputDebugInfo = (getEnvVariable(envVariableGenerateDebugInfo, ctx) == envVariableTrue)

	// Track which projects have already had CMakeLists.txt generated to keep the first
	// variant for each project.
	seenProjects := map[string]bool{}

	ctx.VisitAllModules(func(module android.Module) {
		if ccModule, ok := module.(*Module); ok {
			if compiledModule, ok := ccModule.compiler.(CompiledInterface); ok {
				generateCLionProject(compiledModule, ctx, ccModule)
				generateCLionProject(compiledModule, ctx, ccModule, seenProjects)
			}
		}
	})
@@ -114,14 +118,22 @@ func linkAggregateCMakeListsFiles(path string, info os.FileInfo, err error) erro
	return nil
}

func generateCLionProject(compiledModule CompiledInterface, ctx android.SingletonContext, ccModule *Module) {
func generateCLionProject(compiledModule CompiledInterface, ctx android.SingletonContext, ccModule *Module,
	seenProjects map[string]bool) {
	srcs := compiledModule.Srcs()
	if len(srcs) == 0 {
		return
	}

	// Ensure the directory hosting the cmakelists.txt exists
	// Only write CMakeLists.txt for the first variant of each architecture of each module
	clionproject_location := getCMakeListsForModule(ccModule, ctx)
	if seenProjects[clionproject_location] {
		return
	}

	seenProjects[clionproject_location] = true

	// Ensure the directory hosting the cmakelists.txt exists
	projectDir := path.Dir(clionproject_location)
	os.MkdirAll(projectDir, os.ModePerm)