首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPack NuGet本机库

CPack NuGet本机库
EN

Stack Overflow用户
提问于 2020-07-30 14:25:28
回答 1查看 206关注 0票数 1

我很难从本机NuGet库创建一个C++包。现在,我有以下设置:

代码语言:javascript
复制
include(GNUInstallDirs)
file(RELATIVE_PATH relDir
    ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}
    ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
set(CMAKE_INSTALL_RPATH $ORIGIN $ORIGIN/${relDir})
set(CMAKE_INSTALL_DOCDIR ${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME})

# ...other CMake config...

install(TARGETS MyLib
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mylib
)

set(CPACK_PACKAGE_NAME MyLib)
set(CPACK_PACKAGE_VENDOR Me)
# ...standard CPack variables...

if(WIN32)
    set(CPACK_NUGET_PACKAGE_TAGS "Native" "native")
    set(CPACK_GENERATOR ZIP;NuGet)
else()
    set(CPACK_GENERATOR TGZ)
endif()

include(CPack)

然后,我运行cmake --build . --target package来打包我的库,CMake正确地生成一个包含所需的.lib.h文件的.nupkg文件。但是,当我尝试在C++/WinRT项目中使用生成的包时,我不能#include打包的头文件。

因此,我有以下问题:

  • 根据这就是答案MS文档,打包的文件应该遵循一定的层次结构。是否需要更改CMake install()路径?
  • 根据这就是答案,我找不到我的头是因为我没有任何.targets文件。我是否需要自己创建一个,或者是否有一种方法告诉CPack生成它?
EN

回答 1

Stack Overflow用户

发布于 2022-06-01 08:13:52

不确定问题是否仍然存在,但对我来说,它适用于CPack nuget生成器。

在我的库中,我正在为安装做以下操作。我将内嵌头标记为公共的。

代码语言:javascript
复制
target_include_directories(${LIBRARY_NAME}
    PUBLIC
        $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>
        $<INSTALL_INTERFACE:include/>)

set_target_properties(${LIBRARY_NAME}
    PROPERTIES PUBLIC_HEADER 
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>)

用于安装

代码语言:javascript
复制
install(
    TARGETS ${LIBRARY_NAME}
    ARCHIVE  DESTINATION "lib"
    LIBRARY  DESTINATION "bin"
    RUNTIME  DESTINATION "bin"
    PUBLIC_HEADER DESTINATION "include")

在安装nuget包之后,头可以包含在另一个C++/CLI项目中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63175277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档