Brad King wrote:

> On 05/13/2012 04:24 PM, Stephen Kelly wrote:
>> I've added a 'WIP: Experiment with backwards compatibility.' patch to my
>> gitorious clone.
>>
>> +      // TODO: Is there a 'not set' state for properties?
>> +      // We should handle that differently to boolean False.
> 
> There is a "not set" state for properties.  Use the raw "GetProperty"
> method.  If it returns a NULL pointer then the property is not set.

Good to know, thanks.

> 
>> I think it should be possible to do this by either setting
>> a default in the CMake files, or handling the setting of properties of
>> names matching CMAKE_SHARED_LIBRARY_${lang}_FLAGS specially to also store
>> a default on first call (which will come from the CMake internal files, I
>> guess?)
> 
> That gives me an idea on how to add a policy for this without triggering
> on every shared library.  Trigger it on projects that change the flags.
> Since POSITION_INDEPENDENT_CODE's default behavior is the same as the
> current default CMAKE_SHARED_LIBRARY_${lang}_FLAGS there is no problem
> for projects that do not change the flags.
> 
> Start by implementing POSITION_INDEPENDENT_CODE and initialize it to
> true for shared libraries just as in your original proposal.  There is
> no need for special "not set" behavior as in my previous suggestion.
> 
> After each language is enabled (cmGlobalGenerator::EnableLanguage)
> save the initial CMAKE_SHARED_LIBRARY_${lang}_FLAGS in a C++ structure.

> <snip>

> For executables CMake can first look for PIE and then for PIC.

Done and re-pushed to my clone. I still have to write the unit tests, but I 
think it can be reviewed again at this point.

Thanks,

Steve.




--

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://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to