我是否可以为每个版本的可执行文件指定一个随机名称? 或者,换句话说,每个构建操作的可执行文件的名称不同吗?
我想知道是否可以在构建工具链中插入随机变量。
这个名字的原因是我公司的病毒检查速度很慢 - 检查每个可执行文件花了很长时间,甚至比构建版本更长。
我在Win7上使用CLion 2016.2,工具链是MinGW_w64_5.0,捆绑了CMake 3.5.2
答案 0 :(得分:2)
您始终可以定义调用另一个CMake脚本的POST_BUILD
步骤。以下方法的唯一缺点是您无法 - 因为它是随机的 - 在CMake中重用可执行文件的输出名称:
<强>的CMakeLists.txt 强>
cmake_minimum_required(VERSION 3.5)
project(RandomExeName)
file(WRITE main.cpp "int main() { return 0; }")
add_executable(${PROJECT_NAME} main.cpp)
add_custom_command(
TARGET ${PROJECT_NAME}
POST_BUILD
COMMAND ${CMAKE_COMMAND} -D _file:PATH="$<TARGET_FILE:${PROJECT_NAME}>"
-P ${CMAKE_SOURCE_DIR}/CopyToRandom.cmake
)
set_property(TARGET ${PROJECT_NAME} PROPERTY SUFFIX ".temp")
<强> CopyToRandom.cmake 强>
string(RANDOM _random)
file(GLOB _old_files RELATIVE "${CMAKE_BINARY_DIR}" "*.exe")
execute_process(
COMMAND "${CMAKE_COMMAND}" -E remove ${_old_files}
COMMAND "${CMAKE_COMMAND}" -E copy "${_file}" "${_random}.exe"
)
# generate shortcut
get_filename_component(_name "${_file}" NAME_WE)
file(
WRITE "${_name}.sh"
"#!/bin/bash\n"
"${_random}.exe"
)
答案 1 :(得分:1)
不,你不能。或者你必须为每个版本重新配置。
关于您的实际问题:建议病毒检查程序排除您的构建目录。