Gentoo Archives: gentoo-commits

From: Joonas Niilola <juippis@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-lang/zig/files/, dev-lang/zig/
Date: Wed, 07 Aug 2019 18:28:42
Message-Id: 1565202446.d71767d8b9454f990c4f220aacc316e2914b7af6.juippis@gentoo
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 +}