2010/11/14 Vladislav Vaintroub <[email protected]>:
>
> [skip]
>> 1) Shall we step back and may be setup a CMake policy for
>>     enabling component installer?
>>     If we go for a policy may be someone can help me with this
>>     because I did never add a new policy mayself.
>
> Sounds like a good idea. On the other hand, just assuming 
> CPACK_MONOLITHIC_INSTALL=1  by default for
> archives (ZIP, TGZ) and produce
> components only if explicitly  requested with CPACK_MONOLITHIC_INSTALL=0 
> would be fine with me.
> I imagine, this is what many users would want, but I might be mistaken.

Ok I think the idea is good but I propose some slightly more elaborate scheme.

Each CPackGenerator may support or not component install.
Now it's not because a generator is able to produce "componentized" package that
it should be it's default behavior (even if the user specified
COMPONENT in its CMakeLists.txt)

Thus for each generator which support component install there is an associated
default behavior which is to go either way.

If a user wants to enforce the non default behavior (either way) it may do so
by setting

CPACK_<GENERATOR>_MONOLITHIC_INSTALL
CPACK_<GENERATOR>_COMPONENT_INSTALL
or
CPACK_<GENERATOR>_INSTALL_BEHAVIOR=MONOLITHIC
CPACK_<GENERATOR>_INSTALL_BEHAVIOR=COMPONENT

we need both because default behavior for existing installer are
or will be differents (NSIS vs ZIP).


if ones want to GLOBALLY enforce either way then:

CPACK_MONOLITHIC_INSTALL
CPACK_COMPONENT_INSTALL
or
CPACK_INSTALL_BEHAVIOR=MONOLITHIC
CPACK_INSTALL_BEHAVIOR=COMPONENT
could be set.

Non component-aware generator will ignore those
(as of today).

Those vars may be set at CMake-time or at CPack-time.

What do you think?

I personnally think this scheme is relatively simple and robust
and it would be easy to maintain backward compatibility without
even have to introduce a new cmake policy.

-- 
Erk
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
_______________________________________________
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