Multiple projects in a single repo

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Multiple projects in a single repo

Dushara Jayasinghe
Hi all,

Here's a little puzzle that's got me scratching my head a bit. I've got
a CMake project that is composed of two separate applications - let's
call them system and recovery - that share a common library framework.
I'd like to keep it all within a single repository.

The applications are composed of multiple executables and shared
libraries. What I would like to be able to do is to produces two install
trees for the two applications with their respective library dependencies.

Things I have attempted so far are:

 1. Perform the build + install in sub-directories of each application:
    With this approach, the shared library files that the applications
    depend on don't get installed (they're in a sibling directory of the
    applications)
 2. Creating two top level custom targets with the the application
    binaries as their dependencies: The build part works great (only the
    required binaries and libraries are built), but the install rule
    causes everything to be built (due to it's dependency on ALL)

Method 2 seems promising if I can have a rule such as install/recovery
or some such, but that doesn't seem possible for a custom target that
doesn't generate anything.

Has anyone else solved something like this before? Any suggestions?

Thank you,

Dushara

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Multiple projects in a single repo

Sean Wayland
Hi Dushara and all ,
I am another Aussie working on something similar ( each of our
applications also has a test application also ) ..
At the moment we have :
add_subdirectory in the top level cmakelists file
In each subdirectory the cmakelists file adds targets ..
some of the subdirectories are for libraries
some are for executables .
As well as our own library we also use other libraries like gtest,
boost, libmusicxml
We have had a bit of luck but getting everything to link properly is tricky.
Please let me know if you get anywhere!
If anyone can shed some light it might save me a lot of time ..
Linking boost or gtest are pretty simple its the shared library we
have written ourselves which is giving me a headache!

Best Sean


On Sun, Jun 18, 2017 at 10:02 PM, Dushara Jayasinghe
<[hidden email]> wrote:

> Hi all,
>
> Here's a little puzzle that's got me scratching my head a bit. I've got a
> CMake project that is composed of two separate applications - let's call
> them system and recovery - that share a common library framework. I'd like
> to keep it all within a single repository.
>
> The applications are composed of multiple executables and shared libraries.
> What I would like to be able to do is to produces two install trees for the
> two applications with their respective library dependencies.
>
> Things I have attempted so far are:
>
> 1. Perform the build + install in sub-directories of each application:
>    With this approach, the shared library files that the applications
>    depend on don't get installed (they're in a sibling directory of the
>    applications)
> 2. Creating two top level custom targets with the the application
>    binaries as their dependencies: The build part works great (only the
>    required binaries and libraries are built), but the install rule
>    causes everything to be built (due to it's dependency on ALL)
>
> Method 2 seems promising if I can have a rule such as install/recovery or
> some such, but that doesn't seem possible for a custom target that doesn't
> generate anything.
>
> Has anyone else solved something like this before? Any suggestions?
>
> Thank you,
>
> Dushara
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake



--
www.seanwayland.com

Sean Wayland

licensed real estate salesperson
phone: 3475231455
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake
Loading...