简体   繁体   中英

Include third party libraries in source tree

My CMake C++ project depends on several commercial libraries (only libs and headers are available). I want an easy way to include these packages in my source tree.

I have tried the following options:

  1. Use svn:externals and provide these libraries in a thirdparty folder of the source tree. Pros: easy. Cons: slow download, all or nothing.
  2. Has a README file detailing what package is required for what option in my CMake. Developers will have to download and unpack to the right place. Pros: fast download, select only the package necessary. Cons: complicated.

Is there a way for me to deploy these packages to the developers automatically?

The workflow that I want:

  1. Developer choose an option in CMake eg USE_LIBRARY_A
  2. Developer hit Configure
  3. Package is downloaded and put in the right place in the source tree
  4. Developer hit Generate
  5. Solution/Makefile is ready for compilation

I guess what I want is similar to easy_install in Python or rubygems in Ruby.

The desired workflow can be achieved by adding the third party libraries as CMake external projects .

The ExternalProject_Add command lets you automatically download, build and install third-party libraries.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM