feat(app): add windows app

This commit is contained in:
fallenoak 2023-01-03 00:45:25 -06:00 committed by GitHub
parent 6bebfe5e2f
commit 655d795a9d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 176 additions and 66 deletions

View File

@ -25,6 +25,13 @@ jobs:
cc: clang cc: clang
cxx: clang++ cxx: clang++
- name: Windows Latest (MSVC)
os: windows-latest
build_type: Release
test_path: Release/WhoaTest
cc: cl
cxx: cl
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:

View File

@ -28,6 +28,13 @@ jobs:
cc: clang cc: clang
cxx: clang++ cxx: clang++
- name: Windows Latest (MSVC)
os: windows-latest
build_type: Release
test_path: Release/WhoaTest
cc: cl
cxx: cl
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
with: with:

View File

@ -26,18 +26,34 @@ set(CMAKE_CXX_STANDARD 11)
set(CMAKE_BUILD_TYPE Debug) set(CMAKE_BUILD_TYPE Debug)
include(lib/system/cmake/system.cmake)
# Some templates abuse offsetof # Some templates abuse offsetof
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof") if(WHOA_SYSTEM_LINUX OR WHOA_SYSTEM_MAC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-invalid-offsetof")
endif()
# OS defines # OS defines
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") if(WHOA_SYSTEM_WIN)
# Avoid win32 header hell
add_compile_definitions(
NOMINMAX
WIN32_LEAN_AND_MEAN
)
# Lua uses various "unsafe" C functions
add_definitions(
-D_CRT_SECURE_NO_WARNINGS
)
endif()
if(WHOA_SYSTEM_MAC)
# Suppress OpenGL deprecation warnings
add_definitions( add_definitions(
-DGL_SILENCE_DEPRECATION -DGL_SILENCE_DEPRECATION
) )
endif() endif()
include(lib/system/cmake/system.cmake)
# Threads # Threads
if(WHOA_SYSTEM_LINUX OR WHOA_SYSTEM_MAC) if(WHOA_SYSTEM_LINUX OR WHOA_SYSTEM_MAC)
set(CMAKE_THREAD_PREFER_PTHREAD TRUE) set(CMAKE_THREAD_PREFER_PTHREAD TRUE)

View File

@ -1,3 +1,18 @@
if(WHOA_SYSTEM_WIN)
file(GLOB PRIVATE_SOURCES "win/*.cpp")
add_executable(Whoa ${PRIVATE_SOURCES})
target_link_libraries(Whoa
PRIVATE
client
event
gx
net
util
)
endif()
if(WHOA_SYSTEM_MAC) if(WHOA_SYSTEM_MAC)
file(GLOB PRIVATE_SOURCES "mac/*.cpp" "mac/*.mm") file(GLOB PRIVATE_SOURCES "mac/*.cpp" "mac/*.mm")
@ -42,7 +57,4 @@ target_include_directories(Whoa
${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src
) )
# Windows executables yet to be done install(TARGETS Whoa DESTINATION "bin")
if(WHOA_SYSTEM_MAC OR WHOA_SYSTEM_LINUX)
install(TARGETS Whoa DESTINATION "bin")
endif()

11
src/app/win/Whoa.cpp Normal file
View File

@ -0,0 +1,11 @@
#include "client/Client.hpp"
int main(int argc, char* argv[]) {
// TODO
CommonMain();
// TODO
return 0;
}

View File

@ -9,6 +9,10 @@
#include <tempest/Rect.hpp> #include <tempest/Rect.hpp>
#include <tempest/Vector.hpp> #include <tempest/Vector.hpp>
#if defined(WHOA_SYSTEM_WIN)
#include <windows.h>
#endif
#if defined(WHOA_SYSTEM_MAC) #if defined(WHOA_SYSTEM_MAC)
#include "app/mac/MacClient.h" #include "app/mac/MacClient.h"
#endif #endif
@ -327,7 +331,7 @@ void ConvertPosition(int32_t clientx, int32_t clienty, float* x, float* y) {
} }
} }
tagRECT windowDim; RECT windowDim;
OsGetDefaultWindowRect(&windowDim); OsGetDefaultWindowRect(&windowDim);
*x = static_cast<float>(clientx) / static_cast<float>(windowDim.right - windowDim.left); *x = static_cast<float>(clientx) / static_cast<float>(windowDim.right - windowDim.left);
@ -565,6 +569,7 @@ const char* KeyCodeToString(KEY key) {
int32_t OsInputGet(OSINPUT* id, int32_t* param0, int32_t* param1, int32_t* param2, int32_t* param3) { int32_t OsInputGet(OSINPUT* id, int32_t* param0, int32_t* param1, int32_t* param2, int32_t* param3) {
#if defined(WHOA_SYSTEM_WIN) #if defined(WHOA_SYSTEM_WIN)
// TODO // TODO
return 0;
#endif #endif
#if defined(WHOA_SYSTEM_MAC) #if defined(WHOA_SYSTEM_MAC)
@ -592,9 +597,9 @@ int32_t OsInputGet(OSINPUT* id, int32_t* param0, int32_t* param1, int32_t* param
void OsInputInitialize() { void OsInputInitialize() {
#if defined(WHOA_SYSTEM_WIN) #if defined(WHOA_SYSTEM_WIN)
Input::s_numlockState = GetAsyncKeyState(144); Input::s_numlockState = GetAsyncKeyState(144);
PVOID pvParam = 10; int32_t mouseSpeed = 10;
SystemParametersInfoA(SPI_GETMOUSESPEED, 0, &pvParam, 0); SystemParametersInfoA(SPI_GETMOUSESPEED, 0, &mouseSpeed, 0);
Input::s_savedMouseSpeed = pvParam; Input::s_savedMouseSpeed = mouseSpeed;
#endif #endif
#if defined(WHOA_SYSTEM_MAC) #if defined(WHOA_SYSTEM_MAC)

View File

@ -134,7 +134,7 @@ void IEvtSchedulerProcess() {
#if defined(WHOA_SYSTEM_WIN) #if defined(WHOA_SYSTEM_WIN)
Event::s_startEvent.Set(); Event::s_startEvent.Set();
SchedulerThreadProc(1); SchedulerThreadProc(reinterpret_cast<void*>(1));
Event::s_mainThread = 0; Event::s_mainThread = 0;
#endif #endif

View File

@ -70,18 +70,28 @@ uint32_t CGxDevice::s_texFormatBytesPerBlock[] = {
4 // GxTex_D24X8 4 // GxTex_D24X8
}; };
CGxDevice* CGxDevice::NewGLL() { CGxDevice* CGxDevice::NewD3d() {
#if defined(WHOA_SYSTEM_MAC) // TODO
void* m = SMemAlloc(sizeof(CGxDeviceGLL), __FILE__, __LINE__, 0); return nullptr;
if (m) {
return new (m) CGxDeviceGLL();
} else {
return nullptr;
}
#endif
} }
CGxDevice* CGxDevice::NewD3d9Ex() {
// TODO
return nullptr;
}
#if defined(WHOA_SYSTEM_MAC)
CGxDevice* CGxDevice::NewGLL() {
void* m = SMemAlloc(sizeof(CGxDeviceGLL), __FILE__, __LINE__, 0);
if (m) {
return new (m) CGxDeviceGLL();
} else {
return nullptr;
}
}
#endif
CGxDevice* CGxDevice::NewOpenGl() { CGxDevice* CGxDevice::NewOpenGl() {
// TODO // TODO
// void* m = SMemAlloc(sizeof(CGxDeviceOpenGl), __FILE__, __LINE__, 0); // void* m = SMemAlloc(sizeof(CGxDeviceOpenGl), __FILE__, __LINE__, 0);

View File

@ -46,8 +46,12 @@ class CGxDevice {
static uint32_t s_texFormatBytesPerBlock[]; static uint32_t s_texFormatBytesPerBlock[];
// Static functions // Static functions
static CGxDevice* NewGLL(void); static CGxDevice* NewD3d();
static CGxDevice* NewOpenGl(void); static CGxDevice* NewD3d9Ex();
#if defined(WHOA_SYSTEM_MAC)
static CGxDevice* NewGLL();
#endif
static CGxDevice* NewOpenGl();
// Member variables // Member variables
TSGrowableArray<CGxPushedRenderState> m_pushedStates; TSGrowableArray<CGxPushedRenderState> m_pushedStates;

View File

@ -5,7 +5,7 @@ bool s_forceOnscreen;
Rect s_savedWindowRect; Rect s_savedWindowRect;
Rect s_savedWindowZoomedRect; Rect s_savedWindowZoomedRect;
int32_t OsGetDefaultWindowRect(tagRECT* rect) { int32_t OsGetDefaultWindowRect(RECT* rect) {
auto window = g_theGxDevicePtr->DeviceDefWindow(); auto window = g_theGxDevicePtr->DeviceDefWindow();
rect->left = window.minX; rect->left = window.minX;

View File

@ -3,6 +3,10 @@
#include <cstdint> #include <cstdint>
#if defined(WHOA_SYSTEM_WIN)
#include <windows.h>
#endif
#if defined(WHOA_SYSTEM_MAC) #if defined(WHOA_SYSTEM_MAC)
#include <ApplicationServices/ApplicationServices.h> #include <ApplicationServices/ApplicationServices.h>
#endif #endif
@ -16,14 +20,16 @@ struct Rect {
}; };
#endif #endif
struct tagRECT { #if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
typedef struct tagRECT {
int32_t left; int32_t left;
int32_t top; int32_t top;
int32_t right; int32_t right;
int32_t bottom; int32_t bottom;
}; } RECT;
#endif
int32_t OsGetDefaultWindowRect(tagRECT* rect); int32_t OsGetDefaultWindowRect(RECT* rect);
Rect* GetSavedWindowBounds(); Rect* GetSavedWindowBounds();

View File

@ -602,6 +602,7 @@ void CGxString::SetColor(const CImVector& color) {
int32_t CGxString::SetGradient(int32_t startCharacter, int32_t length) { int32_t CGxString::SetGradient(int32_t startCharacter, int32_t length) {
// TODO // TODO
return 0;
} }
void CGxString::SetStringPosition(const C3Vector& position) { void CGxString::SetStringPosition(const C3Vector& position) {

View File

@ -17,3 +17,11 @@ target_link_libraries(net
common common
storm storm
) )
if(WHOA_SYSTEM_WIN)
target_link_libraries(net
PUBLIC
ws2_32
wsock32
)
endif()

View File

@ -21,6 +21,7 @@
#if defined(WHOA_SYSTEM_WIN) #if defined(WHOA_SYSTEM_WIN)
#include <winsock2.h> #include <winsock2.h>
#include <ws2tcpip.h>
#endif #endif
uint64_t WowConnection::s_countTotalBytes; uint64_t WowConnection::s_countTotalBytes;
@ -108,7 +109,11 @@ void WowConnection::CheckAccept() {
getpeername(sock, reinterpret_cast<sockaddr*>(&verifyAddr), &verifyAddrLen); getpeername(sock, reinterpret_cast<sockaddr*>(&verifyAddr), &verifyAddrLen);
if (!WowConnection::s_verifyAddr(&verifyAddr)) { if (!WowConnection::s_verifyAddr(&verifyAddr)) {
#if defined(WHOA_SYSTEM_WIN)
closesocket(sock);
#elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
close(sock); close(sock);
#endif
continue; continue;
} }
} }
@ -116,7 +121,12 @@ void WowConnection::CheckAccept() {
// TODO // TODO
// RegisterSocket(sock); // RegisterSocket(sock);
#if defined(WHOA_SYSTEM_WIN)
u_long mode = 1;
ioctlsocket(sock, FIONBIO, &mode);
#elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
fcntl(sock, F_SETFL, O_NONBLOCK); fcntl(sock, F_SETFL, O_NONBLOCK);
#endif
auto connMem = SMemAlloc(sizeof(WowConnection), __FILE__, __LINE__, 0x0); auto connMem = SMemAlloc(sizeof(WowConnection), __FILE__, __LINE__, 0x0);
auto conn = new (connMem) WowConnection(sock, reinterpret_cast<sockaddr_in*>(&addr), this->m_response); auto conn = new (connMem) WowConnection(sock, reinterpret_cast<sockaddr_in*>(&addr), this->m_response);
@ -147,7 +157,7 @@ void WowConnection::CheckAccept() {
void WowConnection::CheckConnect() { void WowConnection::CheckConnect() {
int32_t err; int32_t err;
socklen_t errLen = sizeof(err); socklen_t errLen = sizeof(err);
if (getsockopt(this->m_sock, SOL_SOCKET, SO_ERROR, &err, &errLen)) { if (getsockopt(this->m_sock, SOL_SOCKET, SO_ERROR, reinterpret_cast<char*>(&err), &errLen)) {
return; return;
} }
@ -193,9 +203,7 @@ void WowConnection::CheckConnect() {
void WowConnection::CloseSocket(int32_t sock) { void WowConnection::CloseSocket(int32_t sock) {
#if defined(WHOA_SYSTEM_WIN) #if defined(WHOA_SYSTEM_WIN)
closesocket(sock); closesocket(sock);
#endif #elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
close(sock); close(sock);
#endif #endif
@ -334,11 +342,15 @@ void WowConnection::DoReads() {
void WowConnection::DoStreamReads() { void WowConnection::DoStreamReads() {
uint32_t startTime = OsGetAsyncTimeMsPrecise(); uint32_t startTime = OsGetAsyncTimeMsPrecise();
uint8_t buf[4096]; uint8_t buf[4096];
uint32_t bytesRead; #if defined(WHOA_SYSTEM_WIN)
int32_t bytesRead;
#elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
ssize_t bytesRead;
#endif
while (1) { while (1) {
while (1) { while (1) {
bytesRead = recv(this->m_sock, buf, sizeof(buf), 0); bytesRead = recv(this->m_sock, reinterpret_cast<char*>(buf), sizeof(buf), 0);
if (bytesRead >= 0) { if (bytesRead >= 0) {
break; break;
@ -376,7 +388,7 @@ void WowConnection::DoStreamReads() {
bool shouldDisconnect = false; bool shouldDisconnect = false;
#if defined(WHOA_SYSTEM_WIN) #if defined(WHOA_SYSTEM_WIN)
shouldDisconnect = bytesRead >= 0 || WSAGetLastError() != WSAEAGAIN; shouldDisconnect = bytesRead >= 0 || WSAGetLastError() != WSAEWOULDBLOCK;
#elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX) #elif defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
shouldDisconnect = bytesRead >= 0 || errno != EAGAIN; shouldDisconnect = bytesRead >= 0 || errno != EAGAIN;
#endif #endif

View File

@ -10,8 +10,10 @@
#include <atomic> #include <atomic>
#endif #endif
bool Blizzard::System_Thread::s_initialized;
Blizzard::System_Debug::AssertCallback Blizzard::System_Debug::s_assertCallback = nullptr; Blizzard::System_Debug::AssertCallback Blizzard::System_Debug::s_assertCallback = nullptr;
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
bool Blizzard::System_Thread::s_initialized;
Blizzard::Lock::DoOnceData Blizzard::System_Lock::s_initMutexAttrOnce; Blizzard::Lock::DoOnceData Blizzard::System_Lock::s_initMutexAttrOnce;
Blizzard::System_Lock::MutexAttr Blizzard::System_Lock::s_mutexattr; Blizzard::System_Lock::MutexAttr Blizzard::System_Lock::s_mutexattr;
Blizzard::Thread::ThreadRecord* Blizzard::System_Thread::s_mainThread; Blizzard::Thread::ThreadRecord* Blizzard::System_Thread::s_mainThread;
@ -22,6 +24,7 @@ Blizzard::Thread::TLSSlot Blizzard::System_Thread::s_threadRecordTLS;
std::map<Blizzard::Thread::ThreadRecord*, Blizzard::Thread::ThreadRecord*>* Blizzard::System_Thread::s_threadRegistry; std::map<Blizzard::Thread::ThreadRecord*, Blizzard::Thread::ThreadRecord*>* Blizzard::System_Thread::s_threadRegistry;
Blizzard::Thread::TLSSlot* Blizzard::System_Thread::s_slotList[128]; Blizzard::Thread::TLSSlot* Blizzard::System_Thread::s_slotList[128];
int32_t Blizzard::System_Thread::s_slotListUsed; int32_t Blizzard::System_Thread::s_slotListUsed;
#endif
void Blizzard::Debug::Assert(const char* a1, const char* a2, uint32_t a3) { void Blizzard::Debug::Assert(const char* a1, const char* a2, uint32_t a3) {
if (System_Debug::s_assertCallback) { if (System_Debug::s_assertCallback) {
@ -103,14 +106,17 @@ void Blizzard::String::MemFill(void* a1, uint32_t a2, unsigned char a3) {
} }
void Blizzard::Process::Sleep(uint32_t duration) { void Blizzard::Process::Sleep(uint32_t duration) {
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
struct timespec request; struct timespec request;
request.tv_sec = 0; request.tv_sec = 0;
request.tv_nsec = duration * 1000000; request.tv_nsec = duration * 1000000;
nanosleep(&request, nullptr); nanosleep(&request, nullptr);
#endif
} }
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
void Blizzard::Lock::DoOnce(DoOnceData& a1, void (*a2)(void*), void* a3) { void Blizzard::Lock::DoOnce(DoOnceData& a1, void (*a2)(void*), void* a3) {
if (!a1.done) { if (!a1.done) {
if (Blizzard::Lock::Atomic::Increment(&a1.atomic) == 1) { if (Blizzard::Lock::Atomic::Increment(&a1.atomic) == 1) {
@ -325,3 +331,4 @@ Blizzard::Thread::ThreadRecord* Blizzard::System_Thread::NewThread(uint32_t (*a1
bool Blizzard::System_Thread::TLSSlotIsAllocated(const Thread::TLSSlot* slot) { bool Blizzard::System_Thread::TLSSlotIsAllocated(const Thread::TLSSlot* slot) {
return slot->allocated; return slot->allocated;
} }
#endif

View File

@ -34,6 +34,21 @@ namespace Blizzard {
void Sleep(uint32_t); void Sleep(uint32_t);
} }
namespace System_Debug {
// Types
typedef void (*AssertCallback)(const char*, const char*, const char*, uint32_t);
// Variables
extern AssertCallback s_assertCallback;
}
namespace Debug {
// Functions
void Assert(const char*, const char*, uint32_t);
void SetAssertHandler(Blizzard::System_Debug::AssertCallback);
}
#if defined(WHOA_SYSTEM_MAC) || defined(WHOA_SYSTEM_LINUX)
namespace Lock { namespace Lock {
// Types // Types
typedef pthread_mutex_t Mutex; typedef pthread_mutex_t Mutex;
@ -54,20 +69,6 @@ namespace Blizzard {
} }
} }
namespace System_Debug {
// Types
typedef void (*AssertCallback)(const char*, const char*, const char*, uint32_t);
// Variables
extern AssertCallback s_assertCallback;
}
namespace Debug {
// Functions
void Assert(const char*, const char*, uint32_t);
void SetAssertHandler(Blizzard::System_Debug::AssertCallback);
}
namespace System_Lock { namespace System_Lock {
// Types // Types
typedef pthread_mutexattr_t MutexAttr; typedef pthread_mutexattr_t MutexAttr;
@ -127,6 +128,7 @@ namespace Blizzard {
Thread::ThreadRecord* NewThread(uint32_t (*)(void*), void*, const char*); Thread::ThreadRecord* NewThread(uint32_t (*)(void*), void*, const char*);
bool TLSSlotIsAllocated(const Thread::TLSSlot*); bool TLSSlotIsAllocated(const Thread::TLSSlot*);
}; };
#endif
}; };
#endif #endif

View File

@ -2,6 +2,7 @@
#include <cstring> #include <cstring>
#include <limits> #include <limits>
#include <storm/Memory.hpp> #include <storm/Memory.hpp>
#include <storm/String.hpp>
// TODO Proper implementation // TODO Proper implementation
int32_t SFile::Close(SFile* file) { int32_t SFile::Close(SFile* file) {
@ -27,11 +28,11 @@ int32_t SFile::IsStreamingMode() {
// TODO Proper implementation // TODO Proper implementation
int32_t SFile::Load(SArchive* archive, const char* filename, void** buffer, size_t* bytes, size_t extraBytes, uint32_t flags, SOVERLAPPED* overlapped) { int32_t SFile::Load(SArchive* archive, const char* filename, void** buffer, size_t* bytes, size_t extraBytes, uint32_t flags, SOVERLAPPED* overlapped) {
size_t pathlen = strlen(filename); auto pathLen = SStrLen(filename);
char path[pathlen]; char path[STORM_MAX_PATH];
strcpy(path, filename); SStrCopy(path, filename, sizeof(path));
for (int32_t i = 0; i < pathlen; ++i) { for (int32_t i = 0; i < pathLen; ++i) {
if (path[i] == '\\') { if (path[i] == '\\') {
path[i] = '/'; path[i] = '/';
} }
@ -72,11 +73,11 @@ int32_t SFile::Open(const char* filename, SFile** file) {
// TODO Proper implementation // TODO Proper implementation
int32_t SFile::OpenEx(SArchive* archive, const char* filename, uint32_t flags, SFile** file) { int32_t SFile::OpenEx(SArchive* archive, const char* filename, uint32_t flags, SFile** file) {
size_t pathlen = strlen(filename); auto pathLen = SStrLen(filename);
char path[pathlen]; char path[STORM_MAX_PATH];
strcpy(path, filename); SStrCopy(path, filename, sizeof(path));
for (int32_t i = 0; i < pathlen; ++i) { for (int32_t i = 0; i < pathLen; ++i) {
if (path[i] == '\\') { if (path[i] == '\\') {
path[i] = '/'; path[i] = '/';
} }

View File

@ -19,7 +19,7 @@ if(WHOA_SYSTEM_MAC)
) )
endif() endif()
if(WHOA_SYSTEM_LINUX) if(WHOA_SYSTEM_WIN OR WHOA_SYSTEM_LINUX)
file(GLOB PRIVATE_SOURCES "Test.cpp" "gx/*.cpp" "util/*.cpp") file(GLOB PRIVATE_SOURCES "Test.cpp" "gx/*.cpp" "util/*.cpp")
add_executable(WhoaTest ${PRIVATE_SOURCES}) add_executable(WhoaTest ${PRIVATE_SOURCES})
@ -39,7 +39,4 @@ target_include_directories(WhoaTest
${CMAKE_SOURCE_DIR}/vendor/catch2-2.13.10 ${CMAKE_SOURCE_DIR}/vendor/catch2-2.13.10
) )
# Windows executables yet to be done install(TARGETS WhoaTest DESTINATION "bin")
if(WHOA_SYSTEM_MAC OR WHOA_SYSTEM_LINUX)
install(TARGETS WhoaTest DESTINATION "bin")
endif()

View File

@ -1,4 +1,6 @@
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations -Wno-empty-body") if(WHOA_SYSTEM_MAC OR WHOA_SYSTEM_LINUX)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations -Wno-empty-body")
endif()
set(FREETYPE_SRC_DIR "./src") set(FREETYPE_SRC_DIR "./src")
set(FREETYPE_INCLUDE_DIR "./include") set(FREETYPE_INCLUDE_DIR "./include")

View File

@ -1,4 +1,6 @@
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations -Wno-empty-body") if(WHOA_SYSTEM_MAC OR WHOA_SYSTEM_LINUX)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-deprecated-declarations -Wno-empty-body")
endif()
set(LUA_SRC_DIR "./src") set(LUA_SRC_DIR "./src")