如何在CMake中生成GUID?

jbc*_*coe 3 cmake

我需要在CMake中生成GUIDS以在某些自定义配置文件中定义唯一标识符.如何使用CMake生成GUID?

Flo*_*ian 5

有几种方法可以在CMake中创建唯一标识符(请参阅string() 生成).

例如string(TIMESTAMP ...),string(RANDOM ...)string(UUID ...):

string(UUID <output variable> NAMESPACE <namespace> NAME <name>
   TYPE <MD5|SHA1> [UPPER])
Run Code Online (Sandbox Code Playgroud)

根据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
)
Run Code Online (Sandbox Code Playgroud)