I am having some trouble getting this multi project build setup correctly.
I created a a few single project builds and they work fine but now I am trying to link them together in what will eventually be a shared library that any other c project can use. Here’s how my project is currently structured.
gradle_project/
project
…/build.gradle
…/src/project/c/project.c
source
…/MainModule/src/MainModule/c/MainModule.c
…/MainModule/headers/MainModule.h
…/module1/src/module1/c/module1.c
…/module1/headers/module1.h
the modules continue like that for module 2, etc…
Those don’t don’t have any interlinking dependencies so they can be built just fine, one at a time.
The issue that I am having is that my main module depends on all the sub modules but I cannot build it, I get a build it because I get a gradle build failure, could not locate library ____
Basically after all the submodules are build, they should create one shared library which is MainModule, then that’s something that I could distribute but currently for testing purposes I have the additional folder project which creates a native executable that relies on that MainModule but I can’t even get the MainModule to build correctly at the moment.
in the root of this project i have a settings.gradle file with each sub module listed there but that doesn’t seem to work. I can only build each project by going and manually invoking gradle build in each module directory.
edit
I forgot to add that in my main module build.gradle file looks like this
apply plugin: 'c'
model {
components {
MainModule(NativeLibrarySpec) {
source.c {
lib library: "module1", linkage "shared"
lib library: "module2", linkage "shared"
lib library: "module3", linkage "shared"
}
}
]
}
another edit
I found this example of a multi project native build but this doesn’t quite do what I am trying to accomplish.
- I want to build a shared library but but the executable should be able to be compiled separately; for example the main subproject could be my MainModule but it will depend on quite a few other submodules that need to be built separately.
Also I would like to put all of those in their own folder structure with their own build.gradle files or would that cause some type of issue with the build?