1 |
commit: d71767d8b9454f990c4f220aacc316e2914b7af6 |
2 |
Author: Nick Erdmann <n <AT> nirf <DOT> de> |
3 |
AuthorDate: Sat Aug 3 15:05:42 2019 +0000 |
4 |
Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Aug 7 18:27:26 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d71767d8 |
7 |
|
8 |
dev-lang/zig: switch to EAPI=6, use patch files |
9 |
|
10 |
Signed-off-by: Nick Erdmann <n <AT> nirf.de> |
11 |
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> |
12 |
|
13 |
.../zig/files/zig-0.4.0-r1-build-artifacts.patch | 61 ++++++++++++++++++++++ |
14 |
.../zig/files/zig-0.4.0-r1-suppress-warnings.patch | 31 +++++++++++ |
15 |
dev-lang/zig/zig-0.4.0-r1.ebuild | 47 +++++++++++++++++ |
16 |
3 files changed, 139 insertions(+) |
17 |
|
18 |
diff --git a/dev-lang/zig/files/zig-0.4.0-r1-build-artifacts.patch b/dev-lang/zig/files/zig-0.4.0-r1-build-artifacts.patch |
19 |
new file mode 100644 |
20 |
index 00000000000..11868e93a8a |
21 |
--- /dev/null |
22 |
+++ b/dev-lang/zig/files/zig-0.4.0-r1-build-artifacts.patch |
23 |
@@ -0,0 +1,61 @@ |
24 |
+From 81767a658d07219a402384f98a7553abcbbd2e70 Mon Sep 17 00:00:00 2001 |
25 |
+From: Marc Tiehuis <marctiehuis@×××××.com> |
26 |
+Date: Thu, 18 Apr 2019 18:58:12 +1200 |
27 |
+Subject: [PATCH] Don't install stage2 artifacts |
28 |
+ |
29 |
+Fixes #2220. |
30 |
+--- |
31 |
+ CMakeLists.txt | 11 ++++++++++- |
32 |
+ 1 file changed, 11 insertions(+), 1 deletion(-) |
33 |
+ |
34 |
+diff --git a/CMakeLists.txt b/CMakeLists.txt |
35 |
+index 1b017a881..047d538e8 100644 |
36 |
+--- a/CMakeLists.txt |
37 |
++++ b/CMakeLists.txt |
38 |
+@@ -58,6 +58,16 @@ endif() |
39 |
+ |
40 |
+ set(ZIG_CPP_LIB_DIR "${CMAKE_BINARY_DIR}/zig_cpp") |
41 |
+ |
42 |
++# Handle multi-config builds and place each into a common lib. The VS generator |
43 |
++# for example will append a Debug folder by default if not explicitly specified. |
44 |
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ZIG_CPP_LIB_DIR}) |
45 |
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ZIG_CPP_LIB_DIR}) |
46 |
++foreach(CONFIG_TYPE ${CMAKE_CONFIGURATION_TYPES}) |
47 |
++ string(TOUPPER ${CONFIG_TYPE} CONFIG_TYPE) |
48 |
++ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONFIG_TYPE} ${ZIG_CPP_LIB_DIR}) |
49 |
++ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONFIG_TYPE} ${ZIG_CPP_LIB_DIR}) |
50 |
++endforeach(CONFIG_TYPE CMAKE_CONFIGURATION_TYPES) |
51 |
++ |
52 |
+ if(ZIG_FORCE_EXTERNAL_LLD) |
53 |
+ find_package(lld) |
54 |
+ include_directories(${LLVM_INCLUDE_DIRS}) |
55 |
+@@ -253,7 +263,6 @@ else() |
56 |
+ embedded_lld_wasm |
57 |
+ embedded_lld_lib |
58 |
+ ) |
59 |
+- install(TARGETS embedded_lld_elf embedded_lld_coff embedded_lld_mingw embedded_lld_wasm embedded_lld_lib DESTINATION "${ZIG_CPP_LIB_DIR}") |
60 |
+ endif() |
61 |
+ |
62 |
+ # No patches have been applied to SoftFloat-3e |
63 |
+ |
64 |
+From 40fe6afdad1a8676b5d3a5dd23d6d50d6ea9f059 Mon Sep 17 00:00:00 2001 |
65 |
+From: Marc Tiehuis <marctiehuis@×××××.com> |
66 |
+Date: Wed, 1 May 2019 17:39:23 +1200 |
67 |
+Subject: [PATCH] Don't install zig_cpp lib for stage2 target |
68 |
+ |
69 |
+Missed in last commit. See #2220. |
70 |
+--- |
71 |
+ CMakeLists.txt | 1 - |
72 |
+ 1 file changed, 1 deletion(-) |
73 |
+ |
74 |
+diff --git a/CMakeLists.txt b/CMakeLists.txt |
75 |
+index 047d538e8..9881ce1de 100644 |
76 |
+--- a/CMakeLists.txt |
77 |
++++ b/CMakeLists.txt |
78 |
+@@ -6671,6 +6681,5 @@ |
79 |
+ endif() |
80 |
+ install(TARGETS zig DESTINATION bin) |
81 |
+-install(TARGETS zig_cpp DESTINATION "${ZIG_CPP_LIB_DIR}") |
82 |
+ |
83 |
+ foreach(file ${ZIG_C_HEADER_FILES}) |
84 |
+ get_filename_component(file_dir "${C_HEADERS_DEST}/${file}" DIRECTORY) |
85 |
|
86 |
diff --git a/dev-lang/zig/files/zig-0.4.0-r1-suppress-warnings.patch b/dev-lang/zig/files/zig-0.4.0-r1-suppress-warnings.patch |
87 |
new file mode 100644 |
88 |
index 00000000000..1dc92f88ecb |
89 |
--- /dev/null |
90 |
+++ b/dev-lang/zig/files/zig-0.4.0-r1-suppress-warnings.patch |
91 |
@@ -0,0 +1,31 @@ |
92 |
+Don't attempt to look for static libraries that we're not going to use. |
93 |
+The warnings are only triggered when building with portage. |
94 |
+ |
95 |
+--- a/cmake/Findllvm.cmake |
96 |
++++ b/cmake/Findllvm.cmake |
97 |
+@@ -50,25 +50,6 @@ |
98 |
+ endif() |
99 |
+ endfunction(NEED_TARGET) |
100 |
+ |
101 |
+-if(NOT(CMAKE_BUILD_TYPE STREQUAL "Debug") OR ZIG_STATIC) |
102 |
+- execute_process( |
103 |
+- COMMAND ${LLVM_CONFIG_EXE} --libfiles --link-static |
104 |
+- OUTPUT_VARIABLE LLVM_LIBRARIES_SPACES |
105 |
+- OUTPUT_STRIP_TRAILING_WHITESPACE) |
106 |
+- string(REPLACE " " ";" LLVM_LIBRARIES "${LLVM_LIBRARIES_SPACES}") |
107 |
+- |
108 |
+- execute_process( |
109 |
+- COMMAND ${LLVM_CONFIG_EXE} --system-libs --link-static |
110 |
+- OUTPUT_VARIABLE LLVM_SYSTEM_LIBS_SPACES |
111 |
+- OUTPUT_STRIP_TRAILING_WHITESPACE) |
112 |
+- string(REPLACE " " ";" LLVM_SYSTEM_LIBS "${LLVM_SYSTEM_LIBS_SPACES}") |
113 |
+- |
114 |
+- execute_process( |
115 |
+- COMMAND ${LLVM_CONFIG_EXE} --libdir --link-static |
116 |
+- OUTPUT_VARIABLE LLVM_LIBDIRS_SPACES |
117 |
+- OUTPUT_STRIP_TRAILING_WHITESPACE) |
118 |
+- string(REPLACE " " ";" LLVM_LIBDIRS "${LLVM_LIBDIRS_SPACES}") |
119 |
+-endif() |
120 |
+ if(NOT LLVM_LIBRARIES) |
121 |
+ execute_process( |
122 |
+ COMMAND ${LLVM_CONFIG_EXE} --libs |
123 |
|
124 |
diff --git a/dev-lang/zig/zig-0.4.0-r1.ebuild b/dev-lang/zig/zig-0.4.0-r1.ebuild |
125 |
new file mode 100644 |
126 |
index 00000000000..de7dd259a3d |
127 |
--- /dev/null |
128 |
+++ b/dev-lang/zig/zig-0.4.0-r1.ebuild |
129 |
@@ -0,0 +1,47 @@ |
130 |
+# Copyright 2019 Gentoo Authors |
131 |
+# Distributed under the terms of the GNU General Public License v2 |
132 |
+ |
133 |
+EAPI=6 |
134 |
+ |
135 |
+inherit cmake-utils llvm |
136 |
+ |
137 |
+DESCRIPTION="A robust, optimal, and maintainable programming language" |
138 |
+HOMEPAGE="https://ziglang.org/" |
139 |
+LICENSE="MIT" |
140 |
+SLOT="0" |
141 |
+IUSE="+experimental" |
142 |
+ |
143 |
+if [[ ${PV} == 9999 ]]; then |
144 |
+ EGIT_REPO_URI="https://github.com/ziglang/zig.git" |
145 |
+ inherit git-r3 |
146 |
+else |
147 |
+ SRC_URI="https://github.com/ziglang/zig/archive/${PV}.tar.gz -> ${P}.tar.gz" |
148 |
+ KEYWORDS="~amd64" |
149 |
+fi |
150 |
+ |
151 |
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430 NVPTX |
152 |
+ PowerPC Sparc SystemZ WebAssembly X86 XCore ) |
153 |
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" ) |
154 |
+# According to zig's author, zig builds that do not support all targets are not |
155 |
+# supported by the upstream project. |
156 |
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]} |
157 |
+ |
158 |
+RDEPEND=" |
159 |
+ sys-devel/llvm:8 |
160 |
+ !experimental? ( sys-devel/llvm:8[${LLVM_TARGET_USEDEPS// /,}] ) |
161 |
+" |
162 |
+ |
163 |
+DEPEND="${RDEPEND}" |
164 |
+ |
165 |
+PATCHES=( |
166 |
+ "${FILESDIR}/zig-0.4.0-r1-build-artifacts.patch" |
167 |
+ "${FILESDIR}/zig-0.4.0-r1-suppress-warnings.patch" |
168 |
+) |
169 |
+ |
170 |
+src_prepare() { |
171 |
+ if use experimental; then |
172 |
+ sed -i '/^NEED_TARGET(/d' cmake/Findllvm.cmake || die "unable to modify cmake/Findllvm.cmake" |
173 |
+ fi |
174 |
+ |
175 |
+ cmake-utils_src_prepare |
176 |
+} |