are target_compile_definitions not transitive in cmake 3.12.1?

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

are target_compile_definitions not transitive in cmake 3.12.1?

Mario Emmenlauer

Sorry if this has been discussed before, I searched the mailing
list and google but could not find this exact issue (only [1] and
[2] that refer to library dependencies).

I have a case where it seems target_compile_definitions() is not
transitive (it is not passed down via libraries), is that possible?
I have a project that sets a PUBLIC definition on libA, and during
the build of libB that links libA the definition is applied. But the
definition does not pass down to executables linking libB. This is
confusing for me because library dependencies and includes seem to
be transitive (linking libB also links libA automatically).

Is it by design that target_compile_definitions() is not transitive
in cmake 3.12.1? Or am I doing something wrong?

[2] https://gitlab.kitware.com/cmake/cmake/issues/17633
[1] https://gitlab.kitware.com/cmake/cmake/issues/12435

All the best,

    Mario Emmenlauer


--
BioDataAnalysis GmbH, Mario Emmenlauer      Tel. Buero: +49-89-74677203
Balanstr. 43                   mailto: memmenlauer * biodataanalysis.de
D-81669 München                          http://www.biodataanalysis.de/
--

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:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: are target_compile_definitions not transitive in cmake 3.12.1?

Robert Maynard
target_compile_definitions is transitive for PUBLIC/INTERFACE definitions. Can you provide an example where that is failing?


On Thu, Aug 30, 2018 at 6:32 PM Mario Emmenlauer <[hidden email]> wrote:

Sorry if this has been discussed before, I searched the mailing
list and google but could not find this exact issue (only [1] and
[2] that refer to library dependencies).

I have a case where it seems target_compile_definitions() is not
transitive (it is not passed down via libraries), is that possible?
I have a project that sets a PUBLIC definition on libA, and during
the build of libB that links libA the definition is applied. But the
definition does not pass down to executables linking libB. This is
confusing for me because library dependencies and includes seem to
be transitive (linking libB also links libA automatically).

Is it by design that target_compile_definitions() is not transitive
in cmake 3.12.1? Or am I doing something wrong?

[2] https://gitlab.kitware.com/cmake/cmake/issues/17633
[1] https://gitlab.kitware.com/cmake/cmake/issues/12435

All the best,

    Mario Emmenlauer


--
BioDataAnalysis GmbH, Mario Emmenlauer      Tel. Buero: +49-89-74677203
Balanstr. 43                   mailto: memmenlauer * biodataanalysis.de
D-81669 München                          http://www.biodataanalysis.de/
--

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:
https://cmake.org/mailman/listinfo/cmake

--

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:
https://cmake.org/mailman/listinfo/cmake