我有一个客户端/服务器应用程序项目,我为每个项目定义了一个安装组件。
我set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)为了在运行时获取两个不同的包文件而使用make package。但是我没有为每个目标设定不同的目标。所以为了获得客户端安装包,我也编译并打包了服务器应用程序。
有没有一种简单的方法来获取单个组件的包装?
CMake 假设在安装之前make all应该执行。当 CPack 想要创建包时,它也做出了相同的假设。如果您只想构建与某些特定组件相关的目标,则需要强制make all仅构建这些目标。
例如,您可以检查打算在cmake命令行中设置的缓存变量:
CMakeLists.txt:
option(SERVER_ONLY "Set if you want to build only server")
option(CLIENT_ONLY "Set if you want to build only client")
if(NOT SERVER_ONLY)
    add_subdirectory(client)
endif()
if(NOT CLIENT_ONLY)
    add_subdirectory(server)
endif()
Run Code Online (Sandbox Code Playgroud)
因此,对于仅构建和打包服务器组件,您可以使用
cmake -DSERVER_ONLY=ON <source-dir>
cpack <...>
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1022 次  |  
        
|   最近记录:  |