Files
cmake_common/mo2_extension.cmake
2024-10-12 13:29:18 +02:00

32 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 3.16)
#! mo2_configure_extension : configure a MO2 extension
#
# this function read the extension identifier from the metadata.json file and
# expose it as a ${extension_identifier} variable
#
# this function also trigger the installation of the metadata file to the
# extension directory
#
function(mo2_configure_extension)
set(METADATA_FILE ${CMAKE_CURRENT_SOURCE_DIR}/metadata.json)
if(NOT (EXISTS ${METADATA_FILE}))
message(ERROR "metadata file ${METADATA_FILE} not found")
endif()
file(READ ${METADATA_FILE} JSON_METADATA)
string(JSON extension_identifier GET ${JSON_METADATA} id)
string(JSON extension_icon ERROR_VARIABLE extension_icon_error GET ${JSON_METADATA} icon)
set(MO2_EXTENSION_ID ${extension_identifier} PARENT_SCOPE)
install(FILES ${METADATA_FILE}
DESTINATION ${MO2_INSTALL_BIN}/extensions/${extension_identifier}/)
if (NOT ${extension_icon} MATCHES "icon-NOTFOUND")
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${extension_icon}
DESTINATION ${MO2_INSTALL_BIN}/extensions/${extension_identifier}/)
endif()
endfunction()