NativeLibraryProjects with the same name


(David Cowden) #1

I’ve noticed that you can’t depend on two components from different projects with the same name with shared linkage because when copying libraries into their install location the shared libraries with the same name will clobber each other (or, one will clobber the other).

root
    project-a
        main
    project-b
        main
    project-c
        main
            sources
                lib project-a library main
                lib project-b library main

This leads one to do the following:

root
    project-a
        project-a
    project-b
        project-a
    project-c
        main
            sources
                lib project-a, library project-a
                lib project-b, library project-a

Which is annoyingly redundant. And to make matters worse, so is the default source structure: project-a/src/project-a/cpp.

Is there a way to specify the name of a library so that you can still keep the nice :project-a:main structure while avoiding shared library name collisions?


(David Cowden) #2
model {
    components {
        main(NativeLibrarySpec) {
            baseName 'foo'
            ...