36 lines
1.5 KiB
CMake
36 lines
1.5 KiB
CMake
#[=======================================================================[.rst:
|
||
myx_generate_private_config_header
|
||
----------------------------------
|
||
|
||
Вспомогательная функция для автоматической генерации заголовочного
|
||
файла, содержащего информацию о проекте::
|
||
|
||
myx_generate_private_config_header(TARGET_NAME BASE_FILENAME)
|
||
|
||
Обязательные параметры: `TARGET_NAME` - имя цели, с которой связан
|
||
заголовочный файл, и `BASE_FILENAME` - имя генерируемого заголовочного файла.
|
||
|
||
#]=======================================================================]
|
||
|
||
include_guard(GLOBAL)
|
||
|
||
if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
|
||
set(MYX_CMAKE_LIB_GENERATORS_DIR_BACKPORT "${CMAKE_CURRENT_LIST_DIR}")
|
||
endif()
|
||
|
||
function(myx_generate_private_config_header TARGET_NAME BASE_FILENAME)
|
||
if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
|
||
set(CMAKE_CURRENT_FUNCTION_LIST_DIR ${MYX_CMAKE_LIB_GENERATORS_DIR_BACKPORT})
|
||
endif()
|
||
|
||
set(BUILD_DATE ${MYX_TODAY})
|
||
myx_project_version_int()
|
||
get_property(PROJECT_VERSION_INT GLOBAL PROPERTY PROJECT_VERSION_INT)
|
||
|
||
set(__filename "${PROJECT_BINARY_DIR}/include/${BASE_FILENAME}")
|
||
configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/PrivateConfig.hpp.in" ${__filename})
|
||
|
||
set_property(TARGET ${TARGET_NAME} APPEND PROPERTY PRIVATE_HEADER_FILES ${__filename})
|
||
target_sources(${TARGET_NAME} PRIVATE ${__filename})
|
||
endfunction()
|