Skip to content

Commit e8b4988

Browse files
committed
nesfab 1.6 (new formula)
1 parent b1b44bf commit e8b4988

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

Formula/n/nesfab.rb

+94
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
class Nesfab < Formula
2+
desc "Programming language that targets the Nintendo Entertainment System"
3+
homepage "https://pubby.games/nesfab.html"
4+
# for this version only, point to a specific commit. post-1.6, this will point to a tagged release.
5+
url "https://github.com/pubby/nesfab/archive/da18a43dc7b941cc4c56c949303aa37633fdc1b0.tar.gz"
6+
version "1.6"
7+
sha256 "bfd8c497df0d87138fda9e5de61d1ab5a36fb1951eeaed413b6619032b711745"
8+
license "GPL-3.0-only"
9+
10+
depends_on "make" => :build
11+
depends_on "boost"
12+
on_ventura do
13+
depends_on "llvm@18" => :build
14+
end
15+
on_linux do
16+
depends_on "gcc" => :build
17+
end
18+
19+
fails_with :clang do
20+
build 1599
21+
cause "Missing std::lexicographical_compare_three_way"
22+
end
23+
24+
def install
25+
# update this when bumping package version
26+
git_sha = "da18a43d"
27+
28+
if OS.mac? && MacOS.version == :ventura
29+
ENV.llvm_clang
30+
ENV.prepend_path "HOMEBREW_LIBRARY_PATHS", Formula["llvm@18"].opt_lib/"c++"
31+
# adapted from tests in:
32+
# https://github.com/Homebrew/homebrew-core/blob/5c4e0f50fa0cee5ae512f09ae887e3f5d0c05318/Formula/l/[email protected]
33+
toolchain_path = "/Library/Developer/CommandLineTools"
34+
cpp_base = (MacOS.version >= :big_sur) ? MacOS::CLT.sdk_path : toolchain_path
35+
36+
if Hardware::CPU.intel?
37+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "CXX=#{ENV.cxx}",
38+
"-isysroot", MacOS::CLT.sdk_path,
39+
"-isystem", "#{cpp_base}/usr/include/c++/v1",
40+
"-isystem", "#{MacOS::CLT.sdk_path}/usr/include",
41+
"-isystem", "#{toolchain_path}/usr/include",
42+
"release"
43+
else
44+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "CXX=#{ENV.cxx}",
45+
"-isysroot", MacOS::CLT.sdk_path,
46+
"-isystem", "#{cpp_base}/usr/include/c++/v1",
47+
"-isystem", "#{MacOS::CLT.sdk_path}/usr/include",
48+
"-isystem", "#{toolchain_path}/usr/include",
49+
"ARCH=", "release"
50+
end
51+
bin.install "nesfab" => "nesfab-release"
52+
53+
system "make", "clean"
54+
if Hardware::CPU.intel?
55+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "CXX=#{ENV.cxx}",
56+
"-isysroot", MacOS::CLT.sdk_path,
57+
"-isystem", "#{cpp_base}/usr/include/c++/v1",
58+
"-isystem", "#{MacOS::CLT.sdk_path}/usr/include",
59+
"-isystem", "#{toolchain_path}/usr/include",
60+
"debug"
61+
else
62+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "CXX=#{ENV.cxx}",
63+
"-isysroot", MacOS::CLT.sdk_path,
64+
"-isystem", "#{cpp_base}/usr/include/c++/v1",
65+
"-isystem", "#{MacOS::CLT.sdk_path}/usr/include",
66+
"-isystem", "#{toolchain_path}/usr/include",
67+
"ARCH=", "debug"
68+
end
69+
bin.install "nesfab"
70+
elsif OS.mac?
71+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "CXX=#{ENV.cxx}", "release" if Hardware::CPU.intel?
72+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "CXX=#{ENV.cxx}", "ARCH=", "release" if Hardware::CPU.arm?
73+
bin.install "nesfab" => "nesfab-release"
74+
75+
system "make", "clean"
76+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "CXX=#{ENV.cxx}", "debug" if Hardware::CPU.intel?
77+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "CXX=#{ENV.cxx}", "ARCH=", "debug" if Hardware::CPU.arm?
78+
bin.install "nesfab"
79+
else
80+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "release" if Hardware::CPU.intel?
81+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "ARCH=", "release" if Hardware::CPU.arm?
82+
bin.install "nesfab" => "nesfab-release"
83+
84+
system "make", "clean"
85+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "debug" if Hardware::CPU.intel?
86+
system "make", "GIT_COMMIT=#{git_sha}-homebrew", "ARCH=", "debug" if Hardware::CPU.arm?
87+
bin.install "nesfab" => "nesfab"
88+
end
89+
end
90+
91+
test do
92+
system bin/"nesfab", "--version"
93+
end
94+
end

0 commit comments

Comments
 (0)