On Tue, Oct 25, 2011 at 8:58 PM, Campbell Barton <ideasma...@gmail.com>wrote:

> Thanks for that, from reading the docs now this is more clear but for
> some reason I had the impression the flags on a file could be
> manipulated.
>
> # ---
> # Heres the macro I came up with to disable certain warnings for a
> given set of files...
>
> macro(remove_strict_flags_file
>        filenames)
>
>        foreach(_SOURCE ${ARGV})
>
>                if(CMAKE_COMPILER_IS_GNUCC)
>                        set_source_files_properties(${_SOURCE}
>                                PROPERTIES
>                                        COMPILE_FLAGS
> "-Wno-deprecated-declarations"
>                        )
>                endif()
>
>                if(MSVC)
>                        # TODO
>                endif()
>
>        endforeach()
>
>        unset(_SOURCE)
>
> endmacro()
>
> # ---
> # Example use
>
> remove_strict_flags_file(
>        intern/indexer.c
>        intern/util.c
>        intern/anim_movie.c
> )
>
>
>
> On Tue, Oct 25, 2011 at 7:16 PM, Michael Wild <them...@gmail.com> wrote:
> > On 10/25/2011 09:51 AM, Campbell Barton wrote:
> >> The problem I'm trying to solve is to have "-Werror" for the whole
> >> project except a few files which include system headers that give
> >> warnings we can't workaround (even with -isystem).
> >>
> >> So I'm trying to get cmake to replace some flags for a specific file,
> >> and I ran into the problem that the variable appears not to be set.
> >>
> >> get_source_file_property(MYVAR intern/BME_Customdata.c COMPILE_FLAGS)
> >> ... modify the MYVAR
> >> ... set the flags back
> >>
> >> But the variable isnt set, Im sure the source file is valid because I
> >> printed it from the list passed to the target, and I tried this before
> >> and after defining the source file in the target:
> >> message(FATAL_ERROR "Check: ${MYVAR}")
> >> Check: NOTFOUND
> >>
> >>
> >> I'm guessing the COMPILE_FLAGS property can be set which overrides the
> >> default flags but is there a good way to manipulate the existing
> >> flags?
> >>
> >
> > Problem is, that the COMPILE_FLAGS property only *appends* to the
> > default compile flags. You'll have to remove -Werror from
> > CMAKE_<LANG>_FLAGS[_<CONFIG>] variables and set it instead on all the
> > files you want it to be set for.
> >
> > 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
> >
>
>
>
> --
> - Campbell
> --
>
> 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
>

The flags on a file CAN be manipulated, but Michael's point was that the
flags on a  file are ADDED to the global flags and the flags on its
containing target...

So there's no reliable way to set file flags that will remove flags that
were already added by the global or target level flags.


HTH,
David
--

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