我需要在CMake中生成GUIDS,以在某些自定义配置文件中定义唯一标识符。如何使用CMake生成GUID?
答案 0 :(得分:5)
有几种方法可以在CMake中创建唯一标识符(请参阅string()
Generation)。
E.g。 string(TIMESTAMP ...)
,string(RANDOM ...)
或string(UUID ...)
:
string(UUID <output variable> NAMESPACE <namespace> NAME <name> TYPE <MD5|SHA1> [UPPER])
根据RFC4122
创建一个通用的唯一标识符(也称为GUID)
来自CMake string()
单元测试Uuid.cmake的示例:
set(UUID_DNS_NAMESPACE 6ba7b810-9dad-11d1-80b4-00c04fd430c8) string( UUID WWW_EXAMPLE_COM_MD5_UUID NAMESPACE ${UUID_DNS_NAMESPACE} NAME "www.example.com" TYPE MD5 ) string( UUID WWW_EXAMPLE_COM_SHA1_UUID NAMESPACE ${UUID_DNS_NAMESPACE} NAME "www.example.com" TYPE SHA1 UPPER )