[cmake-developers] Deterministic identifiers in CPack WiX generator
Nils Gladitz
nilsgladitz at gmail.com
Thu Oct 10 15:14:13 EDT 2013
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
More information about the cmake-developers
mailing list