From 195809914f07ec5c6203d79e2f4538af881ae8ee Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 25 Jan 2021 16:08:50 -0500 Subject: [PATCH] Tests: Generate simpler ExternalProject sample Git repositories The `gitrepo.tgz` repository contains a project that enables both C and CXX languages and builds source code. This take a long time to repeat over and over, particularly on Visual Studio and Xcode generators. Add and use a script to generate a new test repository that has a much simpler project. Issue: #20733 --- Tests/ExternalProject/CMakeLists.txt | 14 +-- Tests/ExternalProject/gitrepo-sub-rec.tgz | Bin 9008 -> 2086 bytes Tests/ExternalProject/gitrepo-sub.tgz | Bin 1911 -> 2229 bytes Tests/ExternalProject/gitrepo.bash | 129 ++++++++++++++++++++++ Tests/ExternalProject/gitrepo.tgz | Bin 1934 -> 1817 bytes 5 files changed, 136 insertions(+), 7 deletions(-) create mode 100755 Tests/ExternalProject/gitrepo.bash diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt index 8fd44b4add..132abf4df5 100644 --- a/Tests/ExternalProject/CMakeLists.txt +++ b/Tests/ExternalProject/CMakeLists.txt @@ -329,7 +329,7 @@ if(do_git_tests) set(proj TutorialStep1-GIT-byhash) ExternalProject_Add(${proj} GIT_REPOSITORY "${local_git_repo}" - GIT_TAG d1970730310fe8bc07e73f15dc570071f9f9654a + GIT_TAG 57418671a0a0e371e7bac532337152595fbe0df5 # generated by gitrepo.bash UPDATE_COMMAND "" CMAKE_GENERATOR "${CMAKE_GENERATOR}" CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= @@ -664,23 +664,23 @@ endif() if(do_git_tests) add_test(TutorialStep1-GIT-byhash - "${binary_base}/TutorialStep1-GIT-byhash/Tutorial" 100) + ${CMAKE_COMMAND} -P "${binary_base}/TutorialStep1-GIT-byhash/example.cmake") add_test(TutorialStep1-GIT-bytag - "${binary_base}/TutorialStep1-GIT-bytag/Tutorial" 99) + ${CMAKE_COMMAND} -P "${binary_base}/TutorialStep1-GIT-bytag/example.cmake") add_test(TutorialStep1-GIT-bytag-withsubmodules - "${binary_base}/TutorialStep1-GIT-bytag-withsubmodules/Tutorial" 99) + ${CMAKE_COMMAND} -P "${binary_base}/TutorialStep1-GIT-bytag-withsubmodules/example.cmake") add_test(TutorialStep1-GIT-shallow-master - "${binary_base}/TutorialStep1-GIT-shallow-master/Tutorial" 98) + ${CMAKE_COMMAND} -P "${binary_base}/TutorialStep1-GIT-shallow-master/example.cmake") add_test(TutorialStep1-GIT-master - "${binary_base}/TutorialStep1-GIT-master/Tutorial" 98) + ${CMAKE_COMMAND} -P "${binary_base}/TutorialStep1-GIT-master/example.cmake") if(NOT git_version VERSION_LESS 1.7.7) add_test(TutorialStep1-GIT-config - "${binary_base}/TutorialStep1-GIT-config/Tutorial" 98) + ${CMAKE_COMMAND} -P "${binary_base}/TutorialStep1-GIT-config/example.cmake") endif() endif() diff --git a/Tests/ExternalProject/gitrepo-sub-rec.tgz b/Tests/ExternalProject/gitrepo-sub-rec.tgz index b0f3f18b745a7586305d7290343c8a4b83afd152..0e63651c0283fadfdf6a7cc064667753750e5d16 100644 GIT binary patch literal 2086 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 Wr&oHVS9;|yEk6U388eyyssI20CF7R> diff --git a/Tests/ExternalProject/gitrepo-sub.tgz b/Tests/ExternalProject/gitrepo-sub.tgz index c0b5360174893ff32cd7e69d24baf168205f74e9..ab34fff0b7db2eb92d5e5f8179a4959be2a8be0b 100644 GIT binary patch literal 2229 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 x5!}7u|JrQ=NF@LO0000000000000000000000000001yZ{2S$xC=vir003=8(suv= diff --git a/Tests/ExternalProject/gitrepo.bash b/Tests/ExternalProject/gitrepo.bash new file mode 100755 index 0000000000..c341f282e6 --- /dev/null +++ b/Tests/ExternalProject/gitrepo.bash @@ -0,0 +1,129 @@ +#!/usr/bin/env bash + +set -e +set -x + +readonly tmpdir="$(mktemp -d)" +trap "rm -rf '$tmpdir'" EXIT + +readonly outdir="${BASH_SOURCE%/*}" +readonly defaultBranch='master' + +export GIT_AUTHOR_NAME='testauthor' +export GIT_AUTHOR_EMAIL='testauthor@cmake.org' +export GIT_COMMITTER_NAME='testauthor' +export GIT_COMMITTER_EMAIL='testauthor@cmake.org' + +( +cd "$tmpdir" + +git --bare init -b "$defaultBranch" gitrepo.git +rm -f gitrepo.git/hooks/*.sample + +mkdir gitrepo +cd gitrepo +git init -b "$defaultBranch" +echo 'cmake_minimum_required(VERSION 3.19) +project(Example NONE) +add_custom_target(example ALL + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/example.cmake.in example.cmake +)' >CMakeLists.txt +echo 'message(STATUS example)' >example.cmake.in +git add CMakeLists.txt example.cmake.in +git commit -m "Initial import into repo." +git push ../gitrepo.git "$defaultBranch" +cd ../gitrepo.git +git gc --prune +cd .. +ln -s gitrepo.git GIT + +git --bare init -b "$defaultBranch" gitrepo-sub.git +rm -f gitrepo-sub.git/hooks/*.sample + +mkdir gitrepo-sub +cd gitrepo-sub +git init -b "$defaultBranch" +echo 'cmake_minimum_required(VERSION 3.19) +project(ExampleWithSub NONE) +file(STRINGS "${CMAKE_SOURCE_DIR}/.git/config" git_config_strings + REGEX "^\\[submodule") +foreach(submodule m1 m2) + option(WITH_${submodule} "Enable ${submodule}" OFF) + set(${submodule}_INITED FALSE) + set(${submodule}_UPDATED FALSE) + foreach(s ${git_config_strings}) + if("${s}" MATCHES "${submodule}") + set(${submodule}_INITED TRUE) + endif() + endforeach() + if(EXISTS "${CMAKE_SOURCE_DIR}/m/${submodule}/CMakeLists.txt") + set(${submodule}_UPDATED TRUE) + endif() + if(WITH_${submodule}) + if(NOT ${submodule}_INITED) + message(FATAL_ERROR "${submodule} not inited") + elseif(NOT ${submodule}_UPDATED) + message(FATAL_ERROR "${submodule} not updated") + endif() + else() + if(${submodule}_INITED) + message(FATAL_ERROR "${submodule} inited") + elseif(${submodule}_UPDATED) + message(FATAL_ERROR "${submodule} updated") + endif() + endif() +endforeach()' >CMakeLists.txt +git add CMakeLists.txt +git submodule add -- ../GIT m/m1 +git submodule add -- ../GIT m/m2 +git submodule add -- ../GIT m/m3 +git commit -m "Initial import into repo." +git push ../gitrepo-sub.git "$defaultBranch" +cd ../gitrepo-sub.git +git gc --prune +cd .. +ln -s gitrepo-sub.git GIT-with-submodules + +git --bare init -b "$defaultBranch" gitrepo-sub-rec.git +rm -f gitrepo-sub-rec.git/hooks/*.sample + +mkdir gitrepo-sub-rec +cd gitrepo-sub-rec +git init -b "$defaultBranch" +echo 'cmake_minimum_required(VERSION 3.19) +project(ExampleWithRecSub NONE) +set(top_submodule_dir "${CMAKE_SOURCE_DIR}/submodule") +if(NOT EXISTS "${top_submodule_dir}/CMakeLists.txt") + message(FATAL_ERROR "Top submodule not updated") +endif() +option(WITH_RECURSIVE "Submodules are updated recursively" ON) +foreach(submodule m1 m2 m3) + set(${submodule}_UPDATED FALSE) + if(EXISTS "${top_submodule_dir}/m/${submodule}/CMakeLists.txt") + set(${submodule}_UPDATED TRUE) + endif() + if(WITH_RECURSIVE) + if(NOT ${submodule}_UPDATED) + message(FATAL_ERROR "${submodule} not updated") + endif() + else() + if(${submodule}_UPDATED) + message(FATAL_ERROR "${submodule} updated") + endif() + endif() +endforeach()' >CMakeLists.txt +git add CMakeLists.txt +git submodule add -- ../GIT-with-submodules submodule +git commit -m "Initial import into repo." +git push ../gitrepo-sub-rec.git "$defaultBranch" +cd ../gitrepo-sub-rec.git +git gc --prune +cd .. +) + +tar cvzf "$outdir/gitrepo.tgz" -C "$tmpdir" gitrepo.git +tar cvzf "$outdir/gitrepo-sub.tgz" -C "$tmpdir" gitrepo-sub.git +tar cvzf "$outdir/gitrepo-sub-rec.tgz" -C "$tmpdir" gitrepo-sub-rec.git + +git_tag=$(cd "$tmpdir/gitrepo.git" ; git rev-parse HEAD) +sed -i "/generated by gitrepo.bash/ s/ [0-9a-f]\\+ / $git_tag /" "$outdir/CMakeLists.txt" diff --git a/Tests/ExternalProject/gitrepo.tgz b/Tests/ExternalProject/gitrepo.tgz index 0a84bda7c1682c207f95a710f9d7e3114be34478..8d2d14472d3d349f9519edb11835853e732e3247 100644 GIT binary patch literal 1817 zcmV+!2j=)6iwFP!000001MQm&a1%us$CFZ&hL!?4fQYhCpj1eDk6f-TwoquHU|$rf zQ<1?-vPq66x%BP=tpm&y5EKLfXONNd80d%(9@;@gR7My&R$xF7Ea*546eu7SoKhZx zig%@zOdbTv^$^)#W@k6|`jY(j+i!QXYiC6sdN_lf6%#e>1SUaKn4IH&c`F*+h+(A3 zh!MC^gW&{WG-?3VULVL8uOKo!0GeXfZ8zWHx^U+oQtUqZTR69kwJUE!7Fd!tr2aTY z_~}m?36ln3%72tV9&!CASvVd})+F%n1ZzZ&@J?_n&((5mO5O;FTE z*!G{o{q-lML#X{%fjA(m-mE#8&Wer{;DOKyt-$7WI?MDeZv>7PrA$ZBMm)(x;|#`N zkfd=)n;8p55~Nh72r8MfnIUGiQ9yoPq60EkA<@MMBIHq+_;2Ft|5hkic-A9IabHmz zVf`Nu@P7(3BL7!|Lbsc7Nv?gn|2GUkD=Pxg!3sd`_7JUxaf8kb{ABmZsN#WR62Cg9d1u4SvTN6Oulk)hx9!=T_L~VA8Aq9s z;>K@i@_O;K`p=5iKfZOxIn42KLi90_=bkD^Eq%XZX$2`)0(`vZO3uFArtgOu5`G%; z;b5jl;7&E9)$S1sPLHcRH+xR(6UD@hn10Vq7}8zn%oj8*6UtLA6OFxIsqee&=(Hby zSfSr@ad2Hs!?hc;|E|~4*5meGcthkd(aqN=&t>{P6a9 zOVS2R{kivq{K}h#k?DO7qtnYjxOe6&D&s%kSi{@e4bYL97~c99#qUBGtCT34v6 z9#2;lCZAt7vC;PBxP~thy{Ui33}yPRx21O9rY)`5o1-`6X6GI0)TJakD(1zkOV%)DozWw|s{dZYu)6-c7kW!KueeaCnEnd+KWi-wZ6l2T6Oz08`M(tZ z3FQB3a8t~)Xm0uc!-}>YQ-ngPLp!EOlu)|gWVkdx)3W@t)n~u0sh_&9YCqk((}K)3 zyLx?o3@0CZIk#GSbjXzB-SQ5+ls>Oy?b^DM`t8*OSyE6mWk*btdrW!E!u_vDd_UlD z5w&*b31$ZScH`(?%dgHqO#kxTR>R`7%I%VkHzk)Um-1*Soemb%u3f%bHEUh=*HgyD zcG*^Fd!}en(Hsq;T~R3hn_1DtctY3+*Z(JRlYjqTDx&zW1|!E#%#k8pN2#a{(b4pc zgRN*=@`xbkTFa3^&P4}##_jv$BO`*`728@^H2gxYoWHj;{h%iK`JA)Ew|)^f_v=~< z!~A(8>rmz0e{aMsg84t|ws8-7{)fcS{Er%h)ZfCnT&$?K^Nh!FpEkmd|1hJU{xpu} zf7D^rnEWiQwu2^bY{ux8LrGFO`&KbBX;en~#FldQ?YkmFg?fZCwC9)>C6w+v1sewj z8$-$sMN4B5`D*Nlw_@Eji6;l8ysKGV(pbK3!sw=zr}k?Q4~&rUUmpJ{vMZq9lIhx}E13Ww@k1v6X6GUejVBKKU(B^GKHqPnfrc1vsn9g~fR$zwG z)pm}v0s)GEvq?{Au__H#L=p0C0SxxKTP(b#K<4 zm1SiZrZINx{mq=5Imw-TH}gOL?>pz7M2QtLJWk4p5-XULHv|m=P!y$6XgYui{eK1^ z2mv6>0$~It#wZMfGz$EtZfHF5as?)%0DvK4{S1j3r@ufND-uWPKL!W@2!c$mKM23l zA7p{V8^nBpXcU8J@(b5LTp*RUf5h!;6?8;%L( zObI3@d`}wvm%@1eOZmD?FW37%a60=x7Q!a{Pb>r2!S zA(&MEI7|>N*H4To>py}_(4S2#1jzbt2m)z3q3Ix>53?Z=EI<&P;@ zs2KoS-KjRa?J>VUjIu+k#n;}zx|+^boMhh`N{lPypie%sTpg(#4qtxK?hBs%hc_f& zT?xw!JD$fSrqn7Teg@GO5j~Z#fW>japk=pt^?*E8k}tAe=sRc6N5$2bOznc4u0>kX z7)!4m%yF%?_OGCj{ABc0|8-YS8e@w3526S#vHrsVO4ffv5a{XUOL>{sO|q#<)rnTO z*>wPw(y{W?h{cZ!u_~KP#z?TEHx*gt(;Ja# zX%cl$@u*P?^T$VHkBdit7+ljRF>y0nviUpJ;GWr?>+jYSKZ@v8ojXbQ z$bYhBKeumv(I`PlRFoW5lm>jG9`+0t(u*x*GM4Gqb87B|o}vQR+WW{jlc2oNp46`*W{sR96Krqw$1k?l6 zhGFfz?!k_&Ex9wE2JO64SaSM3o~pokN6)I`)a960`mq0|EKNt{vgG!5kJi$;%qBO9 z!q(M)%nr&=xv?Xdo*|pv)9crQ2y=rHd4JM`Un%fg;FgM~j_kit21jzwaa%sEk6?Ul zHFWl2*_lD79|IV-g1%nJErQFpnsKc=@&b8*_iQxb-_W0H{HiE>(W5cz!@!!z8m@R2exg+X=@2kfeThjh;rnzjvBDFMA zTbby3|3OK;F}K)=UzC-%YvlLJL9S=%fuu3h?Y?yZt9$4{UFekxq)7~@$Vi3^`5oEi;wl+4<0qSw!5sf+(N19>Irjb z=7sVuxBIrPW76091vN1pn%mk}Y~Z!|208fC9h=*HnHzYm%wTgzdNZ?SUE5Hw{~Ev6 zHs5`g7t*RsO_IKU*6_?VQETSNiL~8S`{(v9EA@xjl{0K@DYs8?KB-x%RP77$i>_N` zT{HZpvT!DUR#4KJ3R;nwB^+5|yQ1`i<3ju1tY@8>V*~2O^hTTWX_#oVCgI~_$&2T1 z+j@1GSBda1+e|_NQ&(>&hu5hyJcpe_scYBHIJTGj?e^ArRo9m|N?L&K4{oxYa?~Y< zr0SZC&kDL8+H~_8#M&j^jgL={m=D$E6>O$)MC)&^NiWQ^c*=OOwIoRxK*_P^JjV{E z<$SSs_uR9aTsGNo62yLYw06EHp`*shcG|l~N9s(K$(K4b=lk6It~p2CUfiXuNXV^j zc>DtB`mOtL*7LH5#p28F5A~~d?kekaI!A3d7;0P}5+BzIo_oO9T{KNR2G&!I zssH~oPJa~EJ^u$FfL#9>0wL&v0w|kUbpaxr!xsQ3jf0HC1AMdX6O5can3 UlZ1qXghapm3qnHvNdPhc0O4}fp8x;=