execute_process( COMMAND ${CMAKE_COMMAND} -E copy_directory :CMake拷贝整个文件夹及文件夹内容到指定项目安装目录

# 拷贝文件夹到指定的目录
set(Image_Formats imageformats)
set(sourced sourcedir)

set(sour ${CMAKE_CURRENT_SOURCE_DIR}/sourcedir)
message(qqqqqqqqqqqqqq ${CMAKE_CURRENT_SOURCE_DIR})
message(nnnnnnnnnnnnnnnnnnnnnnn ${CMAKE_BINARY_DIR})
# 拷贝 src文件夹下的内容  到  save_src_dir 中
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_directory ${sour} ${CMAKE_BINARY_DIR}/imageformats)

CMakeLists.txt的打印输出,message()是真的很方便!!!

qqqqqqqqqqqqqqD:/QtProjects/addtargetcustom
nnnnnnnnnnnnnnnnnnnnnnnD:/QtProjects/build-addtargetcustom-Desktop_Qt_5_12_12_MSVC2017_64bit_559a0a

要拷贝到项目安装目录中去的源文件夹,也就是项目源码目录中要拷贝到安装目录中去的文件夹,sourcedir文件夹
在这里插入图片描述
sourcedir文件夹中要拷贝到安装目录中指定文件夹中的内容。
在这里插入图片描述

cmake_minimum_required(VERSION 3.14)

project(addtargetcustom LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 COMPONENTS Core REQUIRED)
find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Core REQUIRED)



add_executable(addtargetcustom
  main.cpp
)

# 拷贝文件夹到指定的目录
set(Image_Formats imageformats)
set(sourced sourcedir)

set(sour ${CMAKE_CURRENT_SOURCE_DIR}/sourcedir)
message(qqqqqqqqqqqqqq ${CMAKE_CURRENT_SOURCE_DIR})
message(nnnnnnnnnnnnnnnnnnnnnnn ${CMAKE_BINARY_DIR})
# 拷贝 src文件夹下的内容  到  save_src_dir 中
execute_process( COMMAND ${CMAKE_COMMAND} -E copy_directory ${sour} ${CMAKE_BINARY_DIR}/imageformats)


target_link_libraries(addtargetcustom Qt${QT_VERSION_MAJOR}::Core)

执行完qmake和构建后,安装目录下会自动创建imageformats,重要的话说三遍,自动创建指定文件夹,自动创建指定文件夹,自动创建指定文件夹,之所以说三遍是因为CMake还有在安装目录下创建文件夹的命令,既然这里会自动创建指定文件夹,不是又可以省略一行cmake命令了吗?这就叫高效!!!
输出目录在上面的nnnnnnnnnnn后面以为你打印,请享用!
在这里插入图片描述
看到指定execute_process( COMMAND ${CMAKE_COMMAND} -E copy_directory ${sour} ${CMAKE_BINARY_DIR}/imageformats)的imageformats文件夹生成了是否值得有点意思呢?
但是里面的内容更重要,所以二话不说,立即向imageformats文件夹开炮,瞅瞅里面是不是我想要的。
在这里插入图片描述
泪目啊!!!该睡觉了,其实今晚本来是为一个加载图片时因为依赖第三方库。
ERROR:
libpng warning: iCCP: known incorrect sRGB profile
然后我的解决办法也是网上大佬们的思路,可执行同级目录下,放以下依赖库。
在这里插入图片描述
而我的做法是把以上图片加载依赖库放在源码的第三方依赖库中,在构建生成可执行文件时,将上述依赖库用CMake的execute_process拷贝到可执行文件统计目录,可以解决上述ERROR的问题。