On 29. Jul, 2010, at 9:26 , Ingolf Steinbach wrote:

> 2010/7/28 Michael Wild <them...@gmail.com>:
>> So, these external libraries should be compiled using ExternalProject_Add 
>> (refer to the docs). [...]
> 
> Ok. I cannot check right now but your proposed way probably solves that 
> problem.
> 
>> If I didn't understand your scenario correctly, please provide some more 
>> detail and what you would CMake expect to do. Also, what would you do in 
>> "manual mode", i.e. if you did it by just using command line operations.
> 
> So let's turn to another situation:
> 
> Our product comes in different configurations (for instance to support
> different display devices or communication protocols). Due to
> restrictions with respect to the size of the code, each configuration
> only contains those modules which are needed for that configuration.
> So there are the following Modules
> 
> B - basic functionality; used in all configurations
> C1 - communication module, type 1
> C2 - communication module, type 2
> C3 - communication module, type 3
> Da - display module, type a
> Db - display module, type b
> 
> Each configuration consists of A and one of C* and D*.
> 
> My approach would be to have the following structure
> 
> top_level
> +- C
> |   +- include (external interface of each of the C* modules)
> |   +- C1 (static library with implementation of C1)
> |   +- C2 (static library with implementation of C1)
> |   +- C3 (static library with implementation of C1)
> +- D
> |   +- include (external interface of each of the D* modules)
> |   +- Da (static library with implementation of Da)
> |   +- Db (static library with implementation of Da)
> +- B  (static library with implementation of basic functionality)
> +- config
>     +- 1a (executable B, C1, Da)
>     +- 1b (executable B, C1, Db)
>     +- 2a (executable B, C2, Da)
>     +- 2b (executable B, C2, Db)
>     +- 3a (executable B, C3, Da)
>     +- 3b (executable B, C3, Db)
> 
> There would not have to be a single source file in the subdirectories
> of config -- the executables are created by just linking the static
> libraries B and one of C* and one of D*.
> 
> In my opinion, the requirement to have at least one source file may
> ease the implementation within CMake but looks artificial from a user
> point of view.
> 
> Kind regards
> Ingolf

This looks reasonable to me. Where is the main() function? In B? Perhaps it 
would be a good idea to not compile it into B, but use the file containing 
main() as the "required file" instead.


Michael

_______________________________________________
Powered by www.kitware.com

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

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

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to