Исправление включения файлов в интерфейсную библиотеку
This commit is contained in:
parent
01e095e99c
commit
a4b841d852
@ -31,26 +31,31 @@ function(myx_generate_git_info_header TARGET_NAME BASE_FILENAME)
|
|||||||
set(multiValueArgs)
|
set(multiValueArgs)
|
||||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
set(__filename "${PROJECT_BINARY_DIR}/include/${BASE_FILENAME}")
|
set(filename "${PROJECT_BINARY_DIR}/include/${BASE_FILENAME}")
|
||||||
file(APPEND ${__filename} "")
|
file(APPEND ${filename} "")
|
||||||
|
|
||||||
set(__prefix "")
|
set(prefix "")
|
||||||
if(ARG_PREFIX)
|
if(ARG_PREFIX)
|
||||||
string(APPEND ARG_PREFIX "_")
|
string(APPEND ARG_PREFIX "_")
|
||||||
string(REPLACE "-" "_" __prefix ${ARG_PREFIX})
|
string(REPLACE "-" "_" prefix ${ARG_PREFIX})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# cmake-format: off
|
# cmake-format: off
|
||||||
if(NOT TARGET ${TARGET_NAME}-git-info-header)
|
if(NOT TARGET ${TARGET_NAME}-git-info-header)
|
||||||
add_custom_target(${TARGET_NAME}-git-info-header ALL
|
add_custom_target(${TARGET_NAME}-git-info-header ALL
|
||||||
${CMAKE_COMMAND} -DGIT_INFO_FILE=${__filename} -DPREFIX=${__prefix}
|
${CMAKE_COMMAND} -DGIT_INFO_FILE=${filename} -DPREFIX=${prefix}
|
||||||
-P ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/GitInfo.cmake
|
-P ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/GitInfo.cmake
|
||||||
BYPRODUCTS ${__filename}
|
BYPRODUCTS ${filename}
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_FUNCTION_LIST_DIR})
|
WORKING_DIRECTORY ${CMAKE_CURRENT_FUNCTION_LIST_DIR})
|
||||||
endif()
|
endif()
|
||||||
# cmake-format: on
|
# cmake-format: on
|
||||||
|
|
||||||
set_property(TARGET ${TARGET_NAME} APPEND PROPERTY PRIVATE_HEADER_FILES ${__filename})
|
set_property(TARGET ${TARGET_NAME} APPEND PROPERTY PRIVATE_HEADER_FILES ${filename})
|
||||||
target_sources(${TARGET_NAME} PRIVATE ${__filename})
|
get_target_property(target_type ${TARGET_NAME} TYPE)
|
||||||
|
if(${target_type} STREQUAL "INTERFACE_LIBRARY")
|
||||||
|
target_sources(${TARGET_NAME} INTERFACE $<BUILD_INTERFACE:${filename}>)
|
||||||
|
else()
|
||||||
|
target_sources(${TARGET_NAME} PRIVATE ${filename})
|
||||||
|
endif()
|
||||||
add_dependencies(${TARGET_NAME} ${TARGET_NAME}-git-info-header)
|
add_dependencies(${TARGET_NAME} ${TARGET_NAME}-git-info-header)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -33,7 +33,7 @@ function(myx_generate_private_config_header TARGET_NAME BASE_FILENAME)
|
|||||||
set_property(TARGET ${TARGET_NAME} APPEND PROPERTY PRIVATE_HEADER_FILES ${filename})
|
set_property(TARGET ${TARGET_NAME} APPEND PROPERTY PRIVATE_HEADER_FILES ${filename})
|
||||||
get_target_property(target_type ${TARGET_NAME} TYPE)
|
get_target_property(target_type ${TARGET_NAME} TYPE)
|
||||||
if(${target_type} STREQUAL "INTERFACE_LIBRARY")
|
if(${target_type} STREQUAL "INTERFACE_LIBRARY")
|
||||||
target_sources(${TARGET_NAME} INTERFACE ${filename})
|
target_sources(${TARGET_NAME} INTERFACE $<BUILD_INTERFACE:${filename}>)
|
||||||
else()
|
else()
|
||||||
target_sources(${TARGET_NAME} PRIVATE ${filename})
|
target_sources(${TARGET_NAME} PRIVATE ${filename})
|
||||||
endif()
|
endif()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user