From 61830cee743379d5e8f25f057a25307c1eef7b58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= Date: Thu, 9 Sep 2021 09:51:23 -0400 Subject: [PATCH] Halide fixes (#7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update config * add patch for lld-headers target * switch to initial cache * try and fix cmake generation * more fixes * more stuff * syntax stuff * fix cmake install prefix Co-authored-by: Marc-André Moreau --- .github/workflows/llvm-prebuilt.yml | 20 ++++++----- {toolchains => cmake}/aarch64-linux.cmake | 0 {toolchains => cmake}/aarch64-macos.cmake | 0 {toolchains => cmake}/aarch64-windows.cmake | 0 {toolchains => cmake}/llvm-distribution.cmake | 29 +++++++++++++-- {toolchains => cmake}/x86_64-linux.cmake | 0 {toolchains => cmake}/x86_64-macos.cmake | 0 {toolchains => cmake}/x86_64-windows.cmake | 0 patches/0001-add-lld-headers-target.patch | 36 +++++++++++++++++++ 9 files changed, 74 insertions(+), 11 deletions(-) rename {toolchains => cmake}/aarch64-linux.cmake (100%) rename {toolchains => cmake}/aarch64-macos.cmake (100%) rename {toolchains => cmake}/aarch64-windows.cmake (100%) rename {toolchains => cmake}/llvm-distribution.cmake (85%) rename {toolchains => cmake}/x86_64-linux.cmake (100%) rename {toolchains => cmake}/x86_64-macos.cmake (100%) rename {toolchains => cmake}/x86_64-windows.cmake (100%) create mode 100644 patches/0001-add-lld-headers-target.patch diff --git a/.github/workflows/llvm-prebuilt.yml b/.github/workflows/llvm-prebuilt.yml index 97e64ae..a22c01a 100644 --- a/.github/workflows/llvm-prebuilt.yml +++ b/.github/workflows/llvm-prebuilt.yml @@ -75,6 +75,10 @@ jobs: ref: ${{matrix.branch}} path: llvm-project + - name: Patch LLVM + run: | + git -C llvm-project apply ../llvm-prebuilt/patches/0001-add-lld-headers-target.patch + - name: Enable Windows host environment if: runner.os == 'Windows' uses: ilammy/msvc-dev-cmd@v1 @@ -97,14 +101,6 @@ jobs: echo "CLANG_TABLEGEN=$HostBinPath/clang-tblgen$ExeExt" >> $Env:GITHUB_ENV echo "LLVM_CONFIG_PATH=$HostBinPath/llvm-config$ExeExt" >> $Env:GITHUB_ENV - - name: Set CMake environment - shell: pwsh - run: | - $ToolchainPath = "$Env:GITHUB_WORKSPACE/llvm-prebuilt/toolchains" - $ToolchainName = "${{matrix.arch}}-${{matrix.os}}" - echo "CMAKE_TOOLCHAIN_FILE=$ToolchainPath/$ToolchainName.cmake" >> $Env:GITHUB_ENV - echo "CMAKE_INSTALL_PREFIX=$Env:GITHUB_WORKSPACE/llvm-install" >> $Env:GITHUB_ENV - - name: Enable Windows target environment if: runner.os == 'Windows' uses: ilammy/msvc-dev-cmd@v1 @@ -112,7 +108,13 @@ jobs: arch: ${{matrix.msvc}} - name: Configure LLVM - run: "cmake -G Ninja -S llvm-project/llvm -B llvm-build -Wno-dev" + shell: pwsh + run: | + $TargetName = "${{matrix.arch}}-${{matrix.os}}" + $CMakeCache = "$Env:GITHUB_WORKSPACE/llvm-prebuilt/cmake/$TargetName.cmake" + cmake -G Ninja -S llvm-project/llvm -B llvm-build ` + -DCMAKE_INSTALL_PREFIX=llvm-install ` + -C $CMakeCache -Wno-dev - name: Build LLVM run: cmake --build llvm-build diff --git a/toolchains/aarch64-linux.cmake b/cmake/aarch64-linux.cmake similarity index 100% rename from toolchains/aarch64-linux.cmake rename to cmake/aarch64-linux.cmake diff --git a/toolchains/aarch64-macos.cmake b/cmake/aarch64-macos.cmake similarity index 100% rename from toolchains/aarch64-macos.cmake rename to cmake/aarch64-macos.cmake diff --git a/toolchains/aarch64-windows.cmake b/cmake/aarch64-windows.cmake similarity index 100% rename from toolchains/aarch64-windows.cmake rename to cmake/aarch64-windows.cmake diff --git a/toolchains/llvm-distribution.cmake b/cmake/llvm-distribution.cmake similarity index 85% rename from toolchains/llvm-distribution.cmake rename to cmake/llvm-distribution.cmake index 46e65e4..36defc4 100644 --- a/toolchains/llvm-distribution.cmake +++ b/cmake/llvm-distribution.cmake @@ -18,11 +18,31 @@ if(DEFINED ENV{LLVM_CONFIG_PATH}) message(STATUS "LLVM_CONFIG_PATH: ${LLVM_CONFIG_PATH}") endif() +if(CMAKE_INSTALL_PREFIX) + message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") +endif() + set(PACKAGE_VENDOR "awakecoding" CACHE STRING "") -set(LLVM_TARGETS_TO_BUILD "X86;ARM;AArch64;Mips;PowerPC;RISCV;WebAssembly" CACHE STRING "") +set(LLVM_TARGETS_TO_BUILD + "X86" + "ARM" + "AArch64" + "Mips" + "PowerPC" + "RISCV" + "NVPTX" + "Hexagon" + "WebAssembly" + CACHE STRING "") + +set(LLVM_ENABLE_PROJECTS + "clang" + "clang-tools-extra" + "llvm" + "lld" + CACHE STRING "") -set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;llvm;lld" CACHE STRING "") set(LLVM_ENABLE_RUNTIMES "" CACHE STRING "") set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "") @@ -74,6 +94,7 @@ set(LLVM_BINUTILS_COMPONENTS set(LLVM_TOOLCHAIN_TOOLS dsymutil + llvm-as llvm-cat llvm-cov llvm-config @@ -83,6 +104,7 @@ set(LLVM_TOOLCHAIN_TOOLS llvm-ifs llvm-gsymutil llvm-lib + llvm-link llvm-mt llvm-pdbutil llvm-profdata @@ -102,6 +124,9 @@ set(LLVM_DEVELOPMENT_COMPONENTS clang-libraries clang-cmake-exports clang-resource-headers + libclang-headers + lld-headers # requires patch + lld-cmake-exports CACHE STRING "") set(LLVM_DISTRIBUTION_COMPONENTS diff --git a/toolchains/x86_64-linux.cmake b/cmake/x86_64-linux.cmake similarity index 100% rename from toolchains/x86_64-linux.cmake rename to cmake/x86_64-linux.cmake diff --git a/toolchains/x86_64-macos.cmake b/cmake/x86_64-macos.cmake similarity index 100% rename from toolchains/x86_64-macos.cmake rename to cmake/x86_64-macos.cmake diff --git a/toolchains/x86_64-windows.cmake b/cmake/x86_64-windows.cmake similarity index 100% rename from toolchains/x86_64-windows.cmake rename to cmake/x86_64-windows.cmake diff --git a/patches/0001-add-lld-headers-target.patch b/patches/0001-add-lld-headers-target.patch new file mode 100644 index 0000000..6fca958 --- /dev/null +++ b/patches/0001-add-lld-headers-target.patch @@ -0,0 +1,36 @@ +From 65610409f3a55c9f9793fab44d76088e589ffbb3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Marc-Andr=C3=A9=20Moreau?= +Date: Wed, 8 Sep 2021 08:49:13 -0400 +Subject: [PATCH] add lld-headers target + +--- + lld/CMakeLists.txt | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/lld/CMakeLists.txt b/lld/CMakeLists.txt +index 2e99564f4..2d02b0cb5 100644 +--- a/lld/CMakeLists.txt ++++ b/lld/CMakeLists.txt +@@ -189,9 +189,19 @@ include_directories(BEFORE + if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + install(DIRECTORY include/ + DESTINATION include ++ COMPONENT lld-headers + FILES_MATCHING + PATTERN "*.h" + ) ++ ++ add_custom_target(lld-headers) ++ set_target_properties(lld-headers PROPERTIES FOLDER "Misc") ++ ++ if(NOT LLVM_ENABLE_IDE) ++ add_llvm_install_targets(install-lld-headers ++ DEPENDS lld-headers ++ COMPONENT lld-headers) ++ endif() + endif() + + add_subdirectory(Common) +-- +2.25.1 +