From 4960be8cd1313ab2df259f1812f61a23602ef04c Mon Sep 17 00:00:00 2001 From: Alexander Shaduri Date: Fri, 12 Mar 2021 16:03:16 +0400 Subject: [PATCH] Try to fix msys2 packaging. --- .github/workflows/cmake-tier1.yml | 3 ++ packaging/cpack_options.cmake | 48 ++++++++++++++++++++----------- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/.github/workflows/cmake-tier1.yml b/.github/workflows/cmake-tier1.yml index 6dba415..6be36c5 100644 --- a/.github/workflows/cmake-tier1.yml +++ b/.github/workflows/cmake-tier1.yml @@ -61,6 +61,8 @@ jobs: - uses: actions/checkout@v2 - uses: msys2/setup-msys2@v2 + # p7zip is needed to extract smartmontools + # fontconfig owns /etc/fonts with: msystem: ${{ matrix.msystem }} update: true @@ -69,6 +71,7 @@ jobs: mingw-w64-${{ matrix.arch }}-pkg-config mingw-w64-${{ matrix.arch }}-cmake mingw-w64-${{ matrix.arch }}-gcc + mingw-w64-${{ matrix.arch }}-fontconfig make p7zip diff --git a/packaging/cpack_options.cmake b/packaging/cpack_options.cmake index 598d758..98b86b1 100644 --- a/packaging/cpack_options.cmake +++ b/packaging/cpack_options.cmake @@ -154,14 +154,12 @@ if (WIN32) option(APP_WINDOWS_SMARTCTL_ROOT "Location of root folder for smartctl, for packing Windows packages" "") if (NOT APP_WINDOWS_SMARTCTL_ROOT) if (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Windows") -# if (CMAKE_SIZEOF_VOID_P EQUAL 8) -# set(APP_WINDOWS_SMARTCTL_ROOT "C:\\Program Files\\smartmontools") -# else() -# set(APP_WINDOWS_SMARTCTL_ROOT "C:\\Program Files (x86)\\smartmontools") -# endif() -# file(TO_CMAKE_PATH "${APP_WINDOWS_SMARTCTL_ROOT}" APP_WINDOWS_SMARTCTL_ROOT) - # GitHub download location - set(APP_WINDOWS_SMARTCTL_ROOT "${CMAKE_BINARY_DIR}/smartmontools") + if (CMAKE_SIZEOF_VOID_P EQUAL 8) + set(APP_WINDOWS_SMARTCTL_ROOT "C:\\Program Files\\smartmontools") + else() + set(APP_WINDOWS_SMARTCTL_ROOT "C:\\Program Files (x86)\\smartmontools") + endif() + file(TO_CMAKE_PATH "${APP_WINDOWS_SMARTCTL_ROOT}" APP_WINDOWS_SMARTCTL_ROOT) else() # Cross-compiling if (CMAKE_SIZEOF_VOID_P EQUAL 8) set(APP_WINDOWS_SMARTCTL_ROOT "$ENV{HOME}/.wine/drive_c/Program Files/smartmontools") @@ -174,20 +172,34 @@ if (WIN32) set(WINDOWS_SUFFIX "win32") + set(SMARTCTL_EXTRACED_BIN_DIR "bin") if (CMAKE_SIZEOF_VOID_P EQUAL 8) set(WINDOWS_SUFFIX "win64") + set(SMARTCTL_EXTRACED_BIN_DIR "bin64") endif() # TODO unix2dos doc/*.txt # Smartmontools - install(FILES - "${APP_WINDOWS_SMARTCTL_ROOT}/bin/drivedb.h" - "${APP_WINDOWS_SMARTCTL_ROOT}/bin/smartctl-nc.exe" - "${APP_WINDOWS_SMARTCTL_ROOT}/bin/smartctl.exe" - "${APP_WINDOWS_SMARTCTL_ROOT}/bin/update-smart-drivedb.exe" - DESTINATION . - ) + if ("$ENV{CI}") + # GitHub download location + install(FILES + "${CMAKE_BUILD_DIR}/smartmontools/bin/drivedb.h" + "${CMAKE_BUILD_DIR}/smartmontools/bin/update-smart-drivedb.exe" + "${CMAKE_BUILD_DIR}/smartmontools/${SMARTCTL_EXTRACED_BIN_DIR}/smartctl-nc.exe" + "${CMAKE_BUILD_DIR}/smartmontools/${SMARTCTL_EXTRACED_BIN_DIR}/smartctl.exe" + DESTINATION . + ) + else() + # System-installed smartmontools + install(FILES + "${APP_WINDOWS_SMARTCTL_ROOT}/bin/drivedb.h" + "${APP_WINDOWS_SMARTCTL_ROOT}/bin/smartctl-nc.exe" + "${APP_WINDOWS_SMARTCTL_ROOT}/bin/smartctl.exe" + "${APP_WINDOWS_SMARTCTL_ROOT}/bin/update-smart-drivedb.exe" + DESTINATION . + ) + endif() # GCC Runtime file(GLOB MATCHED_FILES LIST_DIRECTORIES false "${APP_WINDOWS_SYSROOT}/bin/libgcc_s_*.dll") @@ -337,10 +349,12 @@ if (WIN32) # install(FILES "${APP_WINDOWS_SYSROOT}/etc/gtk-3.0/settings.ini" DESTINATION "etc/gtk-3.0/") install(FILES "${CMAKE_SOURCE_DIR}/packaging/gtk/etc/gtk-3.0/settings.ini" DESTINATION "etc/gtk-3.0/") - install(DIRECTORY "${APP_WINDOWS_SYSROOT}/share/themes" DESTINATION "share/") + # Not present in msys2 +# install(DIRECTORY "${APP_WINDOWS_SYSROOT}/share/themes" DESTINATION "share/") # needed for file chooser - install(DIRECTORY "${APP_WINDOWS_SYSROOT}/share/glib-2.0/schemas" DESTINATION "share/glib-2.0/") + # Not present in msys2 (maybe use plain glib, not mingw64 variant?) +# install(DIRECTORY "${APP_WINDOWS_SYSROOT}/share/glib-2.0/schemas" DESTINATION "share/glib-2.0/") # Disable installing icons for now. TODO: Update this for msys2.