Skip to content

Commit 8460286

Browse files
awakecodingMarc-André Moreau
andauthored
Refactoring (#6)
* update all * fix more stuff * update * update options * modify options * Update * update * remove builtins * update * update * Enable stuff * Update * update dev components * update * more dev components * fix fix fix * cleanup Co-authored-by: Marc-André Moreau <mamoreau@devolutions.net>
1 parent ed1b728 commit 8460286

File tree

9 files changed

+146
-129
lines changed

9 files changed

+146
-129
lines changed

.github/workflows/llvm-prebuilt.yml

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,6 @@ jobs:
8585
run: "cmake -G Ninja -S llvm-project/llvm -B llvm-host
8686
-DCMAKE_BUILD_TYPE=Release
8787
-DLLVM_ENABLE_PROJECTS=clang
88-
-DLLVM_INCLUDE_EXAMPLES=OFF
89-
-DLLVM_INCLUDE_TESTS=OFF
90-
-DLLVM_INCLUDE_DOCS=OFF
91-
-DLLVM_ENABLE_LIBXML2=OFF
92-
-DLLVM_ENABLE_TERMINFO=OFF
9388
-Wno-dev"
9489

9590
- name: Build LLVM host tools
@@ -102,12 +97,13 @@ jobs:
10297
echo "CLANG_TABLEGEN=$HostBinPath/clang-tblgen$ExeExt" >> $Env:GITHUB_ENV
10398
echo "LLVM_CONFIG_PATH=$HostBinPath/llvm-config$ExeExt" >> $Env:GITHUB_ENV
10499
105-
- name: Set CMake toolchain file
100+
- name: Set CMake environment
106101
shell: pwsh
107102
run: |
108103
$ToolchainPath = "$Env:GITHUB_WORKSPACE/llvm-prebuilt/toolchains"
109104
$ToolchainName = "${{matrix.arch}}-${{matrix.os}}"
110105
echo "CMAKE_TOOLCHAIN_FILE=$ToolchainPath/$ToolchainName.cmake" >> $Env:GITHUB_ENV
106+
echo "CMAKE_INSTALL_PREFIX=$Env:GITHUB_WORKSPACE/llvm-install" >> $Env:GITHUB_ENV
111107
112108
- name: Enable Windows target environment
113109
if: runner.os == 'Windows'
@@ -116,28 +112,13 @@ jobs:
116112
arch: ${{matrix.msvc}}
117113

118114
- name: Configure LLVM
119-
run: "cmake -G Ninja -S llvm-project/llvm -B llvm-build
120-
-DCMAKE_BUILD_TYPE=Release
121-
\"-DLLVM_TARGETS_TO_BUILD=X86;ARM;NVPTX;AArch64;Mips;Hexagon;PowerPC;WebAssembly\"
122-
\"-DLLVM_ENABLE_PROJECTS=clang;lld\"
123-
-DLLVM_BUILD_32_BITS=OFF
124-
-DLLVM_BUILD_LLVM_C_DYLIB=OFF
125-
-DLLVM_INCLUDE_EXAMPLES=OFF
126-
-DLLVM_INCLUDE_TESTS=OFF
127-
-DLLVM_INCLUDE_DOCS=OFF
128-
-DLLVM_ENABLE_ASSERTIONS=ON
129-
-DLLVM_ENABLE_RTTI=ON
130-
-DLLVM_ENABLE_EH=ON
131-
-DLLVM_ENABLE_LIBXML2=ON
132-
-DLLVM_ENABLE_TERMINFO=OFF
133-
-DLLVM_INSTALL_TOOLCHAIN_ONLY=ON
134-
-Wno-dev"
115+
run: "cmake -G Ninja -S llvm-project/llvm -B llvm-build -Wno-dev"
135116

136117
- name: Build LLVM
137118
run: cmake --build llvm-build
138119

139120
- name: Install LLVM
140-
run: cmake --install llvm-build --prefix llvm-install --strip
121+
run: cmake --build llvm-build --target install-distribution
141122

142123
- name: Package LLVM
143124
if: runner.os != 'Windows'

LICENSE

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
1-
MIT License
1+
Permission is hereby granted, free of charge, to any
2+
person obtaining a copy of this software and associated
3+
documentation files (the "Software"), to deal in the
4+
Software without restriction, including without
5+
limitation the rights to use, copy, modify, merge,
6+
publish, distribute, sublicense, and/or sell copies of
7+
the Software, and to permit persons to whom the Software
8+
is furnished to do so, subject to the following
9+
conditions:
210

3-
Copyright (c) 2020 Alex Reinking
11+
The above copyright notice and this permission notice
12+
shall be included in all copies or substantial portions
13+
of the Software.
414

5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
11-
12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
14-
15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
16+
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
17+
TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
18+
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
19+
SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
22+
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23+
DEALINGS IN THE SOFTWARE.

toolchains/aarch64-linux.cmake

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,4 @@ set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)
99
set(LLVM_TARGET_ARCH AArch64)
1010
set(LLVM_DEFAULT_TARGET_TRIPLE aarch64-linux-gnu)
1111

12-
if(DEFINED ENV{CLANG_TABLEGEN})
13-
set(CLANG_TABLEGEN $ENV{CLANG_TABLEGEN} CACHE FILEPATH "")
14-
message(STATUS "CLANG_TABLEGEN: ${CLANG_TABLEGEN}")
15-
endif()
16-
17-
if(DEFINED ENV{LLVM_TABLEGEN})
18-
set(LLVM_TABLEGEN $ENV{LLVM_TABLEGEN} CACHE FILEPATH "")
19-
message(STATUS "LLVM_TABLEGEN: ${LLVM_TABLEGEN}")
20-
endif()
21-
22-
if(DEFINED ENV{LLVM_CONFIG_PATH})
23-
set(LLVM_CONFIG_PATH $ENV{LLVM_CONFIG_PATH} CACHE FILEPATH "")
24-
message(STATUS "LLVM_CONFIG_PATH: ${LLVM_CONFIG_PATH}")
25-
endif()
12+
include("${CMAKE_CURRENT_LIST_DIR}/llvm-distribution.cmake")

toolchains/aarch64-macos.cmake

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,4 @@ set(CMAKE_CROSSCOMPILING TRUE)
44

55
set(LLVM_TARGET_ARCH AArch64)
66

7-
if(DEFINED ENV{CLANG_TABLEGEN})
8-
set(CLANG_TABLEGEN $ENV{CLANG_TABLEGEN} CACHE FILEPATH "")
9-
message(STATUS "CLANG_TABLEGEN: ${CLANG_TABLEGEN}")
10-
endif()
11-
12-
if(DEFINED ENV{LLVM_TABLEGEN})
13-
set(LLVM_TABLEGEN $ENV{LLVM_TABLEGEN} CACHE FILEPATH "")
14-
message(STATUS "LLVM_TABLEGEN: ${LLVM_TABLEGEN}")
15-
endif()
16-
17-
if(DEFINED ENV{LLVM_CONFIG_PATH})
18-
set(LLVM_CONFIG_PATH $ENV{LLVM_CONFIG_PATH} CACHE FILEPATH "")
19-
message(STATUS "LLVM_CONFIG_PATH: ${LLVM_CONFIG_PATH}")
20-
endif()
7+
include("${CMAKE_CURRENT_LIST_DIR}/llvm-distribution.cmake")

toolchains/aarch64-windows.cmake

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,5 @@ set(CMAKE_SYSTEM_PROCESSOR "ARM64")
33
set(CMAKE_CROSSCOMPILING TRUE)
44

55
set(LLVM_TARGET_ARCH AArch64)
6-
set(LLVM_USE_CRT_RELEASE MT)
76

8-
if(DEFINED ENV{CLANG_TABLEGEN})
9-
set(CLANG_TABLEGEN $ENV{CLANG_TABLEGEN} CACHE FILEPATH "")
10-
message(STATUS "CLANG_TABLEGEN: ${CLANG_TABLEGEN}")
11-
endif()
12-
13-
if(DEFINED ENV{LLVM_TABLEGEN})
14-
set(LLVM_TABLEGEN $ENV{LLVM_TABLEGEN} CACHE FILEPATH "")
15-
message(STATUS "LLVM_TABLEGEN: ${LLVM_TABLEGEN}")
16-
endif()
17-
18-
if(DEFINED ENV{LLVM_CONFIG_PATH})
19-
set(LLVM_CONFIG_PATH $ENV{LLVM_CONFIG_PATH} CACHE FILEPATH "")
20-
message(STATUS "LLVM_CONFIG_PATH: ${LLVM_CONFIG_PATH}")
21-
endif()
7+
include("${CMAKE_CURRENT_LIST_DIR}/llvm-distribution.cmake")

toolchains/llvm-distribution.cmake

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
2+
if(DEFINED ENV{CMAKE_INSTALL_PREFIX})
3+
set(CMAKE_INSTALL_PREFIX $ENV{CMAKE_INSTALL_PREFIX} CACHE FILEPATH "")
4+
endif()
5+
6+
if(DEFINED ENV{CLANG_TABLEGEN})
7+
set(CLANG_TABLEGEN $ENV{CLANG_TABLEGEN} CACHE FILEPATH "")
8+
message(STATUS "CLANG_TABLEGEN: ${CLANG_TABLEGEN}")
9+
endif()
10+
11+
if(DEFINED ENV{LLVM_TABLEGEN})
12+
set(LLVM_TABLEGEN $ENV{LLVM_TABLEGEN} CACHE FILEPATH "")
13+
message(STATUS "LLVM_TABLEGEN: ${LLVM_TABLEGEN}")
14+
endif()
15+
16+
if(DEFINED ENV{LLVM_CONFIG_PATH})
17+
set(LLVM_CONFIG_PATH $ENV{LLVM_CONFIG_PATH} CACHE FILEPATH "")
18+
message(STATUS "LLVM_CONFIG_PATH: ${LLVM_CONFIG_PATH}")
19+
endif()
20+
21+
set(PACKAGE_VENDOR "awakecoding" CACHE STRING "")
22+
23+
set(LLVM_TARGETS_TO_BUILD "X86;ARM;AArch64;Mips;PowerPC;RISCV;WebAssembly" CACHE STRING "")
24+
25+
set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;llvm;lld" CACHE STRING "")
26+
set(LLVM_ENABLE_RUNTIMES "" CACHE STRING "")
27+
28+
set(LLVM_ENABLE_BACKTRACES OFF CACHE BOOL "")
29+
set(LLVM_ENABLE_DIA_SDK OFF CACHE BOOL "")
30+
set(LLVM_ENABLE_TERMINFO OFF CACHE BOOL "")
31+
set(LLVM_ENABLE_LIBXML2 ON CACHE BOOL "")
32+
set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "")
33+
set(LLVM_ENABLE_UNWIND_TABLES OFF CACHE BOOL "")
34+
set(LLVM_ENABLE_Z3_SOLVER OFF CACHE BOOL "")
35+
set(LLVM_ENABLE_RTTI ON CACHE BOOL "")
36+
set(LLVM_ENABLE_EH ON CACHE BOOL "")
37+
set(LLVM_INCLUDE_DOCS OFF CACHE BOOL "")
38+
set(LLVM_INCLUDE_TESTS OFF CACHE BOOL "")
39+
set(LLVM_INCLUDE_EXAMPLES OFF CACHE BOOL "")
40+
set(LLVM_INCLUDE_GO_TESTS OFF CACHE BOOL "")
41+
42+
set(LLVM_BUILD_LLVM_C_DYLIB OFF CACHE BOOL "")
43+
set(LLVM_BUILD_32_BITS OFF CACHE BOOL "")
44+
45+
if(WIN32)
46+
set(LLVM_USE_CRT_RELEASE "MT" CACHE STRING "")
47+
endif()
48+
49+
set(LLVM_ENABLE_ASSERTIONS ON CACHE BOOL "")
50+
set(CMAKE_BUILD_TYPE Release CACHE STRING "")
51+
52+
set(LLVM_INSTALL_TOOLCHAIN_ONLY OFF CACHE BOOL "")
53+
54+
set(LLVM_CCTOOLS_COMPONENTS
55+
llvm-lipo
56+
llvm-libtool-darwin
57+
llvm-install-name-tool
58+
llvm-bitcode-strip
59+
CACHE STRING "")
60+
61+
set(LLVM_BINUTILS_COMPONENTS
62+
llvm-ar
63+
llvm-cxxfilt
64+
llvm-dwp
65+
llvm-nm
66+
llvm-objcopy
67+
llvm-objdump
68+
llvm-rc
69+
llvm-readobj
70+
llvm-size
71+
llvm-strings
72+
llvm-symbolizer
73+
CACHE STRING "")
74+
75+
set(LLVM_TOOLCHAIN_TOOLS
76+
dsymutil
77+
llvm-cat
78+
llvm-cov
79+
llvm-config
80+
llvm-diff
81+
llvm-dlltool
82+
llvm-dwarfdump
83+
llvm-ifs
84+
llvm-gsymutil
85+
llvm-lib
86+
llvm-mt
87+
llvm-pdbutil
88+
llvm-profdata
89+
llvm-ranlib
90+
llvm-readelf
91+
llvm-strip
92+
llvm-xray
93+
${LLVM_CCTOOLS_COMPONENTS}
94+
${LLVM_BINUTILS_COMPONENTS}
95+
CACHE STRING "")
96+
97+
set(LLVM_DEVELOPMENT_COMPONENTS
98+
cmake-exports
99+
llvm-headers
100+
llvm-libraries
101+
clang-headers
102+
clang-libraries
103+
clang-cmake-exports
104+
clang-resource-headers
105+
CACHE STRING "")
106+
107+
set(LLVM_DISTRIBUTION_COMPONENTS
108+
clang
109+
lld
110+
LTO
111+
clang-format
112+
clang-tidy
113+
${LLVM_DEVELOPMENT_COMPONENTS}
114+
${LLVM_TOOLCHAIN_TOOLS}
115+
CACHE STRING "")

toolchains/x86_64-linux.cmake

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,4 @@ set(CMAKE_SYSTEM_PROCESSOR x86_64)
33

44
set(CMAKE_CROSSCOMPILING TRUE)
55

6-
if(DEFINED ENV{CLANG_TABLEGEN})
7-
set(CLANG_TABLEGEN $ENV{CLANG_TABLEGEN} CACHE FILEPATH "")
8-
message(STATUS "CLANG_TABLEGEN: ${CLANG_TABLEGEN}")
9-
endif()
10-
11-
if(DEFINED ENV{LLVM_TABLEGEN})
12-
set(LLVM_TABLEGEN $ENV{LLVM_TABLEGEN} CACHE FILEPATH "")
13-
message(STATUS "LLVM_TABLEGEN: ${LLVM_TABLEGEN}")
14-
endif()
15-
16-
if(DEFINED ENV{LLVM_CONFIG_PATH})
17-
set(LLVM_CONFIG_PATH $ENV{LLVM_CONFIG_PATH} CACHE FILEPATH "")
18-
message(STATUS "LLVM_CONFIG_PATH: ${LLVM_CONFIG_PATH}")
19-
endif()
6+
include("${CMAKE_CURRENT_LIST_DIR}/llvm-distribution.cmake")

toolchains/x86_64-macos.cmake

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,4 @@ set(CMAKE_OSX_ARCHITECTURES "x86_64")
22

33
set(CMAKE_CROSSCOMPILING TRUE)
44

5-
if(DEFINED ENV{CLANG_TABLEGEN})
6-
set(CLANG_TABLEGEN $ENV{CLANG_TABLEGEN} CACHE FILEPATH "")
7-
message(STATUS "CLANG_TABLEGEN: ${CLANG_TABLEGEN}")
8-
endif()
9-
10-
if(DEFINED ENV{LLVM_TABLEGEN})
11-
set(LLVM_TABLEGEN $ENV{LLVM_TABLEGEN} CACHE FILEPATH "")
12-
message(STATUS "LLVM_TABLEGEN: ${LLVM_TABLEGEN}")
13-
endif()
14-
15-
if(DEFINED ENV{LLVM_CONFIG_PATH})
16-
set(LLVM_CONFIG_PATH $ENV{LLVM_CONFIG_PATH} CACHE FILEPATH "")
17-
message(STATUS "LLVM_CONFIG_PATH: ${LLVM_CONFIG_PATH}")
18-
endif()
5+
include("${CMAKE_CURRENT_LIST_DIR}/llvm-distribution.cmake")

toolchains/x86_64-windows.cmake

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,4 @@ set(CMAKE_SYSTEM_PROCESSOR "x64")
22

33
set(CMAKE_CROSSCOMPILING TRUE)
44

5-
set(LLVM_USE_CRT_RELEASE MT)
6-
7-
if(DEFINED ENV{CLANG_TABLEGEN})
8-
set(CLANG_TABLEGEN $ENV{CLANG_TABLEGEN} CACHE FILEPATH "")
9-
message(STATUS "CLANG_TABLEGEN: ${CLANG_TABLEGEN}")
10-
endif()
11-
12-
if(DEFINED ENV{LLVM_TABLEGEN})
13-
set(LLVM_TABLEGEN $ENV{LLVM_TABLEGEN} CACHE FILEPATH "")
14-
message(STATUS "LLVM_TABLEGEN: ${LLVM_TABLEGEN}")
15-
endif()
16-
17-
if(DEFINED ENV{LLVM_CONFIG_PATH})
18-
set(LLVM_CONFIG_PATH $ENV{LLVM_CONFIG_PATH} CACHE FILEPATH "")
19-
message(STATUS "LLVM_CONFIG_PATH: ${LLVM_CONFIG_PATH}")
20-
endif()
5+
include("${CMAKE_CURRENT_LIST_DIR}/llvm-distribution.cmake")

0 commit comments

Comments
 (0)