linking FetchContent library

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

linking FetchContent library

Stéphane Ancelot

Hi,

are there any specific Cmake configurations to setup in projects when using fetchcontent.

I am able to fetch and build a library but not able to link and include files of this library in another projects.

include(FetchContent)

FetchContent_Declare(
  jconcpp
  GIT_REPOSITORY https://github.com/joncol/jcon-cpp.git
)

FetchContent_Populate(jconcpp)
add_subdirectory(${jconcpp_SOURCE_DIR} ${jconcpp_BINARY_DIR})



Regards,

S.Ancelot



--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: linking FetchContent library

Craig Scott-3


On Thu, Apr 11, 2019 at 1:35 AM Stéphane Ancelot <[hidden email]> wrote:

Hi,

are there any specific Cmake configurations to setup in projects when using fetchcontent.

I am able to fetch and build a library but not able to link and include files of this library in another projects.

include(FetchContent)

FetchContent_Declare(
  jconcpp
  GIT_REPOSITORY https://github.com/joncol/jcon-cpp.git
)

FetchContent_Populate(jconcpp)
add_subdirectory(${jconcpp_SOURCE_DIR} ${jconcpp_BINARY_DIR})


Can you provide a complete minimal example which shows the problem? The snippet above should bring jsoncpp into your main build, but without seeing how you are trying to link to it's targets, it is hard to tell what the problem could be.
 
--
Craig Scott
Melbourne, Australia

Get the hand-book for every CMake user: Professional CMake: A Practical Guide

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: linking FetchContent library

Craig Scott-3
(Please continue to CC the mailing list with replies)

On Thu, Apr 11, 2019 at 4:22 PM Stéphane Ancelot <[hidden email]> wrote:


Le 10/04/2019 à 23:03, Craig Scott a écrit :


On Thu, Apr 11, 2019 at 1:35 AM Stéphane Ancelot <[hidden email]> wrote:

Hi,

are there any specific Cmake configurations to setup in projects when using fetchcontent.

I am able to fetch and build a library but not able to link and include files of this library in another projects.

include(FetchContent)

FetchContent_Declare(
  jconcpp
  GIT_REPOSITORY https://github.com/joncol/jcon-cpp.git
)

FetchContent_Populate(jconcpp)
add_subdirectory(${jconcpp_SOURCE_DIR} ${jconcpp_BINARY_DIR})

add_subdirectory(projA)
Can you provide a complete minimal example which shows the problem? The snippet above should bring jsoncpp into your main build, but without seeing how you are trying to link to it's targets, it is hard to tell what the problem could be.
 

fetchcontent is done in the main CMakeLists.txt

I have a projA dir

projA/CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(proja)

add_executable(proja
               proja.cpp)

target_link_libraries(proja jconcpp)

There is no target in the jcon-cpp project by the name "jconcpp". The only library I can see in that project is one called "jcon". Note that you need to link against CMake targets, not against the dependency name used in the call to FetchContent_Declare().



--
Craig Scott
Melbourne, Australia

Get the hand-book for every CMake user: Professional CMake: A Practical Guide

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake