cmake语法学习 - 01 Basic - A Hello CMake

# Set the minimum version of CMake that can be used
# To find the cmake version run
# $ cmake --version
cmake_minimum_required(VERSION 3.5)

# Set the project name
project (hello_cmake)

# Add an executable
add_executable(hello_cmake main.cpp)

 

*

cmake_minium_required(VERSION 3.5)

- Set a lowest version limitation for user.

- VERSION must be upper case.

- 3.5 is the version of CMake.

 

*

project(hello_cmake)

- Name you project. I want to use the example of Visual Studio to give you a better understanding.

In Visual Studio, all things are belong to a solution. Yes, that is the *.sln file.

When you want to start a project, actually the first file to be created is the solution file.

After that, you can new some your projects to the solution. Like that:

|___Solution

        |_____Project 1

        |_____Project 2

But in CMake, there is not a thing called solution, only several peojects.

So, how can CMake know where is the “solution (The root project)”, where are the "projects(The sub projects)" ?

The answer is in the folders. Here is a the CMakeList.txt example of (02-sub-projects).

|___CMakeList.txt ( ./02-sub-projects/A-basic ) (“Solution”)

        |_____CMakeList.txt ( ./02-sub-projects/A-basic/subbinary ) ("Project")

        |_____CMakeList.txt ( ./02-sub-projects/A-basic/sublibrary1 )
        |_____CMakeList.txt ( ./02-sub-projects/A-basic/sublibrary2 )

project() is used to name your project (Both solution and project. If you are familar with Visual Studio.)

And the working scope is within the folder where it is.

 

*

add_executable(hello_cmake main.cpp)

- hello_cmake is the name of the output executable file.

- main.cpp is the file

 

There is a tip, please keep the "hello_cmake" here the same as the name you set in project(). 

For skillfull user, they will write as "add_executable(${PROJECT_NAME} main.cpp)"

PROJECT_NAME is a variable kept by CMake. The value is the name set by project().

 

 

That all.

posted @ 2020-04-25 11:26  路边的十元钱硬币  阅读(159)  评论(0编辑  收藏  举报