I just pushed my first branch "wix-deterministic-ids" to the topic stage (I hope). Since the whole workflow is quite new to me I'd be glad for any input that anyone may provide.

I chose to generate identifiers after the following format:

CM_<ID_TYPE><SCHEME_TYPE>_<ID_CONTENT>(_<COUNTER>)

<ID_TYPE> is:
    D - Directory
    C - Component
    F - File

<SCHEME_TYPE> is:
    P - Path
    H - Hash

<ID_CONTENT> depends on <SCHEME_TYPE>:
    Path (P):
        <component_1>(.<component_n>)
        e.g. doc.cmake_2.8 for "doc/cmake-2.8"
    Hash (H):
        <SHA1 of path truncated to 7 characters>_<last_component>
e.g. b44dc2f_BasicConfigVersion_SameMajorVersion.cmake.in for "share/cmake-2.8/Modules/BasicConfigVersion-SameMajorVersion.cmake.in"

<COUNTER> is used to disambiguate identifiers and only present when necessary.

The Path scheme is preferred.
Should more than 33% of the characters in the path not be representable in identifiers or the path exceed the identifier limit of 72 characters the Hash scheme is used instead.

Some full sample identifiers:
    CM_DP_share.cmake_2.8.Modules
    CM_CP_share.cmake_2.8.Modules.BundleUtilities.cmake
    CM_FP_share.cmake_2.8.Modules.AutomocInfo.cmake.in
    CM_FH_b44dc2f_BasicConfigVersion_SameMajorVersion.cmake.in

Nils
--

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