Quantcast
Channel: Active questions tagged nuget-package - Stack Overflow
Viewing all articles
Browse latest Browse all 3067

CPack NuGet native library

$
0
0

I struggle to create a NuGet package from a native C++ library. For now, I have the following setup:

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)

Then, I run cmake --build . --target package to package my lib, and CMake correctly generates a .nupkg file containing the .lib and .h files I want. But then, when I try to use the generated package in a C++/WinRT project, I cannot #include the packaged headers.

So I have the following questions :

  • according to this SO answer and MS documentation, the packaged files should follow a certain hierarchy. Do I need to change CMake install() paths?
  • according to this SO answer, the reason I cannot find my headers is because I don't have any .targets file. Do I need to create one myself or is there a way to tell CPack to generate it?

Viewing all articles
Browse latest Browse all 3067

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>