added addDeploySnapDistructive method (use the apt version of the snapcraft)

This commit is contained in:
Andrei Yankovich 2021-05-15 13:39:55 +03:00
parent ff91c5f02c
commit 801fd8d511

View File

@ -347,6 +347,72 @@ function(addDeploySnap name targetDir)
add_dependencies(deploy snap${name})
endfunction()
function(addDeploySnapDistructive name targetDir)
if(TARGET snap${name})
message("the snap${name} target already created!")
return()
endif(TARGET snap${name})
find_program(SNAPCRAFT_EXE "snapcraft")
if(NOT EXISTS ${SNAPCRAFT_EXE})
message("please install the snapcraft before deploy this project! Use: sudo snap install snapcraft --classic")
return()
endif(NOT EXISTS ${SNAPCRAFT_EXE})
ADD_CUSTOM_TARGET(
snapClear${name}
COMMAND snapcraft clean ${SNAPCRAFT_MODE}
COMMENT "clear snap: snapcraft clean ${SNAPCRAFT_MODE}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
ADD_CUSTOM_TARGET(
snapcraft${name}Try
COMMAND snapcraft ${SNAPCRAFT_MODE}
COMMENT "create snap: snapcraft ${SNAPCRAFT_MODE}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
DEPENDS deploy${name} snapClear${name}
)
ADD_CUSTOM_TARGET(snapcraft${name}Permision
COMMAND chmod -R 777 ${CMAKE_SOURCE_DIR}/prime
COMMENT "chmod -R 777 ${CMAKE_SOURCE_DIR}/prime"
DEPENDS snapcraft${name}Try
)
ADD_CUSTOM_TARGET(
snapcraft${name}
COMMAND snapcraft ${SNAPCRAFT_MODE}
COMMENT "create snap: snapcraft ${SNAPCRAFT_MODE}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
DEPENDS snapcraft${name}Permision
)
ADD_CUSTOM_TARGET(
snapcraftCopy${name}
COMMAND ${CMAKE_COMMAND} -E copy *.snap ${targetDir}
COMMENT "copy snap: ${CMAKE_COMMAND} -E copy *.snap ${targetDir}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
DEPENDS snapcraft${name}
)
ADD_CUSTOM_TARGET(
snap${name}
COMMENT "deploy snap${name}"
DEPENDS snapcraftCopy${name}
)
add_dependencies(deploy snap${name})
endfunction()
function(addDeployQIF name sourceDir targetDir config)