[cmake-developers] Global flags for creating static libraries
Evan Pipho
hiwrac at gmail.com
Fri Dec 7 19:35:12 EST 2012
Thanks Brad, I will start taking a look this weekend.
As for flags being passed to the librarian /LTCG for whole program
optimization is probably the most common (and came up the most when I
searched on this issue) but controlling warnings with /ignore and turning
on warnings as errors (/wx) is also useful.
On Fri, Dec 7, 2012 at 10:41 AM, Brad King <brad.king at kitware.com> wrote:
> On 12/07/2012 12:04 AM, Evan Pipho wrote:
> > I am looking for a way to set global flags for the librarian when
> creating static libraries, similar to CMAKE_SHARED_LINKER_FLAGS or
> CMAKE_EXE_LINKER_FLAGS. This would facilitate things like using 3rd party
> libraries that already use cmake without having to modify their
> CMakeLists.txt to set these
> > flags.
> >
> >
> > I found http://public.kitware.com/Bug/view.php?id=10094 which
> mentions using CMAKE_STATIC_LINKER_FLAGS as well as this fairly old thread
> http://www.cmake.org/pipermail/cmake/2009-October/032563.html also
> mentioning this.
> >
> > Has there been any progress on this feature?
> > If not, does a feature that exposes a CMAKE_STATIC_LINKER_FLAGS (and
> CMAKE_STATIC_LINKER_FLAGS_<TARGET>) which are then passed to the librarian
> (ar, lib.exe etx) make sense? I think this would be quite useful,
> especially for those of us that use cmake with visual studio.
> >
> > I would like to get the lists input, and if it is positive I would
> be interested in creating a patch to add this functionality.
>
> There is also this issue:
>
> http://www.cmake.org/Bug/view.php?id=10768
>
> which was resolved here:
>
> http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fe971d97
> http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d3303dbc
>
> to add a STATIC_LIBRARY_FLAGS_<CONFIG> version of the property
> as requested in the mailing list thread you linked.
>
> What is still missing is the cache variables equivalent to
>
> CMAKE_EXE_LINKER_FLAGS
> CMAKE_EXE_LINKER_FLAGS_<CONFIG>
> CMAKE_SHARED_LINKER_FLAGS
> CMAKE_SHARED_LINKER_FLAGS_<CONFIG>
> CMAKE_MODULE_LINKER_FLAGS
> CMAKE_MODULE_LINKER_FLAGS_<CONFIG>
>
> for static libraries. Following the above convention the names
>
> CMAKE_STATIC_LINKER_FLAGS
> CMAKE_STATIC_LINKER_FLAGS_<CONFIG>
>
> make sense even though no linking is actually performed. To add
> them, look for places already handling the above variables and
> find the equivalents for static libs. You will need to modify at
> least:
>
> cmLocalGenerator::GetTargetFlags
> cmGlobalXCodeGenerator::CreateBuildSettings
> cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules
> cmLocalVisualStudio7Generator::OutputBuildTool
> cmLocalVisualStudio6Generator::WriteDSPHeader
>
> You will also need to modify the module
>
> Modules/CMakeCommonLanguageInclude.cmake
>
> to add the empty default cache entries. Finally, look in the
> cmDocumentVariables.cxx source file to add documentation.
>
> BTW, what kind of flags do you want to add to the librarian?
>
> -Brad
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20121207/c3fbabca/attachment.html>
More information about the cmake-developers
mailing list