Github: add macOs action (#2)

* Create macos.yml

* Fix macos.yml

* remove anonymous namespace identifier

* forgot one ...

* fix macos build

* add tests for macos.yml

* macOS action trigger only on main or PR
This commit is contained in:
Simon Pribylski
2023-12-18 18:05:41 +01:00
committed by GitHub
parent bd46fc5894
commit b94b28d717
4 changed files with 51 additions and 15 deletions

32
.github/workflows/macos.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: macOS
on:
pull_request:
push:
branches: main
jobs:
build:
strategy:
fail-fast: false
runs-on: macos-latest
concurrency:
group: ${{ github.ref }}-${{ github.base_ref }}-${{ github.head_ref }}-macOS
cancel-in-progress: true
steps:
- uses: actions/checkout@v1
- uses: xmake-io/github-action-setup-xmake@v1
with:
xmake-version: branch@master
- name: Prepare XMake
run: xmake f -p macosx -y
- name: Build
run: xmake
- name: Test
run: xmake test

View File

@@ -18,7 +18,7 @@ TCPListener::~TCPListener() {
}
bool TCPListener::Listen(std::uint16_t port, int maxConnections) {
if ((m_Handle = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
if ((m_Handle = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
utils::LOGE("Failed to create server socket !");
return false;
}
@@ -26,19 +26,19 @@ bool TCPListener::Listen(std::uint16_t port, int maxConnections) {
struct sockaddr_in address;
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = ::htons(port);
address.sin_port = htons(port);
if (::bind(m_Handle, reinterpret_cast<sockaddr*>(&address), sizeof(address)) < 0)
if (bind(m_Handle, reinterpret_cast<sockaddr*>(&address), sizeof(address)) < 0)
return false;
if (::listen(m_Handle, maxConnections) < 0)
if (listen(m_Handle, maxConnections) < 0)
return false;
socklen_t len = sizeof(address);
if (::getsockname(m_Handle, reinterpret_cast<sockaddr*>(&address), &len) < 0)
if (getsockname(m_Handle, reinterpret_cast<sockaddr*>(&address), &len) < 0)
return false;
m_Port = ::ntohs(address.sin_port);
m_Port = ntohs(address.sin_port);
m_MaxConnections = maxConnections;
return true;
@@ -48,7 +48,7 @@ bool TCPListener::Accept(TCPSocket& newSocket) {
int addrlen = sizeof(newSocket.m_RemoteAddr);
newSocket.m_Handle =
::accept(m_Handle, reinterpret_cast<sockaddr*>(&newSocket.m_RemoteAddr), reinterpret_cast<socklen_t*>(&addrlen));
accept(m_Handle, reinterpret_cast<sockaddr*>(&newSocket.m_RemoteAddr), reinterpret_cast<socklen_t*>(&addrlen));
if (newSocket.m_Handle < 0)
return false;
@@ -60,11 +60,11 @@ bool TCPListener::Accept(TCPSocket& newSocket) {
void TCPListener::Destroy() {
if (m_Handle < 0)
::closesocket(m_Handle);
closesocket(m_Handle);
}
bool TCPListener::Close() {
if (::shutdown(m_Handle, SD_BOTH) == 0)
if (shutdown(m_Handle, SD_BOTH) == 0)
return true;
return false;
}
@@ -72,7 +72,7 @@ bool TCPListener::Close() {
bool TCPListener::SetBlocking(bool blocking) {
unsigned long mode = !blocking;
if (::ioctlsocket(m_Handle, FIONBIO, &mode) < 0)
if (ioctlsocket(m_Handle, FIONBIO, &mode) < 0)
return false;
return true;
}

View File

@@ -78,12 +78,12 @@ bool TCPSocket::Connect(const std::string& host, unsigned short port) {
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
if (::getaddrinfo(host.c_str(), std::to_string(static_cast<int>(port)).c_str(), &hints, &result) != 0) {
if (getaddrinfo(host.c_str(), std::to_string(static_cast<int>(port)).c_str(), &hints, &result) != 0) {
utils::LOGE("Failed to get address info !");
return false;
}
m_Handle = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
m_Handle = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (m_Handle < 0) {
utils::LOGE("Failed to create socket !");
return false;
@@ -92,7 +92,7 @@ bool TCPSocket::Connect(const std::string& host, unsigned short port) {
struct addrinfo* ptr = nullptr;
for (ptr = result; ptr != nullptr; ptr = ptr->ai_next) {
struct sockaddr* sockaddr = ptr->ai_addr;
if (::connect(m_Handle, sockaddr, sizeof(sockaddr_in)) != 0) {
if (connect(m_Handle, sockaddr, sizeof(sockaddr_in)) != 0) {
utils::LOGE("Failed to connect with this address !");
continue;
}
@@ -120,7 +120,7 @@ size_t TCPSocket::Send(const unsigned char* data, size_t size) {
std::size_t sent = 0;
while (sent < size) {
int cur = ::send(m_Handle, reinterpret_cast<const char*>(data + sent), size - sent, 0);
int cur = send(m_Handle, reinterpret_cast<const char*>(data + sent), size - sent, 0);
if (cur <= 0) {
Disconnect();
return 0;
@@ -135,7 +135,7 @@ std::size_t TCPSocket::Receive(DataBuffer& buffer, std::size_t amount) {
buffer.Resize(amount);
buffer.SetReadOffset(0);
int recvAmount = ::recv(m_Handle, reinterpret_cast<char*>(buffer.data()), amount, 0);
int recvAmount = recv(m_Handle, reinterpret_cast<char*>(buffer.data()), amount, 0);
if (recvAmount <= 0) {
#if defined(_WIN32) || defined(WIN32)
int err = WSAGetLastError();

View File

@@ -69,6 +69,10 @@ target("BlitzClient")
add_includedirs("libs", "libs/imgui")
add_files("libs/imgui/**.cpp")
if is_plat("macosx") then
add_frameworks("OpenGL")
end
-- Assets
set_rundir("$(projectdir)/assets")