[cmake-developers] Deterministic identifiers in CPack WiX generator

Nils Gladitz nilsgladitz at gmail.com
Thu Oct 10 17:12:42 EDT 2013


> I think the logic is sound, and the hash is useful for truncating long 
> paths, but IMO you could skip the CM_<ID_TYPE><SCHEME_TYPE>_ part.
> The SCHEME_TYPE is apparent from the presence of a hash, which anyway 
> makes the id non-deterministic and unusable from other code. What does 
> the CM_ prefix mean, btw?
The hashes are deterministic. You should always get the same hash for 
the same path.
"CM_" (CMake) is intend for cmake reserved IDs which will leave IDs not 
starting with CM_ to users.
The explicit SCHEME_TYPE prevents you from creating a filename based on 
an existing hash which would conflict with a hash generated ID.
>
> IMO, the prefix is redundant since the IDs will be used in context, 
> e.g.: <ComponentRef Id="share.cmake_2.8.Modules.BundleUtilities.cmake" 
> /> or <Property Id="CMAKE_BINARY" Value="[#bin.cmake.exe]" />.
>
> Simple is better. Finally, I would not replace '-' in file names with 
> '_'.
<ID_TYPE> is primarily for me since I expect it makes IDs easier to 
trace when things don't work as expected/intended (plus that one extra 
character doesn't really hurt either).

Acording to the documentation on msdn "-" is not legal in identifiers.
Legal are A-Z a-z 0-9 . and _.

Nils



More information about the cmake-developers mailing list