CMake Error when using with vcpkg
Reproduce repo: Studio26F vcpkg.json:
{
"name": "studio26f",
"version-string": "1.0.0",
"maintainers": [
"Particle_G <[email protected]>"
],
"description": "The new centralized backend for the block stacking game <Techmino>",
"homepage": "https://github.com/26F-Studio/Studio26F",
"documentation": "https://github.com/26F-Studio/Studio26F",
"license": "LGPL-3.0",
"dependencies": [
"cryptopp",
{
"name": "drogon",
"default-features": false,
"features": [
"ctl",
"orm",
"postgres",
"redis"
]
},
"mailio",
"magic-enum",
"range-v3"
]
}
CMake Error at cmake-build-debug/vcpkg_installed/x64-windows/share/mailio/mailioConfig.cmake:61 (set_target_properties):
The link interface of target "mailio" contains:
Boost::system
but the target was not found. Possible reasons include:
* There is a typo in the target name.
* A find_package call is missing for an IMPORTED target.
* An ALIAS target is missing.
Call Stack (most recent call first):
vcpkg/scripts/buildsystems/vcpkg.cmake:859 (_find_package)
CMakeLists.txt:35 (find_package)
CMake Generate step failed. Build files cannot be regenerated correctly.
ninja: error: rebuilding 'build.ninja': subcommand failed
Does it work when directly consumed from Vcpkg? Because the Microsoft CI/CD worked fine for the version 0.23.
I'm currently using vcpkg as a submodule, and I havn't tried with an empty vcpkg.json which has mailio as the only one dependency. Would try that out.
Hi, @ParticleG Have you solve this problem?
modify CMakeLists.txt from
find_package(mailio CONFIG REQUIRED)
to
find_package(boost_system CONFIG REQUIRED)
find_package(boost_date_time CONFIG REQUIRED)
find_package(mailio CONFIG REQUIRED)
fix my problem
Can you check whether https://github.com/karastojko/mailio/pull/193 and https://github.com/karastojko/mailio/pull/199 fixed the issue? Use v0.25.1 for that.
The new file should solve the issue https://github.com/karastojko/mailio/blob/c85e0632caac8c144b8e85f68bc74966249ccace/cmake/mailio-config.cmake.in.
I guess I have to create PR to Vcpkg for the version 0.25.1.
I had a similar issue and here's how I solved it:
-
The problem might be due to how vcpkg names Boost libraries. For example,
boost_systemmay be named something likeboost_system-vc143-mt-x64-1_88.lib, which CMake can't find unless explicitly declared. -
When using Boost dynamically, some components like
boost-regexmight not produce.libfiles. You can resolve this by building Boost statically usingb2.
In my case, I encountered a linking error while cross-compiling an Electron addon C++ module, and resolving Boost linking manually fixed it.
The vcpkg port is at 0.25.3 now.