CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0)
SET(TARGET "HELLO")
PROJECT(${TARGET})
message(STATUS "source dir is :" ${HELLO_SOURCE_DIR})
#大家用的最多的并非<projectname>_BINARY_DIR,而是PROJECT_BINARY_DIR

指的是当前处理的 CMakeLists.txt 所在的路径,比如之前我们提到的 src 子目录。
CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0)
SET(TARGET "HELLO")
PROJECT(${TARGET})
message(STATUS "source dir is :" ${HELLO_SOURCE_DIR})
#大家用的最多的并非<projectname>_BINARY_DIR,而是PROJECT_BINARY_DIR
MESSAGE(STATUS "the system path:" $ENV{PATH})
例子
CMAKE_MINIMUM_REQUIRED(VERSION 3.8.0)
SET(TARGET "HELLO")
PROJECT(${TARGET})
message(STATUS "source dir is :" ${HELLO_SOURCE_DIR})
#大家用的最多的并非<projectname>_BINARY_DIR,而是PROJECT_BINARY_DIR
#MESSAGE(STATUS "the system path:" $ENV{PATH})
MESSAGE(STATUS "CMAKE_MAJOR_VERSION:" ${CMAKE_MAJOR_VERSION})
MESSAGE(STATUS "CMAKE_MINOR_VERSION:" ${CMAKE_MINOR_VERSION})
MESSAGE(STATUS "CMAKE_PATCH_VERSION:" ${CMAKE_PATCH_VERSION})
MESSAGE(STATUS "CMAKE_SYSTEM:" ${CMAKE_SYSTEM})
MESSAGE(STATUS "CMAKE_SYSTEM_NAME:" ${CMAKE_SYSTEM_NAME})
MESSAGE(STATUS "CMAKE_SYSTEM_VERSION:" ${CMAKE_SYSTEM_VERSION})
MESSAGE(STATUS "CMAKE_SYSTEM_PROCESSOR:" ${CMAKE_SYSTEM_PROCESSOR})
MESSAGE(STATUS "UNIX:" ${UNIX})
MESSAGE(STATUS "WIN32:" ${WIN32})
输出如下
if(WIN32)
message(STATUS "This is windows.")
else(WIN32)
message(STATUS "This is not windows.")
endif(WIN32)
在增加了
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON)
便可以写为
if(WIN32)
message(STATUS "This is windows.")
else()
message(STATUS "This is not windows.")
endif()
2,BUILD_SHARED_LIBS
这个开关用来控制默认的库编译方式,如果不进行设置,使用 ADD_LIBRARY 并没有指定库 类型的情况下,默认编译生成的库都是静态库。 如果 SET(BUILD_SHARED_LIBS ON)后,默认生成的为动态库。
3,CMAKE_C_FLAGS
设置 C 编译选项,也可以通过指令 ADD_DEFINITIONS()添加。
4,CMAKE_CXX_FLAGS
设置 C++编译选项,也可以通过指令 ADD_DEFINITIONS()添加