mirror of
https://github.com/thunderbrewhq/squall.git
synced 2025-12-12 02:22:30 +00:00
chore(build): migrate to system lib
This commit is contained in:
parent
aa616b75b5
commit
6ac442e473
16 changed files with 54 additions and 60 deletions
|
|
@ -5,7 +5,7 @@ file(GLOB STORM_SOURCES
|
|||
"thread/*.cpp"
|
||||
)
|
||||
|
||||
if(WHOA_PLATFORM_WIN)
|
||||
if(WHOA_SYSTEM_WIN)
|
||||
file(GLOB STORM_WIN_SOURCES
|
||||
"win/*.cpp"
|
||||
"thread/win/*.cpp"
|
||||
|
|
@ -13,7 +13,7 @@ if(WHOA_PLATFORM_WIN)
|
|||
list(APPEND STORM_SOURCES ${STORM_WIN_SOURCES})
|
||||
endif()
|
||||
|
||||
if(WHOA_PLATFORM_MAC)
|
||||
if(WHOA_SYSTEM_MAC)
|
||||
file(GLOB STORM_MAC_SOURCES
|
||||
"mac/*.cpp"
|
||||
"mac/*.mm"
|
||||
|
|
@ -31,3 +31,8 @@ target_include_directories(storm
|
|||
PUBLIC
|
||||
${PROJECT_SOURCE_DIR}
|
||||
)
|
||||
|
||||
target_link_libraries(storm
|
||||
PRIVATE
|
||||
system
|
||||
)
|
||||
|
|
|
|||
|
|
@ -3,11 +3,11 @@
|
|||
|
||||
#include <cstdint>
|
||||
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
#include <winerror.h>
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
#define ERROR_INVALID_PARAMETER 0x57
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -8,11 +8,11 @@
|
|||
#include <cstdio>
|
||||
#include <cstring>
|
||||
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
#include <string.h>
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
#include <strings.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -243,11 +243,11 @@ int32_t SStrCmp(const char* string1, const char* string2, size_t maxchars) {
|
|||
}
|
||||
|
||||
int32_t SStrCmpI(const char* string1, const char* string2, size_t maxchars) {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
return _strnicmp(string1, string2, maxchars);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
return strncasecmp(string1, string2, maxchars);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
#include "storm/thread/CSRWLock.hpp"
|
||||
|
||||
void CSRWLock::Enter(int32_t forwriting) {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
SRWLock::SURWLockEnter(&this->m_opaqueData, forwriting);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
if (forwriting) {
|
||||
pthread_rwlock_wrlock(&this->m_lock);
|
||||
} else {
|
||||
|
|
@ -15,11 +15,11 @@ void CSRWLock::Enter(int32_t forwriting) {
|
|||
}
|
||||
|
||||
void CSRWLock::Leave(int32_t fromwriting) {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
SRWLock::SURWLockLeave(&this->m_opaqueData, fromwriting);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
pthread_rwlock_unlock(&this->m_lock);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,22 +3,22 @@
|
|||
|
||||
#include <cstdint>
|
||||
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
#include "storm/thread/win/SRWLock.hpp"
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
|
||||
class CSRWLock {
|
||||
public:
|
||||
// Member variables
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
SRWLock::SURWLOCK m_opaqueData;
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
pthread_rwlock_t m_lock;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -1,21 +1,21 @@
|
|||
#include "storm/thread/SCritSect.hpp"
|
||||
|
||||
void SCritSect::Enter() {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
EnterCriticalSection(&this->m_opaqueData);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
pthread_mutex_lock(&this->m_mutex);
|
||||
#endif
|
||||
}
|
||||
|
||||
void SCritSect::Leave() {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
LeaveCriticalSection(&this->m_opaqueData);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
pthread_mutex_unlock(&this->m_mutex);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
#ifndef STORM_THREAD_S_CRIT_SECT_HPP
|
||||
#define STORM_THREAD_S_CRIT_SECT_HPP
|
||||
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
|
||||
class SCritSect {
|
||||
public:
|
||||
// Member variables
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
CRITICAL_SECTION m_opaqueData;
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
pthread_mutex_t m_mutex;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
SEvent::SEvent(int32_t manualReset, int32_t initialValue)
|
||||
: SSyncObject() {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
this->m_opaqueData = CreateEventA(nullptr, manualReset, initialValue, nullptr);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
this->m_int0 = 2 - (manualReset >= 1);
|
||||
this->m_value = initialValue;
|
||||
|
||||
|
|
@ -15,11 +15,11 @@ SEvent::SEvent(int32_t manualReset, int32_t initialValue)
|
|||
}
|
||||
|
||||
int32_t SEvent::Reset() {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
return ResetEvent(this->m_opaqueData);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
pthread_mutex_lock(&this->m_mutex);
|
||||
this->m_value = 0;
|
||||
pthread_mutex_unlock(&this->m_mutex);
|
||||
|
|
@ -29,11 +29,11 @@ int32_t SEvent::Reset() {
|
|||
}
|
||||
|
||||
int32_t SEvent::Set() {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
return SetEvent(this->m_opaqueData);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
pthread_mutex_lock(&this->m_mutex);
|
||||
|
||||
this->m_value = 1;
|
||||
|
|
|
|||
|
|
@ -1,23 +1,23 @@
|
|||
#include "storm/thread/SSyncObject.hpp"
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
#include <cerrno>
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
SSyncObject::SSyncObject() {
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
pthread_mutex_init(&this->m_mutex, 0);
|
||||
#endif
|
||||
}
|
||||
|
||||
uint32_t SSyncObject::Wait(uint32_t timeoutMs) {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
return WaitForSingleObject(this->m_opaqueData, timeoutMs);
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
if (this->m_int0 == 6) {
|
||||
// WAIT_FAILED
|
||||
return 0xFFFFFFFF;
|
||||
|
|
|
|||
|
|
@ -3,22 +3,22 @@
|
|||
|
||||
#include <cstdint>
|
||||
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
#include <pthread.h>
|
||||
#endif
|
||||
|
||||
class SSyncObject {
|
||||
public:
|
||||
// Member variables
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
HANDLE m_opaqueData = nullptr;
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
int32_t m_int0 = 6;
|
||||
int32_t m_value;
|
||||
pthread_cond_t m_cond;
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
#include "storm/Thread.hpp"
|
||||
|
||||
int32_t SThread::Create(uint32_t (*threadProc)(void*), void* param, SThread& thread, char* threadName, uint32_t a5) {
|
||||
#if defined(WHOA_PLATFORM_WIN)
|
||||
#if defined(WHOA_SYSTEM_WIN)
|
||||
// TODO implement
|
||||
return 0;
|
||||
#endif
|
||||
|
||||
#if defined(WHOA_PLATFORM_MAC) || defined(WHOA_PLATFORM_LINUX)
|
||||
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
|
||||
thread.m_int0 = 5;
|
||||
thread.m_value = 0;
|
||||
pthread_cond_init(&thread.m_cond, nullptr);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue