5

I need to generate GUIDS in CMake to define unique identifiers in some custom configuration files. How can I use CMake to generate GUIDs?

jbcoe
  • 3,611
  • 1
  • 30
  • 45

1 Answers1

6

There are several ways to create unique identifiers in CMake (see string() Generation).

E.g. string(TIMESTAMP ...), string(RANDOM ...) or string(UUID ...):

string(UUID <output variable> NAMESPACE <namespace> NAME <name>
   TYPE <MD5|SHA1> [UPPER])

Create a univerally unique identifier (aka GUID) as per RFC4122

Examples from CMake's string() Unit Test 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
)
Florian
  • 39,996
  • 9
  • 133
  • 149