Link flags in CMAKE_CXX_CREATE_STATIC_LIBRARY

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

Link flags in CMAKE_CXX_CREATE_STATIC_LIBRARY

Daniel Eiband
Hi,

I'm using CMake on Windows with Ninja and MSVC inside Visual Studio. I'd like to suppress linker warning 4221. To do so I added the following linker flag:

set_property(TARGET MyTarget APPEND PROPERTY LINK_FLAGS "/ignore:4221")

This however doesn't affect the creation of static libraries. The only workaround I found is to manipulate the CMAKE_CXX_CREATE_STATIC_LIBRARY variable:

string(REPLACE "<LINK_FLAGS>" "<LINK_FLAGS> /ignore:4221" CMAKE_CXX_CREATE_STATIC_LIBRARY "${CMAKE_CXX_CREATE_STATIC_LIBRARY}")

Is there a nicer way to do this? Why are the link flags not passed to the static library creation or - if not possible - why are there no static library link flag properties?

Regards,
Daniel
--

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: Link flags in CMAKE_CXX_CREATE_STATIC_LIBRARY

Brad King
On 08/07/2018 06:54 AM, Daniel Eiband wrote:
> set_property(TARGET MyTarget APPEND PROPERTY LINK_FLAGS "/ignore:4221")
>
> This however doesn't affect the creation of static libraries.

Static libraries are created by the librarian tool, not the linker.
There is a separate STATIC_LIBRARY_FLAGS property for this:

  https://cmake.org/cmake/help/v3.12/prop_tgt/STATIC_LIBRARY_FLAGS.html

-Brad
--

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: Link flags in CMAKE_CXX_CREATE_STATIC_LIBRARY

Daniel Eiband
Hi Brad,

Thanks a lot, works like a charm!

Daniel

-----Original Message-----
From: Brad King [mailto:[hidden email]]
Sent: Donnerstag, 9. August 2018 15:21
To: Daniel Eiband <[hidden email]>; [hidden email]
Subject: Re: [CMake] Link flags in CMAKE_CXX_CREATE_STATIC_LIBRARY

On 08/07/2018 06:54 AM, Daniel Eiband wrote:
> set_property(TARGET MyTarget APPEND PROPERTY LINK_FLAGS "/ignore:4221")
>
> This however doesn't affect the creation of static libraries.

Static libraries are created by the librarian tool, not the linker.
There is a separate STATIC_LIBRARY_FLAGS property for this:

  https://cmake.org/cmake/help/v3.12/prop_tgt/STATIC_LIBRARY_FLAGS.html

-Brad
--

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