summaryrefslogtreecommitdiffstats
path: root/cmake/QtCopyFileIfDifferent.cmake
blob: 4c64895b534e50af663ede60678b61cfeb6fb400 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# copy_if_different works incorrect in Windows if file size if bigger than 2GB.
# See https://gitlab.kitware.com/cmake/cmake/-/issues/23052 and QTBUG-99491 for details.

cmake_minimum_required(VERSION 3.16)

set(copy_strategy "copy_if_different")
if(CMAKE_HOST_WIN32)
    file(SIZE "${SRC_FILE_PATH}" size)
    # If file size is bigger than 2GB copy it unconditionally
    if(size GREATER_EQUAL 2147483648)
        set(copy_strategy "copy")
    endif()
endif()

execute_process(COMMAND ${CMAKE_COMMAND} -E ${copy_strategy} "${SRC_FILE_PATH}" "${DST_FILE_PATH}")