我自己找到了解決方案。哪裏有用string
功能。 例如,我可以使用變量BENCH_ARCH來更改ARM arch。 我在所有默認的C/C++標誌定義之後在工具鏈文件中寫入。首先,用於緩存添加變量:
...
set(BENCH_ARCH "${BENCH_ARCH}" CACHE STRING "Arch" FORCE)`
...
之後,檢查變量設置,更換標誌變量
if(BENCH_ARCH)
string(REGEX REPLACE "-march=[A-Za-z_0-9/-]*" "-march=${BENCH_ARCH}" <variable, which set flags> ${<variable, which set flags>})
endif()
...
例如:
string(REGEX REPLACE "-march=[A-Za-z_0-9/-]*" "-march=${BENCH_ARCH}" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
現在,我可以使用cmake -DBENCH_ARCH=armv5te -DCMAKE_TOOLCHAIN_FILE=<...> ...
爲啓用-march=armv5te
並使用cmake -DCMAKE_TOOLCHAIN_FILE=<...> ...
啓用默認工具鏈設置。希望這不僅對我有幫助。