Skip to content

Commit 9c2e125

Browse files
committed
CI MacOS
1 parent 09915d1 commit 9c2e125

7 files changed

Lines changed: 35 additions & 26 deletions

File tree

.github/workflows/ci-cpp-linux.yml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,16 @@ jobs:
4949
if: ${{ matrix.compiler.name == 'Latest Clang' }}
5050
uses: MorganCaron/latest-clang-action@master
5151

52-
- name: Compile
52+
- name: Update xmake repository
53+
run: xmake repo --update
54+
55+
- name: Configure & Install dependencies
56+
run: |
57+
xmake f ${{ matrix.compiler.xmake-toolchain }} --runtimes="c++_shared" --enable_tests=y -v --yes
58+
59+
- name: Build
5360
run: |
54-
xmake f ${{ matrix.compiler.xmake-toolchain }} --runtimes="c++_shared" --enable_tests=y --yes
55-
xmake build -vD
61+
xmake build -v
5662
5763
- name: Run tests
5864
run: |

.github/workflows/ci-cpp-macos.yml

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,25 @@ jobs:
1717
}
1818
steps:
1919
- uses: actions/checkout@v4
20+
21+
- uses: tecolicom/actions-use-homebrew-tools@v1
22+
with:
23+
tools: llvm ninja cmake
24+
2025
- uses: xmake-io/github-action-setup-xmake@v1
2126
with:
2227
xmake-version: branch@master
2328

24-
- name: Install LLVM
25-
if: ${{ matrix.compiler.name == 'Clang' }}
29+
- name: Update xmake repository
30+
run: xmake repo --update
31+
32+
- name: Configure & Install dependencies
2633
run: |
27-
brew install llvm
34+
xmake f --toolchain=llvm --sdk="$(brew --prefix)/opt/llvm/" --runtimes="c++_shared" --enable_tests=y -v --yes
2835
29-
- name: Compile
30-
env:
31-
CC: ${{ matrix.compiler.cc }}
32-
CXX: ${{ matrix.compiler.cxx }}
36+
- name: Build
3337
run: |
34-
xmake f --enable_tests=y --yes
35-
xmake build -vD
38+
xmake build -v
3639
3740
- name: Run tests
3841
run: |

modules/Network/Socket.mpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module;
55
#if defined(OS_WINDOWS)
66
# include <winsock2.h>
77
# include <ws2tcpip.h> // for socklen_t
8-
#elif defined(OS_LINUX)
8+
#elif defined(OS_LINUX) or defined(OS_MACOS)
99
# include <sys/socket.h>
1010
# include <netinet/in.h>
1111
# include <arpa/inet.h>
@@ -79,7 +79,7 @@ export namespace CppUtils::Network
7979
{
8080
IPV4 = AF_INET,
8181
IPV6 = AF_INET6,
82-
#if defined(OS_LINUX)
82+
#if defined(OS_LINUX) or defined(OS_MACOS)
8383
Local = AF_UNIX
8484
#endif
8585
};

modules/Terminal/Cursor.mpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export namespace CppUtils::Terminal
2121
consoleScreenBufferInfo.srWindow.Left,
2222
consoleScreenBufferInfo.srWindow.Top};
2323
}
24-
#elif defined(OS_MAC) or defined(OS_LINUX)
24+
#elif defined(OS_LINUX) or defined(OS_MACOS)
2525
[[nodiscard]] inline auto getCursorPosition() -> std::expected<Container::Size2, std::string_view>
2626
{
2727
using namespace std::literals;
@@ -43,7 +43,7 @@ export namespace CppUtils::Terminal
4343
{
4444
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), COORD{static_cast<SHORT>(position.x()), static_cast<SHORT>(position.y())});
4545
}
46-
#elif defined(OS_MAC) or defined(OS_LINUX)
46+
#elif defined(OS_LINUX) or defined(OS_MACOS)
4747
inline auto setCursorPosition([[maybe_unused]] Container::Size2 position) -> void
4848
{
4949
std::print("\x1b[{};{}H", position.y() + 1, position.x() + 1);

modules/Terminal/RawTerminal.mpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module;
22

33
#include <CppUtils/System/Windows.hpp>
44

5-
#if defined(OS_MAC) or defined(OS_LINUX)
5+
#if defined(OS_LINUX) or defined(OS_MACOS)
66
# include <unistd.h>
77
# include <termios.h>
88
#endif
@@ -13,7 +13,7 @@ import std;
1313

1414
export namespace CppUtils::Terminal
1515
{
16-
#if defined(OS_MAC) or defined(OS_LINUX)
16+
#if defined(OS_LINUX) or defined(OS_MACOS)
1717
class RawTerminal final
1818
{
1919
public:

modules/Terminal/Size.mpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module;
22

33
#include <CppUtils/System/Windows.hpp>
44

5-
#if defined(OS_MAC) or defined(OS_LINUX)
5+
#if defined(OS_LINUX) or defined(OS_MACOS)
66
# include <sys/ioctl.h>
77
# include <unistd.h>
88
#endif
@@ -18,19 +18,19 @@ export namespace CppUtils::Terminal
1818
[[nodiscard]] inline auto getTerminalSize() -> Container::Size2
1919
{
2020
auto consoleScreenBufferInfo = CONSOLE_SCREEN_BUFFER_INFO{};
21-
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &consoleScreenBufferInfo);
21+
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), std::addressof(consoleScreenBufferInfo));
2222
return Container::Size2{
2323
static_cast<std::size_t>(consoleScreenBufferInfo.srWindow.Right - consoleScreenBufferInfo.srWindow.Left + 1),
2424
static_cast<std::size_t>(consoleScreenBufferInfo.srWindow.Bottom - consoleScreenBufferInfo.srWindow.Top + 1)};
2525
}
26-
#elif defined(OS_MAC) or defined(OS_LINUX)
26+
#elif defined(OS_LINUX) or defined(OS_MACOS)
2727
[[nodiscard]] inline auto getTerminalSize() -> Container::Size2
2828
{
2929
auto windowsSize = winsize{};
30-
ioctl(STDOUT_FILENO, TIOCGWINSZ, &windowsSize);
30+
ioctl(STDOUT_FILENO, TIOCGWINSZ, std::addressof(windowsSize));
3131
return Container::Size2{
32-
windowsSize.ws_col,
33-
windowsSize.ws_row};
32+
static_cast<std::size_t>(windowsSize.ws_col),
33+
static_cast<std::size_t>(windowsSize.ws_row)};
3434
}
3535
#endif
3636
}

modules/Terminal/Title.mpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export namespace CppUtils::Terminal
2121
title.resize(size);
2222
::GetConsoleTitleW(std::data(title), size);
2323
return title;
24-
#elif defined(OS_MAC) or defined(OS_LINUX)
24+
#elif defined(OS_LINUX) or defined(OS_MACOS)
2525
/*
2626
using namespace std::literals;
2727

@@ -41,7 +41,7 @@ export namespace CppUtils::Terminal
4141
{
4242
#if defined(OS_WINDOWS)
4343
::SetConsoleTitleW(std::data(title));
44-
#elif defined(OS_MAC) or defined(OS_LINUX)
44+
#elif defined(OS_LINUX) or defined(OS_MACOS)
4545
std::print("\x1B]0;{}\a", title);
4646
std::fflush(stdout);
4747
#endif

0 commit comments

Comments
 (0)