Re: [CMake] Link order and interface multiplicity

2017-05-17 Thread Patrick Boettcher
On Wed, 17 May 2017 21:15:39 + Etan Kissling wrote: > Not sure if I understand that correctly, but isn't that essential the > same as creating a FooA and BarA that link to IA, and a FooB and BarB > that link to IB, and linking ExeA to FooA and ExeB to FooB? > > Problem with this approach is

Re: [CMake] Link order and interface multiplicity

2017-05-17 Thread Robert Maynard
No you would set the properties on ExeA and ExeB and that would effect the target_link_library generation for the interface library I I have written an example that drops the Foo libraries as they aren't needed to show my example. https://github.com/robertmaynard/Sandbox/blob/master/CMakeInterfac

Re: [CMake] Link order and interface multiplicity

2017-05-17 Thread Etan Kissling
Not sure if I understand that correctly, but isn't that essential the same as creating a FooA and BarA that link to IA, and a FooB and BarB that link to IB, and linking ExeA to FooA and ExeB to FooB? Problem with this approach is that there are more than two implementations of I, and way more t

Re: [CMake] Link order and interface multiplicity

2017-05-17 Thread Robert Maynard
I have a feeling that you could do this with generator expressions. You would have the interface link line for I have a generator expression that switches between IA and IB. Than you would setup ExeA and ExeB to trigger this switch. Maybe using something like $? On Wed, May 17, 2017 at 8:28 AM, Et

Re: [CMake] Link order and interface multiplicity

2017-05-17 Thread Etan Kissling
Hi, and thanks for the quick reaction :-) The approach with forward declaration looks interesting. However, I don't think that it will resolve all the problems. One issue is that there are multiple apps, each using separate implementations. • ExeA uses the generic libraries Foo and Bar, as well

Re: [CMake] Link order and interface multiplicity

2017-05-16 Thread Patrick Boettcher
Hi, On Mon, 15 May 2017 12:30:10 + Etan Kissling wrote: > I have a project with a layer consisting of interface libraries: > add_library(I INTERFACE) > > These interface libraries are then implemented several times, to fit > the different environments of applications: add_library(IA ST

[CMake] Link order and interface multiplicity

2017-05-15 Thread Etan Kissling
Heya, I have a project with a layer consisting of interface libraries: add_library(I INTERFACE) These interface libraries are then implemented several times, to fit the different environments of applications: add_library(IA STATIC ...) target_link_libraries(IA PUBLIC I)