From 0366278c9d03757b4170d236d02374e24fe39e32 Mon Sep 17 00:00:00 2001 From: Enova <17408285+Enovale@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:15:22 -0500 Subject: [PATCH] Codechange: Support ID_LIKE in build targeting (#15818) --- cmake/InstallAndPackage.cmake | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/cmake/InstallAndPackage.cmake b/cmake/InstallAndPackage.cmake index b67a370e46..b1dfda8311 100644 --- a/cmake/InstallAndPackage.cmake +++ b/cmake/InstallAndPackage.cmake @@ -191,17 +191,26 @@ elseif(UNIX) set(PLATFORM "unknown") else() if(EXISTS "/etc/os-release") - file(STRINGS "/etc/os-release" OS_RELEASE_CONTENTS REGEX "^ID=") - string(REGEX MATCH "ID=(.*)" _ ${OS_RELEASE_CONTENTS}) - set(DISTRO_ID ${CMAKE_MATCH_1}) - if(DISTRO_ID STREQUAL "arch") + file(STRINGS "/etc/os-release" OS_RELEASE_LIKE_CONTENTS REGEX "^ID_LIKE=") + if (OS_RELEASE_LIKE_CONTENTS) + string(REGEX MATCH "ID_LIKE=\\\"?([^\\\"]+)" _ ${OS_RELEASE_LIKE_CONTENTS}) + string(REGEX MATCHALL "([^ ]+)" DISTRO_LIKE_IDS ${CMAKE_MATCH_1}) + endif() + if (DISTRO_LIKE_IDS) + set(DISTRO_IDS ${DISTRO_LIKE_IDS}) + else() + file(STRINGS "/etc/os-release" OS_RELEASE_CONTENTS REGEX "^ID=") + string(REGEX MATCH "ID=(.*)" _ ${OS_RELEASE_CONTENTS}) + set(DISTRO_IDS ${CMAKE_MATCH_1}) + endif() + if("arch" IN_LIST DISTRO_IDS) set(PLATFORM "arch") set(CPACK_GENERATOR "TXZ") - elseif(DISTRO_ID STREQUAL "fedora" OR DISTRO_ID STREQUAL "rhel") + elseif("fedora" IN_LIST DISTRO_IDS OR "rhel" IN_LIST DISTRO_IDS) set(PLATFORM "fedora") set(CPACK_GENERATOR "RPM") include(PackageRPM) - elseif(DISTRO_ID STREQUAL "ubuntu" OR DISTRO_ID STREQUAL "debian" OR DISTRO_ID STREQUAL "linuxmint") + elseif("debian" IN_LIST DISTRO_IDS OR "ubuntu" IN_LIST DISTRO_IDS OR "linuxmint" IN_LIST DISTRO_IDS) file(STRINGS "/etc/os-release" OS_RELEASE_CODENAME REGEX "^VERSION_CODENAME=") string(REGEX MATCH "VERSION_CODENAME=(.*)" _ ${OS_RELEASE_CODENAME}) set(RELEASE_CODENAME ${CMAKE_MATCH_1})