Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I believe, CMake (<a href="http://www.cmake.org/" rel="nofollow">http://www.cmake.org/</a>) is the best C++ has now. Like C++ itself, CMake is neither pretty nor simple to use, but, again, like C++, it's very powerful and versatile. </p> <p>It's currently used by a great number of projects, which need custom and/or complex configuration and building.</p> <p>Here's some of it's features, you may find useful:</p> <ol> <li>It's not a build tool. It generates the files which will be used by the native build tools - Visual Studio solution files, GNU make files and what not. It supports a lot of compilers out-of-the box - namely, cl, gcc, clang. So, this addresses the 'IDE' part of your question.</li> <li>It has a useful <code>find_package</code> macro that helps finding installed libraries to make use of it in the project. E.g. if you have the boost libraries installed, you can use something like the following code, which I believe is rather self-descriptive <pre><code>find_package( Boost COMPONENTS thread system) if(Boost_FOUND) include_directories(${Boost_INCLUDE_DIRS}) link_directories(${Boost_LIBRARY_DIRS}) endif(Boost_FOUND)</code></pre></li> <li>It has an ExternalProject extension, which can help automate downloading, building and installing libraries. E.g. for zlib, add the following to your CMakeLists.txt:<pre><code>include(ExternalProject) ExternalProject_Add( ZLIB URL <a href="http://zlib.net/zlib-1.2.8.tar.gz" rel="nofollow">http://zlib.net/zlib-1.2.8.tar.gz</a> ) </code></pre>It will fetch the tarball from the given url, build zlib, and install it. After that you can use find_package again. </li> <li>In the end of the day, CMake is highly customizable. You can customize the ExternalProject_Add function to change downloading, building and installing rules. If it doesn't help either, you can always fallback to calling <code>curl</code> or <code>git clone</code> to fetch the sources, and call building and installing commands manually.</li> </ol> <p>Once again, it's not an out-of-the-box or just-works solution, but it gets the job done, which is acknowledged by a quite large user base. To paraphrase the known quote, 'CMake is the worst build tool, but others are even worse'</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload