



Cmake build directory install#
Install(TARGETS): to install compiled libraries and their headers in the assigned install directory you set when running cmake -install blah blah. So first compile geo then link it to app executable. Target_link_libraries(): to tell CMake that app is dependent on geo library. Target_include_directories(): is for making source files aware of the location of private headers relative to the project directory. SHARED means a shared library, you can also make a static library with STATIC keyword, or an object file with OBJECT keyword. dll.Īdd_library(): to define a library target, geo. If (MSVC): checking CMake is employing MS Visual C++.ĬMAKE_WINDOWS_EXPORT_ALL_SYMBOLS: This is necessary for MSVC to create a symbol file. To build an example, go to its directory in a terminal and runĬmake_minimum_required ( VERSION 3.23 ) project ( geometry LANGUAGES CXX ) if ( MSVC ) set ( CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON ) endif () add_library ( geo SHARED ) target_include_directories ( geo PRIVATE "$" ) add_subdirectory ( "shape" ) add_subdirectory ( "square" ) add_executable ( app ) target_sources ( app PRIVATE "example/app.cpp" ) target_link_libraries ( app PRIVATE geo ) install ( TARGETS geo FILE_SET HEADERS ) you have a compiler like GCC, Clang, Intel, or MS Visual C++ installed on your operating system.Įxamples are on GitHub here and their links are mentioned in each section as well.CMake will configure and generate makefiles by default, as well as set all options to their default settings and cache them into a file called CMakeCache.txt, which will sit in the build directory. you had a look at my post on CMake programming, This will make a build directory ( -B) if it does not exist, with the source directory defined as -S.
Cmake build directory how to#
In this post, instead of throwing instructions for some random commands, I aim to explain how to employ modern CMake step by step to build executables (applications) and static/shared/header-only libraries from C++ projects. It has comprehensive but daunting manual instruction. It compiles projects with compilers like GCC, Clang, Intel, MS Visual C++.ĬMake is frequently used in compiling open-source and commercial projects. CMake utilizes build-systems such as Ninja, Linux make, Visual Studio, and Xcode. CMake is a cross-platform software for building projects written in C, C++, Fortran, CUDA and so on.
