1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 21:17:45 +00:00

Meta+LibEDID: Download and generate the PNP ID database

This downloads the UEFI's published PNP ID database and generates a
lookup table for use in LibEDID. The lookup table isn't optimized at
all, but this can be easily done at a later point if needed.
This commit is contained in:
Tom 2022-01-17 16:53:17 -07:00 committed by Linus Groh
parent ab1075e296
commit 869c20b05d
8 changed files with 359 additions and 0 deletions

31
Meta/CMake/pnp_ids.cmake Normal file
View file

@ -0,0 +1,31 @@
include(${CMAKE_CURRENT_LIST_DIR}/utils.cmake)
set(PNP_IDS_FILE pnp.ids)
set(PNP_IDS_URL http://www.uefi.org/uefi-pnp-export)
set(PNP_IDS_EXPORT_PATH ${CMAKE_BINARY_DIR}/pnp.ids.html)
set(PNP_IDS_INSTALL_PATH ${CMAKE_INSTALL_DATAROOTDIR}/${PNP_IDS_FILE})
if(ENABLE_PNP_IDS_DOWNLOAD AND NOT EXISTS ${PNP_IDS_PATH})
message(STATUS "Downloading PNP ID database from ${PNP_IDS_URL}...")
file(MAKE_DIRECTORY ${CMAKE_INSTALL_DATAROOTDIR})
file(DOWNLOAD ${PNP_IDS_URL} ${PNP_IDS_EXPORT_PATH} INACTIVITY_TIMEOUT 10)
set(PNP_IDS_HEADER LibEDID/PnpIDs.h)
set(PNP_IDS_IMPLEMENTATION LibEDID/PnpIDs.cpp)
set(PNP_IDS_TARGET_PREFIX LibEDID_)
invoke_generator(
"PnpIDsData"
Lagom::GeneratePnpIDsData
"${PNP_IDS_EXPORT_PATH}"
"${PNP_IDS_TARGET_PREFIX}"
"${PNP_IDS_HEADER}"
"${PNP_IDS_IMPLEMENTATION}"
arguments -p "${PNP_IDS_EXPORT_PATH}"
)
set(PNP_IDS_SOURCES
${PNP_IDS_HEADER}
${PNP_IDS_IMPLEMENTATION}
)
endif()