我是 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
电话要获取Qml
,Quick
这是两个Qt5
组件。这对于 Windows 和 Linux 案例来说都很好并且是必需的。但在仅针对 Linux 的情况下,我只想查找find_package
并不提及. 可能吗?Core
Network
Qt5
我试过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()