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.you had a look at my post on CMake programming,.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.
0 Comments
Leave a Reply. |