summaryrefslogtreecommitdiffstats
path: root/Modules/CTestCoverageCollectGCOV.cmake
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2015-01-28 22:08:41 (GMT)
committerBrad King <brad.king@kitware.com>2015-02-03 15:40:53 (GMT)
commit30cb628ecb31484015136bf6065c9c40f59a9297 (patch)
tree7fa3f04d0f89ec7c9195d3c0ee147a8f4950fea3 /Modules/CTestCoverageCollectGCOV.cmake
parent18e3771ac7c74986a4f06221a72781ace54b1169 (diff)
downloadCMake-30cb628ecb31484015136bf6065c9c40f59a9297.zip
CMake-30cb628ecb31484015136bf6065c9c40f59a9297.tar.gz
CMake-30cb628ecb31484015136bf6065c9c40f59a9297.tar.bz2
CTestCoverageCollectGCOV: Fix handling of large file counts
Use the --files-from option to tar to handle lots of files.
Diffstat (limited to 'Modules/CTestCoverageCollectGCOV.cmake')
-rw-r--r--Modules/CTestCoverageCollectGCOV.cmake11
1 files changed, 9 insertions, 2 deletions
diff --git a/Modules/CTestCoverageCollectGCOV.cmake b/Modules/CTestCoverageCollectGCOV.cmake
index f6616e0..f8058cd 100644
--- a/Modules/CTestCoverageCollectGCOV.cmake
+++ b/Modules/CTestCoverageCollectGCOV.cmake
@@ -130,9 +130,16 @@ function(ctest_coverage_collect_gcov)
# tar up the coverage info with the same date so that the md5
# sum will be the same for the tar file independent of file time
# stamps
+ string(REPLACE ";" "\n" gcov_files "${gcov_files}")
+ string(REPLACE ";" "\n" label_files "${label_files}")
+ file(WRITE "${coverage_dir}/coverage_file_list.txt"
+ "${gcov_files}
+${coverage_dir}/data.json
+${label_files}
+")
execute_process(COMMAND
${CMAKE_COMMAND} -E tar cvfj ${GCOV_TARBALL}
- "--mtime=1970-01-01 0:0:0 UTC" ${gcov_files}
- ${coverage_dir}/data.json ${label_files}
+ "--mtime=1970-01-01 0:0:0 UTC"
+ --files-from=${coverage_dir}/coverage_file_list.txt
WORKING_DIRECTORY ${binary_dir})
endfunction()