Fix Windows LLVM build using new repository structure.
authorlateralusX <lateralusx.github@gmail.com>
Fri, 8 Nov 2019 08:39:07 +0000 (09:39 +0100)
committerJo Shields <joshield@microsoft.com>
Fri, 8 Nov 2019 14:21:30 +0000 (09:21 -0500)
Commit migrated from https://github.com/mono/mono/commit/fad91a1c1e09df85040f8772d91eb6a5369303b4

src/mono/msvc/build-external-btls.bat
src/mono/msvc/build-external-llvm.bat
src/mono/msvc/mono.external.targets

index bd85f76..216134c 100755 (executable)
@@ -235,6 +235,7 @@ if "%GIT%" == "" (
 )\r
 \r
 :: Make sure boringssl submodule is up to date.\r
+echo Updating submodule "%BTLS_DIR%"
 "%GIT%" submodule update --init -- "%BTLS_DIR%"\r
 if not ERRORLEVEL == 0 (\r
     "%GIT%" submodule init -- "%BTLS_DIR%"\r
index 04cdd1c..6976818 100755 (executable)
@@ -239,6 +239,7 @@ if "%GIT%" == "" (
 )\r
 \r
 :: Make sure llvm submodule is up to date.\r
+echo Updating submodule "%LLVM_DIR%"
 "%GIT%" submodule update --init -- "%LLVM_DIR%"\r
 if not ERRORLEVEL == 0 (\r
     "%GIT%" submodule init -- "%LLVM_DIR%"\r
@@ -276,6 +277,13 @@ if not "%CMAKE_GENERATOR_ARCH%" == "" (
     set CMAKE_GENERATOR_ARCH=-A %CMAKE_GENERATOR_ARCH%\r
 )\r
 \r
+:: Check if LLVM_DIR is just repro root or if we should build
+:: a llvm subfolder within that repository.
+set "LLVM_SOURCE_DIR=%LLVM_DIR%"
+if exist "%LLVM_SOURCE_DIR%\llvm\CMakeLists.txt" (
+       set "LLVM_SOURCE_DIR=%LLVM_DIR%\llvm"
+)
+
 :: Run cmake.\r
 "%CMAKE%" ^\r
 -DCMAKE_INSTALL_PREFIX="%LLVM_INSTALL_DIR%" ^\r
@@ -293,7 +301,7 @@ if not "%CMAKE_GENERATOR_ARCH%" == "" (
 %CMAKE_GENERATOR_ARGS% ^\r
 -G "%CMAKE_GENERATOR%" ^\r
 %CMAKE_GENERATOR_ARCH% ^\r
-"%LLVM_DIR%"\r
+"%LLVM_SOURCE_DIR%"
 \r
 if not ERRORLEVEL == 0 (\r
     goto ON_ERROR\r
index b47e4ac..919eed6 100644 (file)
 
     <PropertyGroup>
         <_LLVMSourceDir Condition="'$(_LLVMSourceDir)' == ''">$(MONO_INTERNAL_LLVM_SOURCE_DIR)</_LLVMSourceDir>
-        <_LLVMSourceDir Condition="'$(_LLVMSourceDir)' == ''">$(_MonoSourceDir)\external\llvm-project\llvm</_LLVMSourceDir>
+        <_LLVMSourceDir Condition="'$(_LLVMSourceDir)' == ''">$(_MonoSourceDir)\external\llvm-project</_LLVMSourceDir>
         <_LLVMBuildDir Condition="'$(_LLVMBuildDir)' == ''">$([System.IO.Path]::GetFullPath('$(MONO_BUILD_DIR_PREFIX)$(Platform)\obj\external\llvm-build\$(Configuration)'))</_LLVMBuildDir>
         <_LLVMInstallDir Condition="'$(_LLVMInstallDir)' == ''">$(_LLVMBuildDir)\install</_LLVMInstallDir>
         <_MonoLLVMConfig>$(_LLVMInstallDir)\bin\llvm-config.exe</_MonoLLVMConfig>