From 242b719f0cbb24b485e439edd0da5aedee87f444 Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Mon, 24 Feb 2020 15:49:11 +0200 Subject: [build] Generate the LICENSE.md for mbgl-core Add a script that for everything we link against mbgl-core, it will check the license and generate a file all the dependencies listed with the respective authors, project urls and license. --- scripts/license.cmake | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 scripts/license.cmake (limited to 'scripts') diff --git a/scripts/license.cmake b/scripts/license.cmake new file mode 100644 index 0000000000..e3a7d2aaa4 --- /dev/null +++ b/scripts/license.cmake @@ -0,0 +1,40 @@ +# Generate the license file for the target ${param} at config time + +function(mbgl_generate_license param) + # Fake targets or non relevant. + set(BLACKLIST "mbgl-compiler-options") + + get_target_property(LIBRARIES ${param} LINK_LIBRARIES) + list(INSERT LIBRARIES 0 ${param}) + + # cmake-format: off + foreach(LIBRARY IN LISTS LIBRARIES) + # cmake-format: on + if(${LIBRARY} IN_LIST BLACKLIST) + continue() + endif() + + if(TARGET ${LIBRARY}) + get_target_property(NAME ${LIBRARY} INTERFACE_MAPBOX_NAME) + get_target_property(URL ${LIBRARY} INTERFACE_MAPBOX_URL) + get_target_property(AUTHOR ${LIBRARY} INTERFACE_MAPBOX_AUTHOR) + get_target_property(LICENSE ${LIBRARY} INTERFACE_MAPBOX_LICENSE) + + if(NOT LICENSE OR NOT EXISTS ${LICENSE}) + message(FATAL_ERROR "License not found for target: ${LIBRARY}") + endif() + + file(READ ${LICENSE} LICENSE_DATA) + + string(APPEND LICENSE_LIST "### [${NAME}](${URL}) by ${AUTHOR}\n\n") + string(APPEND LICENSE_LIST "```\n${LICENSE_DATA}\n```\n\n") + string(APPEND LICENSE_LIST "---\n\n") + endif() + endforeach() + + file(WRITE ${CMAKE_BINARY_DIR}/${param}.license ${LICENSE_LIST}) + + add_custom_target(${param}-license COMMAND cat ${CMAKE_BINARY_DIR}/${param}.license) +endfunction() + +mbgl_generate_license(mbgl-core) -- cgit v1.2.1