cmake_minimum_required ( VERSION 3.28 ) project ( testprj ) set(myString "Hello, World!") string(REGEX REPLACE "Hello" "Hi" myOutString ${myString}) message ( STATUS "myString = ${myString}" ) message ( STATUS "myOutString = ${myOutString}" ) windows11+powershell cmake .. PS ...
CMake有许多强大的功能,其中一个就是字符串的正则表达式替换(string(regex replace))。这个功能可以让你使用正则表达式匹配文本模式,并将其替换为指定的文本。在本篇文章中,我们将介绍CMake的字符串(regex replace)的使用方法。 语法 -- ```scss string(regex_replace regex_pattern input_string replacement) ```...
这里,我使用 string(REGEX REPLACE ...) 语句达到此目的。 在CMakeLists.txt 中增加以下语句,同时将 config.h.in 中的@TIME_DAY@ 改为@TIME_DAY_NUM@: string(REGEX REPLACE "(^[0])([1-9]*)" "\\2" TIME_DAY_NUM ${TIME_DAY}) 这语句的意思是:如果变量 TIME_DAY 的值以 '0' 开头,那么...
string(REGEX REPLACE "define NV_TENSORRT_MAJOR +([0-9]+)" "\\1" TENSORRT_MAJOR_VERSION "${TENSORRT_MAJOR_VERSION}") message(STATUS "Current TensorRT header is ${TENSORRT_INCLUDE_DIR}/NvInfer.h. " "Current TensorRT version is v${TENSORRT_MAJOR_VERSION}. ") endif() if(WITH_GPU) if (...
string(REGEX REPLACE "(.*)/.*" "\\1" LIB_NAME ${child}) #字符串替换,用/前的字符替换/*h if(IS_DIRECTORY ${LIB_NAME}) #判断是否为路径 LIST(APPEND dirlist ${LIB_NAME}) #将合法的路径加入dirlist变量中 endif() #结束判断 endforeach() #结束for循环 ...
其中pattern是要替换的字符,replacement是替换成的字符,x是对应的string或string vector。
foreach(file_path ${${src_files}})string(REGEX REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/\(.*\) \\1relative_path ${file_path})string(REGEX MATCH".+\\.c.*"is_match ${relative_path})if(is_match)string(REGEX REPLACE"(.+)\\.c.*"\\1cpp_relative_dir ${relative_path})if(NOT cpp_re...
1. regex 2. regex_match 3. regex_search 4. regex_replace 这些函数可以帮助开发人员实现对字符串的匹配、搜索和替换操作,非常方便实用。 三、Cmake中的正则表达式实例 以下是一个在Cmake中使用正则表达式的简单示例: ```cmake set(input_string "Hello, Cmake! This is a test string.") set(regex_pat...
FOREACH(FIL${protobuf_files})GET_FILENAME_COMPONENT(FIL_WE${FIL}NAME_WE)string(REGEXREPLACE".+/(.+)\\..*""\\1"FILE_NAME${FIL})string(REGEXREPLACE"(.+)\\${FILE_NAME}.*""\\1"FILE_PATH${FIL})string(REGEXMATCH"(/mediapipe/framework.*|/mediapipe/util.*|/mediapipe/calculators/inter...
string (REGEX REPLACE ".*Pkg\\.Revision = (([0-9]+)\\.([0-9]+)\\.([0-9]+)([^\n]+)?).*" "\\1" JNI_VERSION "${NDK_VERSION_CONTENTS}") set(JNI_VERSION_MAJOR ${CMAKE_MATCH_1}) set(JNI_VERSION_MINOR ${CMAKE_MATCH_2}) set(JNI_VERSION_PATCH ${CMAKE_MATCH_3}) ...