10.字符串操作

1.追加
1.1set
set(变量名1 ${变量名1} ${变量名2} ...)

cmake_minimum_required(VERSION 3.10.2)
project(test)

aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC) #PROJECT_SOURCE_DIR就是CMakefileLists.txt所在路径

file(GLOB_RECURSE SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) #CMAKE_CURRENT_SOURCE_DIR就是CMakefileLists.txt所对应的路径
include_directories(${PROJECT_SOURCE_DIR}/include)
set(CMAKE_CXX_STANDARD 11)

add_executable(app ${SRC})

set(LIBRARY_OUTPUT_PATH /home/book/MyCode/Cmake2/build/abcdefg)
add_library(calc SHARED ${SRC})
set(tmp hello world)
set(tmp1 ${tmp} ${SRC})
message(${tmp})
message(${tmp1})
image

1.2list
list(APPEND [ ...])
在CMake中,使用set命令可以创建一个list。一个在list内部是一个由分号;分割的一组字符串。例如,set(var a b c d e)命令将会创建一个list:a;b;c;d;e,但是最终打印变量值的时候得到的是abcde。

list(APPEND tmp "xxx1" "sss2" ${SRC})
message(${tmp})
image

2.移除
list(REMOVE_ITEM [ ...])

file(GLOB SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) #CMAKE_CURRENT_SOURCE_DIR就是CMakefileLists.txt所对应的路径
message()
message(${SRC})
list(REMOVE_ITEM SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp) #要用绝对路径
message(
)
message(${SRC})
message(======================)
image

posted @ 2026-01-06 14:46  r5ett  阅读(2)  评论(0)    收藏  举报