Files
MapLibreParticleLab/scripts/license.cmake
Thiago Marcos P. Santos 242b719f0c [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.
2020-02-27 18:19:31 +02:00

41 lines
1.4 KiB
CMake

# 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)