Examples

您所在的位置:网站首页 cmakelists Examples

Examples

2023-04-05 18:10| 来源: 网络整理| 查看: 265

The following example demonstrates some key ideas of CMake. Make sure that you have CMake installed prior to running this example (go here for instructions).

There are three directories involved. The top level directory has two subdirectories called ./Demo and ./Hello. In the directory ./Hello, a library is built. In the directory ./Demo, an executable is built by linking to the library. A total of three CMakeLists.txt files are created: one for each directory.

The first, top-level directory contains the following CMakeLists.txt file.

# CMakeLists files in this project can # refer to the root source directory of the project as ${HELLO_SOURCE_DIR} and # to the root binary directory of the project as ${HELLO_BINARY_DIR}. cmake_minimum_required (VERSION 2.8.11) project (HELLO) # Recurse into the "Hello" and "Demo" subdirectories. This does not actually # cause another cmake executable to run. The same process will walk through # the project's entire directory structure. add_subdirectory (Hello) add_subdirectory (Demo)

Then for each subdirectory specified, CMakeLists.txt files are created. In the ./Hello directory, the following CMakeLists.txt file is created:

# Create a library called "Hello" which includes the source file "hello.cxx". # The extension is already found. Any number of sources could be listed here. add_library (Hello hello.cxx) # Make sure the compiler can find include files for our Hello library # when other libraries or executables link to Hello target_include_directories (Hello PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})

Finally, in the ./Demo directory, the third and final CMakeLists.txt file is created:

# Add executable called "helloDemo" that is built from the source files # "demo.cxx" and "demo_b.cxx". The extensions are automatically found. add_executable (helloDemo demo.cxx demo_b.cxx) # Link the executable to the Hello library. Since the Hello library has # public include directories we will use those link directories when building # helloDemo target_link_libraries (helloDemo LINK_PUBLIC Hello)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3