1

我是 Cmake 的新手。对于在 Windows 和 Linux 上运行的应用程序,我有一个CMakeLists.txt如下所示的内容。

cmake_minimum_required(VERSION 3.16)

find_package(Qt5 COMPONENTS Qml Quick)

if(UNIX AND NOT APPLE)
    find_package(Qt5 COMPONENTS Core Network)
endif()

问题:
我有一个find_package电话要获取QmlQuick这是两个Qt5组件。这对于 Windows 和 Linux 案例来说都很好并且是必需的。但在仅针对 Linux 的情况下,我只想查找find_package并不提及. 可能吗?CoreNetworkQt5

我试过find_package(Core Network)find_package(Qt5::Core Qt5::Network)。两者都没有工作。

下面 if else 是唯一的方法吗?

if(WIN32)
    find_package(Qt5 COMPONENTS Qml Quick)
else()
    find_package(Qt5 COMPONENTS Qml Quick Core Network)
endif()

如果其他情况,我不想做上述事情,这就是我的观点。我想做这样的事情,看起来是增量的

find_package(Qt5 COMPONENTS Qml Quick)
if(UNIX AND NOT APPLE)
    find_package(Core Network) # But this does not compile
else()
4

0 回答 0