Differential Revision: https://phabricator.services.mozilla.com/D284529
109 lines
3.9 KiB
Bash
Executable File
109 lines
3.9 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e -v -x
|
|
|
|
artifact=$(basename "$TOOLCHAIN_ARTIFACT")
|
|
project=${artifact%.tar.*}
|
|
workspace=$HOME/workspace
|
|
|
|
cd $MOZ_FETCHES_DIR/cmake
|
|
|
|
# Work around https://gitlab.kitware.com/cmake/cmake/-/issues/26031
|
|
patch -p1 <<'EOF'
|
|
diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx
|
|
index bbcb0bccc9..f5d80dd784 100644
|
|
--- a/Source/bindexplib.cxx
|
|
+++ b/Source/bindexplib.cxx
|
|
@@ -414,7 +414,7 @@ static bool DumpFile(std::string const& nmPath, char const* filename,
|
|
std::set<std::string>& symbols,
|
|
std::set<std::string>& dataSymbols)
|
|
{
|
|
-#ifndef _WIN32
|
|
+#if 1
|
|
return DumpFileWithLlvmNm(nmPath, filename, symbols, dataSymbols);
|
|
#else
|
|
HANDLE hFile;
|
|
EOF
|
|
|
|
# Work around https://github.com/llvm/llvm-project/issues/94563
|
|
# The resulting cmake works well enough for our use.
|
|
patch -p1 <<'EOF'
|
|
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
|
|
index 44f87dba80..0ff5214dd9 100644
|
|
--- a/Source/CMakeLists.txt
|
|
+++ b/Source/CMakeLists.txt
|
|
@@ -979,14 +979,6 @@ if(WIN32)
|
|
cmVSSolution.h
|
|
cmVSVersion.h
|
|
)
|
|
-
|
|
- # Add a manifest file to executables on Windows to allow for
|
|
- # GetVersion to work properly on Windows 8 and above.
|
|
- if(MSVC)
|
|
- target_sources(ManifestLib INTERFACE cmake.version.manifest)
|
|
- else()
|
|
- target_sources(ManifestLib INTERFACE cmake.version.manifest.rc)
|
|
- endif()
|
|
endif()
|
|
endif()
|
|
|
|
diff --git a/Source/kwsys/CMakeLists.txt b/Source/kwsys/CMakeLists.txt
|
|
index 08494b9bf5..0dfcc0f63a 100644
|
|
--- a/Source/kwsys/CMakeLists.txt
|
|
+++ b/Source/kwsys/CMakeLists.txt
|
|
@@ -977,7 +977,6 @@ if(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
|
|
)
|
|
add_executable(${KWSYS_NAMESPACE}TestsCxx
|
|
${KWSYS_CXX_TEST_SRCS}
|
|
- test.manifest
|
|
)
|
|
set_property(TARGET ${KWSYS_NAMESPACE}TestsCxx PROPERTY C_CLANG_TIDY "")
|
|
set_property(TARGET ${KWSYS_NAMESPACE}TestsCxx PROPERTY CXX_CLANG_TIDY "")
|
|
EOF
|
|
|
|
# Work around https://github.com/llvm/llvm-project/issues/134237
|
|
# Should be removable once we update to clang 21.
|
|
patch -p1 <<'EOF'
|
|
diff --git a/Modules/CMakeFindBinUtils.cmake b/Modules/CMakeFindBinUtils.cmake
|
|
index 91543a6853..ea9627a0de 100644
|
|
--- a/Modules/CMakeFindBinUtils.cmake
|
|
+++ b/Modules/CMakeFindBinUtils.cmake
|
|
@@ -87,9 +87,9 @@ if(("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC" AND
|
|
if("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" MATCHES "^x(Clang|LLVMFlang)$")
|
|
set(_CMAKE_NM_NAMES "llvm-nm" "nm")
|
|
list(PREPEND _CMAKE_AR_NAMES "llvm-lib")
|
|
- if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 14.0.2)
|
|
- list(PREPEND _CMAKE_MT_NAMES "llvm-mt")
|
|
- endif()
|
|
+ # if("${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_VERSION}" VERSION_GREATER_EQUAL 14.0.2)
|
|
+ # list(PREPEND _CMAKE_MT_NAMES "llvm-mt")
|
|
+ # endif()
|
|
list(PREPEND _CMAKE_LINKER_NAMES "lld-link")
|
|
list(APPEND _CMAKE_TOOL_VARS NM)
|
|
elseif("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" STREQUAL "xIntel")
|
|
EOF
|
|
|
|
export PATH="$MOZ_FETCHES_DIR/clang/bin:$PATH"
|
|
|
|
cmake \
|
|
-GNinja \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_C_COMPILER=clang-cl \
|
|
-DCMAKE_CXX_COMPILER=clang-cl \
|
|
-DCMAKE_LINKER=lld-link \
|
|
-DCMAKE_MT=llvm-mt \
|
|
-DCMAKE_C_FLAGS="-Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml -winsysroot $MOZ_FETCHES_DIR/vs" \
|
|
-DCMAKE_CXX_FLAGS="-GR -EHsc -Xclang -ivfsoverlay -Xclang $MOZ_FETCHES_DIR/vs/overlay.yaml -winsysroot $MOZ_FETCHES_DIR/vs" \
|
|
-DCMAKE_EXE_LINKER_FLAGS="-winsysroot:$MOZ_FETCHES_DIR/vs" \
|
|
-DCMAKE_MODULE_LINKER_FLAGS="-winsysroot:$MOZ_FETCHES_DIR/vs" \
|
|
-DCMAKE_SHARED_LINKER_FLAGS="-winsysroot:$MOZ_FETCHES_DIR/vs" \
|
|
-DCMAKE_SYSTEM_NAME=Windows \
|
|
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded \
|
|
-DCMAKE_INSTALL_PREFIX=$workspace/$project \
|
|
-B $workspace/build
|
|
|
|
ninja -C $workspace/build -v install
|
|
|
|
tar -C $workspace -acvf $artifact $project
|
|
mkdir -p $UPLOAD_DIR
|
|
mv $artifact $UPLOAD_DIR
|