-
Notifications
You must be signed in to change notification settings - Fork 76
/
Copy pathDiskImage.cmake
37 lines (31 loc) · 1.09 KB
/
DiskImage.cmake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function(add_image)
cmake_parse_arguments(
_ARG
""
"PRODUCT;SYSROOT;IMAGE_PARTITIONS"
"DEPENDS"
${ARGN}
)
set(SCRIPT_PATH ${CMAKE_SOURCE_DIR}/tools/generate_image.sh)
set(DISK_IMAGE_NAME ${_ARG_PRODUCT}.img)
set(DISK_IMAGE_PATH ${CMAKE_BINARY_DIR}/${DISK_IMAGE_NAME})
if(DEFINED _ARG_IMAGE_PARTITIONS)
set(IMAGE_PARTITIONS ${_ARG_IMAGE_PARTITIONS})
else()
set(IMAGE_PARTITIONS ${CMAKE_SOURCE_DIR}/config/products/${_ARG_PRODUCT}/image_partitions.map)
endif()
add_custom_command(
OUTPUT ${DISK_IMAGE_NAME}
DEPENDS ${SCRIPT_PATH} ${_ARG_DEPENDS}
COMMAND
${SCRIPT_PATH}
${DISK_IMAGE_NAME}
${IMAGE_PARTITIONS}
${CMAKE_BINARY_DIR}/${_ARG_SYSROOT}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Generate ${DISK_IMAGE_NAME} with: add_image: ${_ARG_PRODUCT} : ${_ARG_DEPENDS}"
)
message("Adding disk image target: ${DISK_IMAGE_NAME}")
add_custom_target(${_ARG_PRODUCT}-disk-img
DEPENDS ${DISK_IMAGE_NAME})
endfunction()