build-cmake.sh (3273B)
1 #!/bin/bash 2 set -e -v -x 3 4 artifact=$(basename "$TOOLCHAIN_ARTIFACT") 5 project=${artifact%.tar.*} 6 workspace=$HOME/workspace 7 8 cd $MOZ_FETCHES_DIR/cmake 9 10 # Work around https://gitlab.kitware.com/cmake/cmake/-/issues/26031 11 patch -p1 <<'EOF' 12 diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx 13 index bbcb0bccc9..f5d80dd784 100644 14 --- a/Source/bindexplib.cxx 15 +++ b/Source/bindexplib.cxx 16 @@ -414,7 +414,7 @@ static bool DumpFile(std::string const& nmPath, char const* filename, 17 std::set<std::string>& symbols, 18 std::set<std::string>& dataSymbols) 19 { 20 -#ifndef _WIN32 21 +#if 1 22 return DumpFileWithLlvmNm(nmPath, filename, symbols, dataSymbols); 23 #else 24 HANDLE hFile; 25 EOF 26 27 # Work around https://github.com/llvm/llvm-project/issues/94563 28 # The resulting cmake works well enough for our use. 29 patch -p1 <<'EOF' 30 diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt 31 index c54da4408a..8408355c4a 100644 32 --- a/Source/CMakeLists.txt 33 +++ b/Source/CMakeLists.txt 34 @@ -964,7 +964,6 @@ if(WIN32) 35 36 # Add a manifest file to executables on Windows to allow for 37 # GetVersion to work properly on Windows 8 and above. 38 - target_sources(ManifestLib INTERFACE cmake.version.manifest) 39 endif() 40 endif() 41 42 EOF 43 44 # Work around https://github.com/llvm/llvm-project/issues/134237 45 # Should be removable once we update to clang 21. 46 patch -p1 <<'EOF' 47 diff --git a/Modules/CMakeFindBinUtils.cmake b/Modules/CMakeFindBinUtils.cmake 48 index 1948c63bad..cb4cefaa72 100644 49 --- a/Modules/CMakeFindBinUtils.cmake 50 +++ b/Modules/CMakeFindBinUtils.cmake 51 @@ -87,9 +87,9 @@ if(("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC" AND 52 if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" MATCHES "^x(Clang|LLVMFlang)$") 53 set(_CMAKE_NM_NAMES "llvm-nm" "nm") 54 list(PREPEND _CMAKE_AR_NAMES "llvm-lib") 55 - if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 14.0.2) 56 - list(PREPEND _CMAKE_MT_NAMES "llvm-mt") 57 - endif() 58 + # if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 14.0.2) 59 + # list(PREPEND _CMAKE_MT_NAMES "llvm-mt") 60 + # endif() 61 list(PREPEND _CMAKE_LINKER_NAMES "lld-link") 62 list(APPEND _CMAKE_TOOL_VARS NM) 63 elseif("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xIntel") 64 EOF 65 66 export PATH="$MOZ_FETCHES_DIR/clang/bin:$PATH" 67 68 cmake \ 69 -GNinja \ 70 -DCMAKE_BUILD_TYPE=Release \ 71 -DCMAKE_C_COMPILER=clang-cl \ 72 -DCMAKE_CXX_COMPILER=clang-cl \ 73 -DCMAKE_LINKER=lld-link \ 74 -DCMAKE_MT=llvm-mt \ 75 -DCMAKE_C_FLAGS="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml -winsysroot $MOZ_FETCHES_DIR/vs" \ 76 -DCMAKE_CXX_FLAGS="-GR -EHsc -Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml -winsysroot $MOZ_FETCHES_DIR/vs" \ 77 -DCMAKE_EXE_LINKER_FLAGS="-winsysroot:$MOZ_FETCHES_DIR/vs" \ 78 -DCMAKE_MODULE_LINKER_FLAGS="-winsysroot:$MOZ_FETCHES_DIR/vs" \ 79 -DCMAKE_SHARED_LINKER_FLAGS="-winsysroot:$MOZ_FETCHES_DIR/vs" \ 80 -DCMAKE_SYSTEM_NAME=Windows \ 81 -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded \ 82 -DCMAKE_INSTALL_PREFIX=$workspace/$project \ 83 -B $workspace/build 84 85 ninja -C $workspace/build -v install 86 87 tar -C $workspace -acvf $artifact $project 88 mkdir -p $UPLOAD_DIR 89 mv $artifact $UPLOAD_DIR