我需要在CMake中生成GUID,以便在一些自定义配置文件中定义唯一标识符。如何使用CMake生成GUID?
我需要在CMake中生成GUID,以便在一些自定义配置文件中定义唯一标识符。如何使用CMake生成GUID?
在CMake中有几种方法可以创建唯一标识符(参见string()
生成)。
例如,string(TIMESTAMP ...)
、string(RANDOM ...)
或string(UUID ...)
:
string(UUID <output variable> NAMESPACE <namespace> NAME <name> TYPE <MD5|SHA1> [UPPER])
Create a univerally unique identifier (aka GUID) as per RFC4122
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
)