This is an automated email from the ASF dual-hosted git repository.

jerzy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git


The following commit(s) were added to refs/heads/master by this push:
     new 1a2a075e cmake: Handle whole-archive
1a2a075e is described below

commit 1a2a075e7789c1ee1c70e2eda3afd32cf2fd091c
Author: Jerzy Kasenberg <[email protected]>
AuthorDate: Fri Aug 22 13:04:38 2025 +0200

    cmake: Handle whole-archive
    
    Whole archive flag was ignored in generated
    CMakeList.txt file.
    
    Now packages with whole archive flags are
    marked as OBJECT library and .a files are not
    created for them.
    
    Signed-off-by: Jerzy Kasenberg <[email protected]>
---
 newt/builder/cmake.go | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/newt/builder/cmake.go b/newt/builder/cmake.go
index 5182fc74..a6947462 100644
--- a/newt/builder/cmake.go
+++ b/newt/builder/cmake.go
@@ -194,11 +194,16 @@ func (b *Builder) CMakeBuildPackageWrite(w io.Writer, 
bpkg *BuildPackage,
        }
 
        pkgName := bpkg.rpkg.Lpkg.NameWithRepo()
+       object_library := ""
+       if bpkg.ci.WholeArch {
+               object_library = "OBJECT "
+       }
 
        util.StatusMessage(util.VERBOSITY_DEFAULT, "Generating CMakeLists.txt 
for %s\n", pkgName)
        fmt.Fprintf(w, "\n# Generating CMakeLists.txt for %s\n", pkgName)
-       fmt.Fprintf(w, "add_library(%s %s)\n",
+       fmt.Fprintf(w, "add_library(%s %s%s)\n",
                EscapePkgName(pkgName),
+               object_library,
                strings.Join(files, " "))
        archivePath := trimProjectPath(filepath.Dir(b.ArchivePath(bpkg)))
        CmakeCompilerInfoWrite(w, archivePath, bpkg, entries[0], otherIncludes)

Reply via email to