diff --git a/.gitignore b/.gitignore index 8bf88545cc..7083c29c68 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ *.abi.hpp *.cmake !.cicd +!package.cmake !CMakeModules/*.cmake *.ninja \#* diff --git a/package.cmake b/package.cmake index 66f01e6195..3ec67d290d 100644 --- a/package.cmake +++ b/package.cmake @@ -21,6 +21,20 @@ if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.9" AND EXISTS /etc/os-release) string(APPEND CPACK_PACKAGE_FILE_NAME "-el${CMAKE_MATCH_1}") endif() endif() + +# Fix debian package filename as it should have the format: +# __.deb + +# Find architecture using dpkg +if (DPKG_FOUND) + execute_process(COMMAND bash -c "${DPKG_FOUND} --print-architecture" + OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE + OUTPUT_STRIP_TRAILING_WHITESPACE) +else() + set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}") +endif() +string(REGEX REPLACE "^${CMAKE_PROJECT_NAME}-(.*)$" "${CMAKE_PROJECT_NAME}_\\1_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}" CPACK_DEBIAN_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}") + string(APPEND CPACK_PACKAGE_FILE_NAME "-${CMAKE_SYSTEM_PROCESSOR}") set(CPACK_PACKAGE_CONTACT "EOS Network Foundation") @@ -43,7 +57,7 @@ list(REMOVE_ITEM CPACK_COMPONENTS_ALL "Unspecified") #enable per component packages for .deb; ensure main package is just "leap", not "leap-base", and make the dev package have "leap-dev" at the front not the back set(CPACK_DEB_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_BASE_PACKAGE_NAME "${CMAKE_PROJECT_NAME}") -set(CPACK_DEBIAN_BASE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}.deb") +set(CPACK_DEBIAN_BASE_FILE_NAME "${CPACK_DEBIAN_FILE_NAME}.deb") string(REGEX REPLACE "^(${CMAKE_PROJECT_NAME})" "\\1-dev" CPACK_DEBIAN_DEV_FILE_NAME "${CPACK_DEBIAN_BASE_FILE_NAME}") #deb package tooling will be unable to detect deps for the dev package. llvm is tricky since we don't know what package could have been used; try to figure it out