diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/opentrack-boilerplate.cmake | 7 | ||||
-rw-r--r-- | cmake/opentrack-org.cmake | 21 |
2 files changed, 22 insertions, 6 deletions
diff --git a/cmake/opentrack-boilerplate.cmake b/cmake/opentrack-boilerplate.cmake index b7a5e295..0214b5ef 100644 --- a/cmake/opentrack-boilerplate.cmake +++ b/cmake/opentrack-boilerplate.cmake @@ -194,12 +194,7 @@ function(otr_module n_) string(REPLACE "-" "_" build-n ${n_}) string(TOUPPER "${build-n}" build-n) target_compile_definitions(${n} PRIVATE "BUILD_${build-n}") - - get_property(ident GLOBAL PROPERTY opentrack-ident) - if (".${ident}" STREQUAL ".") - message(FATAL_ERROR "must set global property `opentrack-ident' in `opentrack-variant.cmake'") - endif() - target_compile_definitions(${n} PRIVATE OPENTRACK_ORG=\"${ident}\") + include(opentrack-org) if(arg_STATIC) set(arg_NO-INSTALL TRUE) diff --git a/cmake/opentrack-org.cmake b/cmake/opentrack-org.cmake new file mode 100644 index 00000000..107c829b --- /dev/null +++ b/cmake/opentrack-org.cmake @@ -0,0 +1,21 @@ +include_guard(GLOBAL) +function(otr_write_org) + get_property(ident GLOBAL PROPERTY opentrack-ident) + if (ident STREQUAL "") + message(FATAL_ERROR "must set global property `opentrack-ident' in `opentrack-variant.cmake'") + endif() + otr_escape_string(ident "${ident}") + set(new-str "#pragma once +#define OPENTRACK_ORG \"${ident}\" +") + + set(filename "${CMAKE_BINARY_DIR}/opentrack-org.hxx") + set(old-str "") + if(EXISTS "${filename}") + file(READ "${filename}" old-str) + endif() + if(NOT old-str STREQUAL new-str) + file(WRITE "${filename}" "${new-str}") + endif() +endfunction() +otr_write_org() |