Skip to content

Commit

Permalink
ci: Add macos build
Browse files Browse the repository at this point in the history
  • Loading branch information
Zer0-One committed Dec 11, 2023
1 parent 1e3c9b0 commit 3a2e115
Show file tree
Hide file tree
Showing 13 changed files with 70 additions and 9 deletions.
4 changes: 4 additions & 0 deletions .bazelrc
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ build:linux --features=layering_check
build:linux --cxxopt='-std=c++2b'
build:linux --cxxopt='-fno-rtti'

build:macos --features=layering_check
build:macos --cxxopt='-std=c++2b'
build:macos --cxxopt='-fno-rtti'

# Force DWARF-4 format for debug symbols for compatibility with valgrind.
# See: https://bugs.kde.org/show_bug.cgi?id=452758
build:linux --copt='-gdwarf-4'
Expand Down
10 changes: 10 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,16 @@ jobs:
echo "<html><body><h1>Example</h1><p>This is an example page.</p></body></html>" >example.html
./bazelisk run browser:tui file://$(pwd)/example.html
macos:
runs-on: macos-13
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
#- run: export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"; export PATH="/usr/local/opt/icu4c/bin:/usr/local/opt/icu4c/sbin:$PATH"; bazelisk build //archive/... //azm/... //css/... //css2/... //dom/... //geom/... //gfx/... //js/... //net/... //os/... //protocol/... //type/... //uri/... //url/... //util/... //wasm/...
#- run: export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"; export PATH="/usr/local/opt/icu4c/bin:/usr/local/opt/icu4c/sbin:$PATH"; bazelisk test //archive/... //azm/... //css/... //css2/... //dom/... //geom/... //gfx/... //html/... //html2/... //idna/... //img/... //js/... //net/... //os/... //protocol/... //style/... //type/... //uri/... //url/... //util/... //wasm/...
# This build relies on an ICU pre-installed via homebrew.
- run: export PKG_CONFIG_PATH="/usr/local/opt/icu4c/lib/pkgconfig"; export PATH="/usr/local/opt/icu4c/bin:/usr/local/opt/icu4c/sbin:$PATH"; bazelisk test //...

windows-msvc:
runs-on: windows-2022
timeout-minutes: 40
Expand Down
6 changes: 3 additions & 3 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ http_archive(
http_archive(
name = "bazel_clang_tidy",
# Hack to have every .h-header treated as C++.
patch_cmds = ["""sed -i '47i \\ args.add("-xc++")' clang_tidy/clang_tidy.bzl"""],
patch_cmds = ["""sed -i'' -e '47i\\\n args.add("-xc++")' clang_tidy/clang_tidy.bzl"""],
sha256 = "e2721c47f4215ac36ad1da55ebdb968a094125dbc397aa7733f067001600b2ee",
strip_prefix = "bazel_clang_tidy-133d89a6069ce253a92d32a93fdb7db9ef100e9d",
url = "https://github.com/erenon/bazel_clang_tidy/archive/133d89a6069ce253a92d32a93fdb7db9ef100e9d.tar.gz",
Expand All @@ -82,7 +82,7 @@ http_archive(
# boringssl//:ssl cheats and pulls in private includes from boringssl//:crypto.
http_archive(
name = "boringssl", # OpenSSL + ISC
patch_cmds = ["""sed -i '33i package(features=["-layering_check"])' BUILD"""],
patch_cmds = ["""sed -i'' -e '33i\\\npackage(features=["-layering_check"])' BUILD"""],
sha256 = "6369980cd79b3847a17a8e078dce37688671911a6fadb1c84e27fb505d827511",
strip_prefix = "boringssl-22b3ea0c113b544e4334377541cabe8d8038d0c7",
url = "https://github.com/google/boringssl/archive/22b3ea0c113b544e4334377541cabe8d8038d0c7.tar.gz",
Expand Down Expand Up @@ -187,7 +187,7 @@ http_archive(
# in MSVC debug builds with "cannot seek string_view iterator after end".
# See: https://github.com/SFML/SFML/issues/2113
patch_cmds = [
"sed -i 's/if (begin + trailingBytes < end)/if (trailingBytes < std::distance(begin, end))/' include/SFML/System/Utf.inl",
"sed -i'' -e 's/if (begin + trailingBytes < end)/if (trailingBytes < std::distance(begin, end))/' include/SFML/System/Utf.inl",
],
sha256 = "6124b5fe3d96e7f681f587e2d5b456cd0ec460393dfe46691f1933d6bde0640b",
strip_prefix = "SFML-2.5.1",
Expand Down
4 changes: 4 additions & 0 deletions gfx/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ cc_library(
# sfml leaks this into our code.
"-Wno-implicit-fallthrough",
],
"@platforms//os:macos": [
# sfml leaks this into our code.
"-Wno-implicit-fallthrough",
],
"//conditions:default": [],
}),
visibility = ["//visibility:public"],
Expand Down
4 changes: 4 additions & 0 deletions net/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ NET_COPTS = HASTUR_COPTS + select({
"-Wno-shadow",
"-Wno-unknown-pragmas",
],
"@platforms//os:macos": [
"-Wno-shadow",
"-Wno-unknown-pragmas",
],
"//conditions:default": [],
})

Expand Down
16 changes: 14 additions & 2 deletions os/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,28 @@ cc_library(

OS_DEPS = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"@platforms//os:windows": [":windows_setup"],
})

OS_LOCAL_DEFINES = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"@platforms//os:windows": ["WIN32_LEAN_AND_MEAN"],
})

cc_library(
name = "memory",
srcs = select({
"@platforms//os:linux": ["memory_linux.cpp"],
"@platforms//os:macos": ["memory_linux.cpp"],
"@platforms//os:windows": ["memory_windows.cpp"],
}),
hdrs = ["memory.h"],
copts = HASTUR_COPTS,
linkopts = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"@platforms//os:windows": [
"-DEFAULTLIB:Kernel32",
],
Expand All @@ -50,12 +54,14 @@ cc_library(
name = "system_info",
srcs = select({
"@platforms//os:linux": ["system_info_linux.cpp"],
"@platforms//os:macos": ["system_info_linux.cpp"],
"@platforms//os:windows": ["system_info_windows.cpp"],
}),
hdrs = ["system_info.h"],
copts = HASTUR_COPTS,
linkopts = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"@platforms//os:windows": [
"-DEFAULTLIB:Shcore",
"-DEFAULTLIB:User32",
Expand All @@ -71,7 +77,9 @@ cc_test(
size = "small",
srcs = ["system_info_linux_test.cpp"],
copts = HASTUR_COPTS,
target_compatible_with = ["@platforms//os:linux"],
target_compatible_with = [
"@platforms//os:linux",
],
deps = [
":system_info",
"//etest",
Expand All @@ -82,12 +90,14 @@ cc_library(
name = "xdg",
srcs = select({
"@platforms//os:linux": ["xdg_linux.cpp"],
"@platforms//os:macos": ["xdg_linux.cpp"],
"@platforms//os:windows": ["xdg_windows.cpp"],
}),
hdrs = ["xdg.h"],
copts = HASTUR_COPTS,
linkopts = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"@platforms//os:windows": [
"-DEFAULTLIB:Shell32",
"-DEFAULTLIB:Kernel32",
Expand Down Expand Up @@ -115,7 +125,9 @@ cc_test(
size = "small",
srcs = ["xdg_linux_test.cpp"],
copts = HASTUR_COPTS,
target_compatible_with = ["@platforms//os:linux"],
target_compatible_with = [
"@platforms//os:linux",
],
deps = [
":xdg",
"//etest",
Expand Down
1 change: 1 addition & 0 deletions third_party/ftxui.BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ cc_library(
includes = ["include/"],
local_defines = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"@platforms//os:windows": [
"_UNICODE",
"UNICODE",
Expand Down
6 changes: 2 additions & 4 deletions third_party/icu.BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,8 @@ cc_library(
}),
linkstatic = True,
local_defines = ["U_TOOLUTIL_IMPLEMENTATION"] + select({
"@platforms//os:windows": [],
"//conditions:default": [
"U_ELF",
],
"@platforms//os:linux": ["U_ELF"],
"//conditions:default": [],
}),
strip_include_prefix = "source/tools/toolutil",
visibility = ["//visibility:private"],
Expand Down
23 changes: 23 additions & 0 deletions third_party/sfml.BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ cc_library(
"src/SFML/System/Unix/**/*.cpp",
"src/SFML/System/Unix/**/*.hpp",
]),
"@platforms//os:macos": glob([
"src/SFML/System/Unix/**/*.cpp",
"src/SFML/System/Unix/**/*.hpp",
]),
"@platforms//os:windows": glob([
"src/SFML/System/Win32/**/*.cpp",
"src/SFML/System/Win32/**/*.hpp",
Expand All @@ -28,6 +32,9 @@ cc_library(
"@platforms//os:linux": [
"-pthread",
],
"@platforms//os:macos": [
"-pthread",
],
"@platforms//os:windows": [
"-DEFAULTLIB:winmm",
],
Expand All @@ -54,6 +61,10 @@ cc_library(
"src/SFML/Window/Unix/*.cpp",
"src/SFML/Window/Unix/*.hpp",
]),
"@platforms//os:macos": glob([
"src/SFML/Window/Unix/*.cpp",
"src/SFML/Window/Unix/*.hpp",
]),
"@platforms//os:windows": glob([
"src/SFML/Window/Win32/*.cpp",
"src/SFML/Window/Win32/*.hpp",
Expand All @@ -67,6 +78,10 @@ cc_library(
"-lGL",
"-lX11",
],
"@platforms//os:macos": [
"-lGL",
"-lX11",
],
"@platforms//os:windows": [
"-DEFAULTLIB:advapi32",
"-DEFAULTLIB:gdi32",
Expand All @@ -82,6 +97,10 @@ cc_library(
"@udev-zero",
"@xrandr",
],
"@platforms//os:macos": [
"@udev-zero",
"@xrandr",
],
"@platforms//os:windows": [],
}),
)
Expand All @@ -103,6 +122,10 @@ cc_library(
"-lGL",
"-lX11",
],
"@platforms//os:macos": [
"-lGL",
"-lX11",
],
"@platforms//os:windows": [],
}),
strip_include_prefix = "include/",
Expand Down
1 change: 1 addition & 0 deletions third_party/spdlog.BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ cc_library(
includes = ["include/"],
linkopts = select({
"@platforms//os:linux": ["-lpthread"],
"@platforms//os:macos": ["-lpthread"],
"@platforms//os:windows": [],
}),
strip_include_prefix = "include",
Expand Down
2 changes: 2 additions & 0 deletions third_party/unifex.BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ cc_library(
name = "unifex",
srcs = glob(["source/*.cpp"]) + select({
"@platforms//os:linux": glob(["source/linux/*"]),
"@platforms//os:macos": glob(["source/linux/*"]),
"@platforms//os:windows": glob([
"include/unifex/win32/detail/*.hpp",
"source/win32/*",
Expand All @@ -22,6 +23,7 @@ cc_library(
"include/unifex/detail/*.hpp",
]) + [":config_header"] + select({
"@platforms//os:linux": glob(["include/unifex/linux/*.hpp"]),
"@platforms//os:macos": glob(["include/unifex/linux/*.hpp"]),
"@platforms//os:windows": glob(["include/unifex/win32/*.hpp"]),
}),
includes = ["include/"],
Expand Down
1 change: 1 addition & 0 deletions third_party/zlib.BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ cc_library(
includes = ["."],
local_defines = select({
"@platforms//os:linux": ["Z_HAVE_UNISTD_H"],
"@platforms//os:macos": ["Z_HAVE_UNISTD_H"],
"@platforms//os:windows": [],
}),
visibility = ["//visibility:public"],
Expand Down
1 change: 1 addition & 0 deletions type/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ cc_test(
SFML_TYPE_COPTS = HASTUR_COPTS + select({
# SFML leaks this into our code.
"@platforms//os:linux": ["-Wno-implicit-fallthrough"],
"@platforms//os:macos": ["-Wno-implicit-fallthrough"],
"//conditions:default": [],
})

Expand Down

0 comments on commit 3a2e115

Please sign in to comment.