mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-27 12:40:25 +00:00
Implements macro get_version_from_n_defines inside PreprocessorUtils
This commit is contained in:
parent
a6b67154bb
commit
16fbce91c2
1 changed files with 32 additions and 7 deletions
|
@ -36,9 +36,9 @@ endmacro()
|
||||||
macro(replace_preprocessor_entry VARIABLE KEYWORD NEW_VALUE)
|
macro(replace_preprocessor_entry VARIABLE KEYWORD NEW_VALUE)
|
||||||
string(REGEX REPLACE
|
string(REGEX REPLACE
|
||||||
"(// *)?# *define +${KEYWORD} +[^ \n]*"
|
"(// *)?# *define +${KEYWORD} +[^ \n]*"
|
||||||
"#define ${KEYWORD} ${NEW_VALUE}"
|
"#define ${KEYWORD} ${NEW_VALUE}"
|
||||||
${VARIABLE}_TEMP
|
${VARIABLE}_TEMP
|
||||||
${${VARIABLE}}
|
${${VARIABLE}}
|
||||||
)
|
)
|
||||||
set(${VARIABLE} ${${VARIABLE}_TEMP})
|
set(${VARIABLE} ${${VARIABLE}_TEMP})
|
||||||
endmacro()
|
endmacro()
|
||||||
|
@ -51,10 +51,35 @@ macro(set_preprocessor_entry VARIABLE KEYWORD ENABLE)
|
||||||
endif ()
|
endif ()
|
||||||
string(REGEX REPLACE
|
string(REGEX REPLACE
|
||||||
"(// *)?# *define +${KEYWORD} *\n"
|
"(// *)?# *define +${KEYWORD} *\n"
|
||||||
${TMP_REPLACE_STR}
|
${TMP_REPLACE_STR}
|
||||||
${VARIABLE}_TEMP
|
${VARIABLE}_TEMP
|
||||||
${${VARIABLE}}
|
${${VARIABLE}}
|
||||||
)
|
)
|
||||||
set(${VARIABLE} ${${VARIABLE}_TEMP})
|
set(${VARIABLE} ${${VARIABLE}_TEMP})
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
|
||||||
|
# get_version_from_n_defines(result_version_name header_path [list of defines...])
|
||||||
|
#
|
||||||
|
# get_version_from_n_defines(MyPackage_VERSION /Header/Path/HeaderName.h
|
||||||
|
# MYPACKAGE_VERSION_MAJOR
|
||||||
|
# MYPACKAGE_VERSION_MINOR
|
||||||
|
# )
|
||||||
|
# Function call will get the values of defines MYPACKAGE_VERSION_MAJOR & MYPACKAGE_VERSION_MINOR
|
||||||
|
# from header and set "${MYPACKAGE_VERSION_MAJOR}.${MYPACKAGE_VERSION_MINOR}" into MyPackage_VERSION
|
||||||
|
#
|
||||||
|
|
||||||
|
function(get_version_from_n_defines OUT_VAR HEADER_PATH)
|
||||||
|
if (NOT EXISTS ${HEADER_PATH})
|
||||||
|
message(FATAL_ERROR "Unable to find '${HEADER_PATH}'")
|
||||||
|
return()
|
||||||
|
endif ()
|
||||||
|
file(READ ${HEADER_PATH} _CONTENT)
|
||||||
|
unset(_DEFINES_LIST)
|
||||||
|
foreach (_DEFINE_NAME ${ARGN})
|
||||||
|
get_preprocessor_entry(_CONTENT ${_DEFINE_NAME} _DEFINE_VALUE)
|
||||||
|
list(APPEND _DEFINES_LIST ${_DEFINE_VALUE})
|
||||||
|
endforeach()
|
||||||
|
string(REPLACE ";" "." _VERSION "${_DEFINES_LIST}")
|
||||||
|
set(${OUT_VAR} "${_VERSION}" PARENT_SCOPE)
|
||||||
|
endfunction()
|
||||||
|
|
Loading…
Reference in a new issue