summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Vandaƫle <joshua@vandaele.software>2026-01-06 21:20:54 +0100
committerJoshua Vandaƫle <joshua@vandaele.software>2026-01-06 21:46:33 +0100
commit2005b0365e4fbde37ccc906a79e32673d42fad47 (patch)
treede16abf6ef8d47122116f2b322dc2e66028b8788
parentfb2a46c4cfa2687cd0191c00efaa4ce9431ca639 (diff)
cpp-ipc: Fix builds on non-FreeBSD BSDs
cpp-ipc is explicitely only available on Windows, Linux, QNX, and FreeBSD. Trying to build dolphin on any another BSD such as OpenBSD or Haiku currently leads to failure because of this.
-rw-r--r--CMakeLists.txt4
-rw-r--r--Source/Core/Core/CMakeLists.txt2
-rw-r--r--Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h4
-rw-r--r--Source/Core/DolphinQt/Settings/GameCubePane.cpp2
-rw-r--r--Source/VSProps/Base.Dolphin.props1
5 files changed, 8 insertions, 5 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5e63c62c66..29ba31ce4a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -786,8 +786,10 @@ endif()
add_subdirectory(Externals/watcher)
-if(NOT ANDROID AND NOT APPLE)
+# Any other platform or BSD is currently unsupported by cpp-ipc
+if(WIN32 OR LINUX OR CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR CMAKE_SYSTEM_NAME STREQUAL "QNX")
add_subdirectory(Externals/cpp-ipc)
+ add_definitions(-DHAVE_CPPIPC)
endif()
########################################
diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt
index 66236573c1..85e446e2a0 100644
--- a/Source/Core/Core/CMakeLists.txt
+++ b/Source/Core/Core/CMakeLists.txt
@@ -799,7 +799,7 @@ if(UNIX)
)
endif()
-if(NOT ANDROID AND NOT APPLE)
+if(TARGET cpp-ipc::ipc)
target_sources(core PRIVATE HW/EXI/BBA/IPC.cpp)
target_link_libraries(core PRIVATE cpp-ipc::ipc)
endif()
diff --git a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h
index a6b0780886..cb6ac688bf 100644
--- a/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h
+++ b/Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h
@@ -15,7 +15,7 @@
#endif
#include <SFML/Network.hpp>
-#if !defined(__ANDROID__) && !defined(__APPLE__)
+#ifdef HAVE_CPPIPC
#include <libipc/ipc.h>
#endif
@@ -483,7 +483,7 @@ private:
public:
explicit IPCBBAInterface(CEXIETHERNET* const eth_ref) : NetworkInterface(eth_ref) {}
-#if !defined(__ANDROID__) && !defined(__APPLE__)
+#ifdef HAVE_CPPIPC
bool Activate() override;
void Deactivate() override;
diff --git a/Source/Core/DolphinQt/Settings/GameCubePane.cpp b/Source/Core/DolphinQt/Settings/GameCubePane.cpp
index fd27612dc5..db7fdf5919 100644
--- a/Source/Core/DolphinQt/Settings/GameCubePane.cpp
+++ b/Source/Core/DolphinQt/Settings/GameCubePane.cpp
@@ -143,7 +143,7 @@ void GameCubePane::CreateWidgets()
EXIDeviceType::EthernetXLink,
EXIDeviceType::EthernetTapServer,
EXIDeviceType::EthernetBuiltIn,
-#if !defined(__APPLE__)
+#ifdef HAVE_CPPIPC
EXIDeviceType::EthernetIPC,
#endif
EXIDeviceType::ModemTapServer,
diff --git a/Source/VSProps/Base.Dolphin.props b/Source/VSProps/Base.Dolphin.props
index 9d1a2f4ce9..5b4e1b2fa2 100644
--- a/Source/VSProps/Base.Dolphin.props
+++ b/Source/VSProps/Base.Dolphin.props
@@ -50,6 +50,7 @@
<PreprocessorDefinitions>RC_CLIENT_SUPPORTS_HASH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>RC_CLIENT_SUPPORTS_RAINTEGRATION;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions Condition="'$(EnableCubeb)'!='false'">HAVE_CUBEB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessorDefinitions>HAVE_CPPIPC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<!-- Warnings one may want to ignore when using Level4.
4201 nonstandard extension used : nameless struct/union