aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Ganea <aganea@havenstudios.com>2024-06-17 11:42:35 -0400
committerGitHub <noreply@github.com>2024-06-17 11:42:35 -0400
commit8fe376f5ecf908856a4e817015c5796ca5307dae (patch)
tree676134224274e597b27d8f129fb85165c4705a45
parent0851d7b00c651d527a37becc206566580bf3c615 (diff)
downloadllvm-8fe376f5ecf908856a4e817015c5796ca5307dae.zip
llvm-8fe376f5ecf908856a4e817015c5796ca5307dae.tar.gz
llvm-8fe376f5ecf908856a4e817015c5796ca5307dae.tar.bz2
[llvm] Fix incorrect usage of `LIBXML2_INCLUDE_DIRS` in the Windows release script (#95781)
Before this fix, when building the Windows LLVM package with the latest cmake 3.29.3 I was seeing: ``` C:\git\llvm-project>llvm\utils\release\build_llvm_release.bat --version 19.0.0 --x64 --skip-checkout --local-python ... -- Looking for FE_INEXACT -- Looking for FE_INEXACT - found -- Performing Test HAVE_BUILTIN_THREAD_POINTER -- Performing Test HAVE_BUILTIN_THREAD_POINTER - Failed -- Looking for mach/mach.h -- Looking for mach/mach.h - not found -- Looking for CrashReporterClient.h -- Looking for CrashReporterClient.h - not found -- Looking for pfm_initialize in pfm -- Looking for pfm_initialize in pfm - not found -- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR) CMake Error at C:/Program Files/CMake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message): Could NOT find LibXml2 (missing: LIBXML2_INCLUDE_DIR) Call Stack (most recent call first): C:/Program Files/CMake/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE) C:/Program Files/CMake/share/cmake-3.29/Modules/FindLibXml2.cmake:108 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) cmake/config-ix.cmake:167 (find_package) CMakeLists.txt:921 (include) -- Configuring incomplete, errors occurred! ``` It looks like `LIBXML2_INCLUDE_DIRS` (with the extra 'S') is a result variable that is set by cmake after a call to `find_package(LibXml2)`. It is actually `LIBXML2_INCLUDE_DIR` (without the 'S') that shold be used as a input before the `find_package` call, since the 'S' variable is unconditionally overwritten, see https://github.com/Kitware/CMake/blob/master/Modules/FindLibXml2.cmake#L96. I am unsure exactly why that worked with older cmake versions.
-rwxr-xr-xllvm/utils/release/build_llvm_release.bat6
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/utils/release/build_llvm_release.bat b/llvm/utils/release/build_llvm_release.bat
index dc63fda..cef7c86 100755
--- a/llvm/utils/release/build_llvm_release.bat
+++ b/llvm/utils/release/build_llvm_release.bat
@@ -194,7 +194,7 @@ set cmake_flags=^
-DLLDB_TEST_COMPILER=%stage0_bin_dir%/clang.exe ^
-DPYTHON_HOME=%PYTHONHOME% ^
-DPython3_ROOT_DIR=%PYTHONHOME% ^
- -DLIBXML2_INCLUDE_DIRS=%libxmldir%/include/libxml2 ^
+ -DLIBXML2_INCLUDE_DIR=%libxmldir%/include/libxml2 ^
-DLIBXML2_LIBRARIES=%libxmldir%/lib/libxml2s.lib
cmake -GNinja %cmake_flags% %llvm_src%\llvm || exit /b 1
@@ -250,7 +250,7 @@ set cmake_flags=^
-DLLDB_TEST_COMPILER=%stage0_bin_dir%/clang.exe ^
-DPYTHON_HOME=%PYTHONHOME% ^
-DPython3_ROOT_DIR=%PYTHONHOME% ^
- -DLIBXML2_INCLUDE_DIRS=%libxmldir%/include/libxml2 ^
+ -DLIBXML2_INCLUDE_DIR=%libxmldir%/include/libxml2 ^
-DLIBXML2_LIBRARIES=%libxmldir%/lib/libxml2s.lib
cmake -GNinja %cmake_flags% %llvm_src%\llvm || exit /b 1
@@ -317,7 +317,7 @@ set "stage0_bin_dir=%build_dir%/build_arm64_stage0/bin"
set cmake_flags=^
%common_cmake_flags% ^
-DCLANG_DEFAULT_LINKER=lld ^
- -DLIBXML2_INCLUDE_DIRS=%libxmldir%/include/libxml2 ^
+ -DLIBXML2_INCLUDE_DIR=%libxmldir%/include/libxml2 ^
-DLIBXML2_LIBRARIES=%libxmldir%/lib/libxml2s.lib ^
-DPython3_ROOT_DIR=%PYTHONHOME% ^
-DCOMPILER_RT_BUILD_PROFILE=OFF ^