2022-10-03 12:06:53 +00:00
|
|
|
|
#[=======================================================================[.rst:
|
|
|
|
|
myx_generate_private_config_header
|
|
|
|
|
----------------------------------
|
|
|
|
|
|
|
|
|
|
Вспомогательная функция для автоматической генерации заголовочного
|
|
|
|
|
файла, содержащего информацию о проекте::
|
|
|
|
|
|
2022-10-15 07:14:08 +00:00
|
|
|
|
myx_generate_private_config_header(TARGET_NAME BASE_FILENAME)
|
2022-10-03 12:06:53 +00:00
|
|
|
|
|
2022-10-15 07:14:08 +00:00
|
|
|
|
Обязательные параметры: `TARGET_NAME` - имя цели, с которой связан
|
|
|
|
|
заголовочный файл, и `BASE_FILENAME` - имя генерируемого заголовочного файла.
|
2022-10-03 12:06:53 +00:00
|
|
|
|
|
|
|
|
|
#]=======================================================================]
|
|
|
|
|
|
|
|
|
|
include_guard(GLOBAL)
|
|
|
|
|
|
2024-03-18 21:16:53 +00:00
|
|
|
|
if(${CMAKE_VERSION} VERSION_LESS 3.17.0)
|
2022-10-06 08:10:43 +00:00
|
|
|
|
set(MYX_CMAKE_LIB_GENERATORS_DIR_BACKPORT "${CMAKE_CURRENT_LIST_DIR}")
|
|
|
|
|
endif()
|
|
|
|
|
|
2022-10-15 07:14:08 +00:00
|
|
|
|
function(myx_generate_private_config_header TARGET_NAME BASE_FILENAME)
|
2024-03-18 21:16:53 +00:00
|
|
|
|
if(${CMAKE_VERSION} VERSION_LESS 3.17.0)
|
2022-10-06 08:10:43 +00:00
|
|
|
|
set(CMAKE_CURRENT_FUNCTION_LIST_DIR ${MYX_CMAKE_LIB_GENERATORS_DIR_BACKPORT})
|
|
|
|
|
endif()
|
|
|
|
|
|
2022-10-03 12:06:53 +00:00
|
|
|
|
set(BUILD_DATE ${MYX_TODAY})
|
|
|
|
|
myx_project_version_int()
|
|
|
|
|
get_property(PROJECT_VERSION_INT GLOBAL PROPERTY PROJECT_VERSION_INT)
|
|
|
|
|
|
2024-03-18 21:16:53 +00:00
|
|
|
|
set(filename "${PROJECT_BINARY_DIR}/include/${BASE_FILENAME}")
|
|
|
|
|
configure_file("${CMAKE_CURRENT_FUNCTION_LIST_DIR}/PrivateConfig.hpp.in" ${filename})
|
2022-10-03 12:06:53 +00:00
|
|
|
|
|
2024-03-18 21:16:53 +00:00
|
|
|
|
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")
|
2024-03-28 07:57:43 +00:00
|
|
|
|
target_sources(${TARGET_NAME} INTERFACE $<BUILD_INTERFACE:${filename}>)
|
2023-12-12 09:23:31 +00:00
|
|
|
|
else()
|
2024-03-18 21:16:53 +00:00
|
|
|
|
target_sources(${TARGET_NAME} PRIVATE ${filename})
|
2023-12-12 09:23:31 +00:00
|
|
|
|
endif()
|
2022-10-03 12:06:53 +00:00
|
|
|
|
endfunction()
|