From 08214db72a8dc97b1341f58cf4b452060723a974 Mon Sep 17 00:00:00 2001 From: Mustafa Kemal Gilor Date: Fri, 28 Feb 2025 17:52:36 +0300 Subject: [PATCH 1/2] [3rd-party/vcpkg] move "fmt" from submodules to vcpkg removed "fmt" submodule, and added fmt/11.0.2 as vcpkg dependency. added a find_package() call for fmt. replaced all "fmt" CMakeLists references with fmt::fmt-header-only Signed-off-by: Mustafa Kemal Gilor --- .gitmodules | 3 --- 3rd-party/CMakeLists.txt | 6 ------ 3rd-party/fmt | 1 - CMakeLists.txt | 4 ++++ src/cert/CMakeLists.txt | 2 +- src/client/cli/CMakeLists.txt | 2 +- src/client/cli/formatter/CMakeLists.txt | 2 +- src/client/common/CMakeLists.txt | 2 +- src/daemon/CMakeLists.txt | 6 +++--- src/iso/CMakeLists.txt | 2 +- src/logging/CMakeLists.txt | 2 +- src/network/CMakeLists.txt | 2 +- src/platform/backends/libvirt/CMakeLists.txt | 2 +- src/platform/backends/lxd/CMakeLists.txt | 2 +- src/platform/backends/qemu/CMakeLists.txt | 2 +- src/platform/backends/shared/linux/CMakeLists.txt | 2 +- .../backends/shared/qemu_img_utils/CMakeLists.txt | 2 +- src/platform/update/CMakeLists.txt | 2 +- src/settings/CMakeLists.txt | 2 +- src/ssh/CMakeLists.txt | 6 +++--- src/sshfs_mount/CMakeLists.txt | 2 +- src/utils/CMakeLists.txt | 2 +- src/xz_decoder/CMakeLists.txt | 2 +- vcpkg.json | 9 ++++++++- 24 files changed, 35 insertions(+), 34 deletions(-) delete mode 160000 3rd-party/fmt diff --git a/.gitmodules b/.gitmodules index 88b666a623..cf80a1d46b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,9 +14,6 @@ [submodule "3rd-party/scope_guard"] path = 3rd-party/scope_guard url = https://github.com/ricab/scope_guard.git -[submodule "3rd-party/fmt"] - path = 3rd-party/fmt - url = https://github.com/fmtlib/fmt.git [submodule "3rd-party/vcpkg"] path = 3rd-party/vcpkg url = https://github.com/microsoft/vcpkg diff --git a/3rd-party/CMakeLists.txt b/3rd-party/CMakeLists.txt index a8cbaa672a..b0a5fa7f0b 100644 --- a/3rd-party/CMakeLists.txt +++ b/3rd-party/CMakeLists.txt @@ -89,12 +89,6 @@ target_link_libraries(yaml INTERFACE # libssh config add_subdirectory(libssh) -# fmt header only library -add_library(fmt INTERFACE) -target_compile_definitions(fmt INTERFACE FMT_HEADER_ONLY=1) -target_include_directories(fmt INTERFACE - ${CMAKE_CURRENT_SOURCE_DIR}/fmt/include) - # premock header only library to mock c-functions add_library(premock INTERFACE) target_include_directories(premock INTERFACE diff --git a/3rd-party/fmt b/3rd-party/fmt deleted file mode 160000 index 0c9fce2ffe..0000000000 --- a/3rd-party/fmt +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0c9fce2ffefecfdce794e1859584e25877b7b592 diff --git a/CMakeLists.txt b/CMakeLists.txt index 473c92257c..fdea0d490a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -138,6 +138,10 @@ find_package(OpenSSL REQUIRED) # gRPC config find_package(gRPC CONFIG REQUIRED) +# fmt config +find_package(fmt CONFIG REQUIRED) +# targets: fmt::fmt, fmt::fmt-header-only + # Needs to be here before we set further compilation options add_subdirectory(3rd-party) diff --git a/src/cert/CMakeLists.txt b/src/cert/CMakeLists.txt index ce0b3e101d..b88e640b49 100644 --- a/src/cert/CMakeLists.txt +++ b/src/cert/CMakeLists.txt @@ -28,7 +28,7 @@ target_compile_options(cert PRIVATE ) target_link_libraries(cert - fmt + fmt::fmt-header-only utils OpenSSL::SSL OpenSSL::Crypto diff --git a/src/client/cli/CMakeLists.txt b/src/client/cli/CMakeLists.txt index 052631b2e1..b8aa3ba804 100644 --- a/src/client/cli/CMakeLists.txt +++ b/src/client/cli/CMakeLists.txt @@ -19,7 +19,7 @@ add_library(client STATIC target_link_libraries(client client_platform commands - fmt + fmt::fmt-header-only formatter rpc scope_guard diff --git a/src/client/cli/formatter/CMakeLists.txt b/src/client/cli/formatter/CMakeLists.txt index 5afde760a8..43abd0beb9 100644 --- a/src/client/cli/formatter/CMakeLists.txt +++ b/src/client/cli/formatter/CMakeLists.txt @@ -21,7 +21,7 @@ add_library(formatter STATIC target_link_libraries(formatter client_common - fmt + fmt::fmt-header-only rpc settings utils diff --git a/src/client/common/CMakeLists.txt b/src/client/common/CMakeLists.txt index 49a5d2b363..69f9eabfaa 100644 --- a/src/client/common/CMakeLists.txt +++ b/src/client/common/CMakeLists.txt @@ -19,7 +19,7 @@ add_library(client_common STATIC target_link_libraries(client_common cert - fmt + fmt::fmt-header-only platform rpc settings diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt index 826c91895e..38cb4f1791 100644 --- a/src/daemon/CMakeLists.txt +++ b/src/daemon/CMakeLists.txt @@ -34,7 +34,7 @@ include_directories(daemon target_link_libraries(daemon cert delayed_shutdown - fmt + fmt::fmt-header-only logger petname platform @@ -55,7 +55,7 @@ add_library(delayed_shutdown STATIC ${CMAKE_SOURCE_DIR}/include/multipass/delayed_shutdown_timer.h) target_link_libraries(delayed_shutdown - fmt + fmt::fmt-header-only logger ssh_common Qt6::Core @@ -64,7 +64,7 @@ target_link_libraries(delayed_shutdown add_executable(multipassd daemon_main.cpp) target_link_libraries(multipassd - fmt + fmt::fmt-header-only daemon) install(TARGETS multipassd diff --git a/src/iso/CMakeLists.txt b/src/iso/CMakeLists.txt index 82a8fc1261..2261281c1e 100644 --- a/src/iso/CMakeLists.txt +++ b/src/iso/CMakeLists.txt @@ -18,6 +18,6 @@ add_library(iso STATIC cloud_init_iso.cpp) target_link_libraries(iso - fmt + fmt::fmt-header-only utils Qt6::Core) diff --git a/src/logging/CMakeLists.txt b/src/logging/CMakeLists.txt index dc0e1be84f..dbd901edfd 100644 --- a/src/logging/CMakeLists.txt +++ b/src/logging/CMakeLists.txt @@ -19,5 +19,5 @@ add_library(logger STATIC standard_logger.cpp) target_link_libraries(logger - fmt + fmt::fmt-header-only Qt6::Core) diff --git a/src/network/CMakeLists.txt b/src/network/CMakeLists.txt index afafe9f79c..6ff29717d4 100644 --- a/src/network/CMakeLists.txt +++ b/src/network/CMakeLists.txt @@ -25,7 +25,7 @@ add_library(ip_address STATIC ip_address.cpp) target_link_libraries(network - fmt + fmt::fmt-header-only logger utils Qt6::Core diff --git a/src/platform/backends/libvirt/CMakeLists.txt b/src/platform/backends/libvirt/CMakeLists.txt index 184ac8c17d..2d2f667e85 100644 --- a/src/platform/backends/libvirt/CMakeLists.txt +++ b/src/platform/backends/libvirt/CMakeLists.txt @@ -25,7 +25,7 @@ function(add_libvirt_target TARGET_NAME) target_include_directories(${TARGET_NAME} PRIVATE ${LIBVIRT_INCLUDE_DIRS}) target_link_libraries(${TARGET_NAME} daemon - fmt + fmt::fmt-header-only ip_address qemu_img_utils Qt6::Core diff --git a/src/platform/backends/lxd/CMakeLists.txt b/src/platform/backends/lxd/CMakeLists.txt index d94582219e..f9e0db518c 100644 --- a/src/platform/backends/lxd/CMakeLists.txt +++ b/src/platform/backends/lxd/CMakeLists.txt @@ -23,7 +23,7 @@ add_library(lxd_backend STATIC target_link_libraries(lxd_backend Qt6::Core Qt6::Network - fmt + fmt::fmt-header-only ip_address logger network diff --git a/src/platform/backends/qemu/CMakeLists.txt b/src/platform/backends/qemu/CMakeLists.txt index 868ffa540a..ffc18c737c 100644 --- a/src/platform/backends/qemu/CMakeLists.txt +++ b/src/platform/backends/qemu/CMakeLists.txt @@ -34,7 +34,7 @@ add_library(qemu_backend STATIC ${CMAKE_SOURCE_DIR}/include/multipass/process/process.h) target_link_libraries(qemu_backend - fmt + fmt::fmt-header-only ip_address logger qemu_img_utils diff --git a/src/platform/backends/shared/linux/CMakeLists.txt b/src/platform/backends/shared/linux/CMakeLists.txt index cb27718dfc..9692569698 100644 --- a/src/platform/backends/shared/linux/CMakeLists.txt +++ b/src/platform/backends/shared/linux/CMakeLists.txt @@ -25,7 +25,7 @@ function(add_target TARGET_NAME) target_link_libraries(${TARGET_NAME} apparmor - fmt + fmt::fmt-header-only scope_guard shared utils diff --git a/src/platform/backends/shared/qemu_img_utils/CMakeLists.txt b/src/platform/backends/shared/qemu_img_utils/CMakeLists.txt index 91f96a9eb0..eb98ff29bd 100644 --- a/src/platform/backends/shared/qemu_img_utils/CMakeLists.txt +++ b/src/platform/backends/shared/qemu_img_utils/CMakeLists.txt @@ -16,5 +16,5 @@ add_library(qemu_img_utils STATIC EXCLUDE_FROM_ALL qemu_img_utils.cpp) target_link_libraries(qemu_img_utils - fmt + fmt::fmt-header-only Qt6::Core) diff --git a/src/platform/update/CMakeLists.txt b/src/platform/update/CMakeLists.txt index aa371fb774..6c5800fb3b 100644 --- a/src/platform/update/CMakeLists.txt +++ b/src/platform/update/CMakeLists.txt @@ -20,7 +20,7 @@ add_library(update STATIC target_link_libraries(update network - fmt + fmt::fmt-header-only rpc semver Qt6::Core) diff --git a/src/settings/CMakeLists.txt b/src/settings/CMakeLists.txt index fa38980474..394f4e871b 100644 --- a/src/settings/CMakeLists.txt +++ b/src/settings/CMakeLists.txt @@ -21,6 +21,6 @@ add_library(settings STATIC settings.cpp) target_link_libraries(settings - fmt + fmt::fmt-header-only utils Qt6::Core) diff --git a/src/ssh/CMakeLists.txt b/src/ssh/CMakeLists.txt index 385942ad9d..c7728370c8 100644 --- a/src/ssh/CMakeLists.txt +++ b/src/ssh/CMakeLists.txt @@ -21,7 +21,7 @@ function(add_ssh_target TARGET_NAME) ssh_session.cpp) target_link_libraries(${TARGET_NAME} - fmt + fmt::fmt-header-only libssh utils Qt6::Core) @@ -40,7 +40,7 @@ function(add_sftp_client_target TARGET_NAME) ssh_session.cpp) target_link_libraries(${TARGET_NAME} - fmt + fmt::fmt-header-only libssh utils Qt6::Core) @@ -58,7 +58,7 @@ function(add_ssh_client_target TARGET_NAME) target_link_libraries(${TARGET_NAME} console - fmt + fmt::fmt-header-only libssh utils Qt6::Core) diff --git a/src/sshfs_mount/CMakeLists.txt b/src/sshfs_mount/CMakeLists.txt index 80476d000f..75b4949d17 100644 --- a/src/sshfs_mount/CMakeLists.txt +++ b/src/sshfs_mount/CMakeLists.txt @@ -25,7 +25,7 @@ function(add_sshfs_mount_target TARGET_NAME) ${CMAKE_SOURCE_DIR}/include/multipass/sshfs_mount/sshfs_mount_handler.h) target_link_libraries(${TARGET_NAME} - fmt + fmt::fmt-header-only logger platform ssh diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 006c198678..1d4cd6171e 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -28,7 +28,7 @@ function(add_target TARGET_NAME) target_link_libraries(${TARGET_NAME} cert - fmt + fmt::fmt-header-only logger ssh_common ssh diff --git a/src/xz_decoder/CMakeLists.txt b/src/xz_decoder/CMakeLists.txt index fb0f93ee56..d686262f63 100644 --- a/src/xz_decoder/CMakeLists.txt +++ b/src/xz_decoder/CMakeLists.txt @@ -19,6 +19,6 @@ add_library(xz_image_decoder STATIC target_link_libraries(xz_image_decoder xz-embedded - fmt + fmt::fmt-header-only rpc Qt6::Core) diff --git a/vcpkg.json b/vcpkg.json index 558d9f3e77..b1a6b72d8b 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -2,6 +2,13 @@ "builtin-baseline": "6f29f12e82a8293156836ad81cc9bf5af41fe836", "dependencies": [ "poco", - "grpc" + "grpc", + "fmt" + ], + "overrides": [ + { + "name": "fmt", + "version": "11.0.2" + } ] } From 47e0fa055885834c541364e20aad1b8939a203f0 Mon Sep 17 00:00:00 2001 From: Mustafa Kemal Gilor Date: Tue, 15 Apr 2025 18:02:54 +0300 Subject: [PATCH 2/2] [gh/actions/checkout] unshallow vcpkg submodule sometimes, the dependency port files may refer to a revision that is different than the HEAD, which causes vcpkg to fail since the revision needed to satisfy the dependency is not available. the "Check out submodules" step now unshallows the vcpkg to avoid that. Signed-off-by: Mustafa Kemal Gilor --- .github/actions/checkout/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/checkout/action.yml b/.github/actions/checkout/action.yml index 6932843965..28dc2aa894 100644 --- a/.github/actions/checkout/action.yml +++ b/.github/actions/checkout/action.yml @@ -11,6 +11,7 @@ runs: # This repository can't do depth. git -c protocol.version=2 submodule update --init 3rd-party/xz-decoder/xz-embedded git -c protocol.version=2 submodule update --init --force --depth=1 --recursive + git -C 3rd-party/vcpkg fetch --unshallow - name: Fetch tags shell: bash