Core: Add header for PCSX2-specific preprocessor definitions

This commit is contained in:
TellowKrinkle 2021-08-30 23:49:47 -05:00 committed by tellowkrinkle
parent e37fbfddc3
commit d2c1a4a7fb
6 changed files with 43 additions and 21 deletions

View File

@ -214,6 +214,7 @@ set(pcsx2Headers
MemoryTypes.h
Patch.h
PathDefs.h
PCSX2Base.h
PrecompiledHeader.h
R3000A.h
R5900Exceptions.h

View File

@ -104,23 +104,3 @@ extern void vmfree(void* ptr, size_t size);
#endif
#define ASSERT assert
// sse
#if defined(__GNUC__)
// Convert gcc see define into GS (windows) define
#if defined(__AVX2__)
#define _M_SSE 0x501
#elif defined(__AVX__)
#define _M_SSE 0x500
#elif defined(__SSE4_1__)
#define _M_SSE 0x401
#else
#error PCSX2 requires compiling for at least SSE 4.1
#endif
#elif _M_SSE < 0x401
#error PCSX2 requires compiling for at least SSE 4.1
#endif

37
pcsx2/PCSX2Base.h Normal file
View File

@ -0,0 +1,37 @@
/* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2021 PCSX2 Dev Team
*
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with PCSX2.
* If not, see <http://www.gnu.org/licenses/>.
*/
/// Base defines and typedefs that are needed by all code in PCSX2
/// Prefer this over including Pcsx2Defs.h to make sure everyone gets all the defines, as missing defines fail silently
#pragma once
#include "common/Pcsx2Defs.h"
#include "GS/config.h"
#if defined(__GNUC__)
// Convert gcc see define into GS (windows) define
#if defined(__AVX2__)
#define _M_SSE 0x501
#elif defined(__AVX__)
#define _M_SSE 0x500
#elif defined(__SSE4_1__)
#define _M_SSE 0x401
#else
#error PCSX2 requires compiling for at least SSE 4.1
#endif
#elif _M_SSE < 0x401
#error PCSX2 requires compiling for at least SSE 4.1
#endif

View File

@ -67,7 +67,7 @@
// unchanged for long periods of time, or happen to be used by almost everything, so they
// need a full recompile anyway, when modified (etc)
#include "common/Pcsx2Defs.h"
#include "PCSX2Base.h"
#include "gui/i18n.h"
#include "common/wxBaseTools.h"

View File

@ -881,6 +881,7 @@
<ClInclude Include="IPU\IPUdma.h" />
<ClInclude Include="Mdec.h" />
<ClInclude Include="Patch.h" />
<ClInclude Include="PCSX2Base.h" />
<ClInclude Include="PrecompiledHeader.h" />
<ClInclude Include="sio_internal.h" />
<ClInclude Include="ps2\pgif.h" />

View File

@ -1641,6 +1641,9 @@
<ClInclude Include="Patch.h">
<Filter>Misc</Filter>
</ClInclude>
<ClInclude Include="PCSX2Base.h">
<Filter>Misc</Filter>
</ClInclude>
<ClInclude Include="PrecompiledHeader.h">
<Filter>Misc</Filter>
</ClInclude>