#[=======================================================================[.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}) get_target_property(__target_type ${TARGET_NAME} TYPE) if(${__target_type} STREQUAL "INTERFACE_LIBRARY") target_sources(${TARGET_NAME} INTERFACE ${__filename}) else() target_sources(${TARGET_NAME} PRIVATE ${__filename}) endif() endfunction()