summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Julian Sikorski <belegdol+github@gmail.com>2018-02-08 22:06:25 +0100
committer R. Belmont <rb6502@users.noreply.github.com>2018-02-08 16:06:25 -0500
commit8cc758355d51920adb7dc5b5899cf5fdca9fbd74 (patch)
treec806616593f525c9deba1a8cfd7b9bb1e708c035
parent556bdf249f76f415cc7fc8f2d72762688ef97440 (diff)
Enable use of system-wide asio, glm and rapidjson (#3172)
* Fixed building using system utf8proc * Fixed building using system portaudio * Allow using system-wide asio headers (1.11.0 or higher required). * Allow using system-wide glm headers * Allow using system-wide rapidjson headers
-rw-r--r--makefile15
-rw-r--r--scripts/extlib.lua18
-rw-r--r--scripts/src/devices.lua4
-rw-r--r--scripts/src/emu.lua3
-rw-r--r--scripts/src/mame/frontend.lua4
-rw-r--r--scripts/src/osd/modules.lua4
-rw-r--r--scripts/target/mame/arcade.lua5
-rw-r--r--scripts/target/mame/mess.lua2
-rw-r--r--scripts/target/mame/nl.lua1
-rw-r--r--src/emu/machine.cpp4
-rw-r--r--src/lib/util/client_https.hpp2
-rw-r--r--src/lib/util/client_wss.hpp2
-rw-r--r--src/lib/util/server_http_impl.hpp2
-rw-r--r--src/lib/util/server_https.hpp2
-rw-r--r--src/lib/util/server_ws_impl.hpp2
-rw-r--r--src/lib/util/server_wss.hpp2
-rw-r--r--src/mame/drivers/prodigy.cpp6
-rw-r--r--src/mame/includes/model1.h2
-rw-r--r--src/mame/video/model1.cpp2
-rw-r--r--src/osd/asio.h2
20 files changed, 62 insertions, 22 deletions
diff --git a/makefile b/makefile
index db997559068..c345aa30eaf 100644
--- a/makefile
+++ b/makefile
@@ -55,6 +55,7 @@
# OPT_FLAGS =
# LDOPTS =
+# USE_SYSTEM_LIB_ASIO = 1
# USE_SYSTEM_LIB_EXPAT = 1
# USE_SYSTEM_LIB_ZLIB = 1
# USE_SYSTEM_LIB_JPEG = 1
@@ -65,6 +66,8 @@
# USE_SYSTEM_LIB_PORTAUDIO = 1
# USE_BUNDLED_LIB_SDL2 = 1
# USE_SYSTEM_LIB_UTF8PROC = 1
+# USE_SYSTEM_LIB_GLM = 1
+# USE_SYSTEM_LIB_RAPIDJSON = 1
# MESA_INSTALL_ROOT = /opt/mesa
# SDL_INSTALL_ROOT = /opt/sdl2
@@ -429,6 +432,10 @@ endif
# which 3rdparty library to build;
# link against system (common) library otherwise
#-------------------------------------------------
+ifdef USE_SYSTEM_LIB_ASIO
+PARAMS += --with-system-asio='$(USE_SYSTEM_LIB_ASIO)'
+endif
+
ifdef USE_SYSTEM_LIB_EXPAT
PARAMS += --with-system-expat='$(USE_SYSTEM_LIB_EXPAT)'
endif
@@ -465,6 +472,14 @@ ifdef USE_SYSTEM_LIB_UTF8PROC
PARAMS += --with-system-utf8proc='$(USE_SYSTEM_LIB_UTF8PROC)'
endif
+ifdef USE_SYSTEM_LIB_GLM
+PARAMS += --with-system-glm='$(USE_SYSTEM_LIB_GLM)'
+endif
+
+ifdef USE_SYSTEM_LIB_RAPIDJSON
+PARAMS += --with-system-rapidjson='$(USE_SYSTEM_LIB_RAPIDJSON)'
+endif
+
# reverse logic for this one
ifdef USE_BUNDLED_LIB_SDL2
diff --git a/scripts/extlib.lua b/scripts/extlib.lua
index 674f1b1d881..ad97ac220b8 100644
--- a/scripts/extlib.lua
+++ b/scripts/extlib.lua
@@ -6,6 +6,7 @@ local extlibs = {
-- 3rdparty system 3rdparty
-- lib name: lib name, include dir
--
+ asio = { "asio", "3rdparty/asio/include" },
expat = { "expat", "3rdparty/expat/lib" },
zlib = { "z", "3rdparty/zlib" },
jpeg = { "jpeg", "3rdparty/libjpeg" },
@@ -15,10 +16,17 @@ local extlibs = {
portaudio = { "portaudio", "3rdparty/portaudio/include" },
lua = { "lua", "3rdparty/lua/src" },
utf8proc = { "utf8proc", "3rdparty/utf8proc" },
+ glm = { "glm", "3rdparty/glm" },
+ rapidjson = { "rapidjson", "3rdparty/rapidjson/include" },
}
-- system lib options
newoption {
+ trigger = 'with-system-asio',
+ description = 'Use system Asio library',
+}
+
+newoption {
trigger = 'with-system-expat',
description = 'Use system Expat library',
}
@@ -63,6 +71,16 @@ newoption {
description = "Use system utf8proc library",
}
+newoption {
+ trigger = "with-system-glm",
+ description = "Use system glm library",
+}
+
+newoption {
+ trigger = "with-system-rapidjson",
+ description = "Use system rapidjson library",
+}
+
-- build helpers
function ext_lib(lib)
local opt = _OPTIONS["with-system-" .. lib]
diff --git a/scripts/src/devices.lua b/scripts/src/devices.lua
index 89d88fd7274..79bcdec11d4 100644
--- a/scripts/src/devices.lua
+++ b/scripts/src/devices.lua
@@ -39,9 +39,9 @@ function devicesProject(_target, _subtarget)
MAME_DIR .. "3rdparty",
GEN_DIR .. "emu",
GEN_DIR .. "emu/layout",
+ ext_includedir("asio"),
ext_includedir("expat"),
ext_includedir("flac"),
- MAME_DIR .. "3rdparty/asio/include",
}
dofile(path.join("src", "cpu.lua"))
@@ -69,8 +69,8 @@ if #disasm_files > 0 then
MAME_DIR .. "src/lib",
MAME_DIR .. "src/lib/util",
MAME_DIR .. "3rdparty",
- MAME_DIR .. "3rdparty/asio/include",
GEN_DIR .. "emu",
+ ext_includedir("asio"),
ext_includedir("expat"),
}
diff --git a/scripts/src/emu.lua b/scripts/src/emu.lua
index b0188cde94d..3a135d39c44 100644
--- a/scripts/src/emu.lua
+++ b/scripts/src/emu.lua
@@ -29,11 +29,12 @@ includedirs {
}
includedirs {
+ ext_includedir("asio"),
ext_includedir("expat"),
ext_includedir("zlib"),
ext_includedir("flac"),
ext_includedir("jpeg"),
- MAME_DIR .. "3rdparty/asio/include",
+ ext_includedir("rapidjson"),
}
files {
diff --git a/scripts/src/mame/frontend.lua b/scripts/src/mame/frontend.lua
index 452c812dd03..60e955f8773 100644
--- a/scripts/src/mame/frontend.lua
+++ b/scripts/src/mame/frontend.lua
@@ -29,18 +29,18 @@ includedirs {
MAME_DIR .. "src/devices", -- till deps are fixed
MAME_DIR .. "src/lib",
MAME_DIR .. "src/lib/util",
- MAME_DIR .. "3rdparty/rapidjson/include",
MAME_DIR .. "3rdparty",
GEN_DIR .. "emu",
GEN_DIR .. "emu/layout",
}
includedirs {
+ ext_includedir("asio"),
ext_includedir("expat"),
ext_includedir("lua"),
ext_includedir("zlib"),
ext_includedir("flac"),
- MAME_DIR .. "3rdparty/asio/include",
+ ext_includedir("rapidjson")
}
configuration { }
diff --git a/scripts/src/osd/modules.lua b/scripts/src/osd/modules.lua
index 06392a6c34e..ddd2e4b06f2 100644
--- a/scripts/src/osd/modules.lua
+++ b/scripts/src/osd/modules.lua
@@ -116,7 +116,7 @@ function osdmodulesbuild()
MAME_DIR .. "src/osd/modules/monitor/monitor_sdl.cpp",
}
includedirs {
- MAME_DIR .. "3rdparty/asio/include",
+ ext_includedir("asio"),
}
if _OPTIONS["targetos"]=="windows" then
@@ -215,7 +215,7 @@ function osdmodulesbuild()
MAME_DIR .. "3rdparty/bgfx/include",
MAME_DIR .. "3rdparty/bgfx/3rdparty",
MAME_DIR .. "3rdparty/bx/include",
- MAME_DIR .. "3rdparty/rapidjson/include",
+ ext_includedir("rapidjson")
}
if _OPTIONS["NO_USE_PORTAUDIO"]=="1" then
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index efe9a981e51..e477cc695be 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -3156,6 +3156,11 @@ files {
}
createMAMEProjects(_target, _subtarget, "sega")
+
+includedirs {
+ ext_includedir("glm"),
+}
+
files {
MAME_DIR .. "src/mame/drivers/angelkds.cpp",
MAME_DIR .. "src/mame/includes/angelkds.h",
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index bae57cbc9b8..bf08e0d8f44 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -2706,7 +2706,7 @@ files {
MAME_DIR .. "src/mame/machine/nl_prodigy.h",
}
includedirs {
- MAME_DIR .. "3rdparty/rapidjson/include",
+ ext_includedir("rapidjson"),
}
createMESSProjects(_target, _subtarget, "psion")
diff --git a/scripts/target/mame/nl.lua b/scripts/target/mame/nl.lua
index c47cea4deb4..53f16ba42cc 100644
--- a/scripts/target/mame/nl.lua
+++ b/scripts/target/mame/nl.lua
@@ -114,6 +114,7 @@ function createProjects_mame_nl(_target, _subtarget)
MAME_DIR .. "src/lib/util",
MAME_DIR .. "3rdparty",
GEN_DIR .. "mame/layout",
+ ext_includedir("rapidjson"),
}
files{
diff --git a/src/emu/machine.cpp b/src/emu/machine.cpp
index 8d84f412de9..72e78e96759 100644
--- a/src/emu/machine.cpp
+++ b/src/emu/machine.cpp
@@ -84,8 +84,8 @@
#include "network.h"
#include "ui/uimain.h"
#include <time.h>
-#include "rapidjson/include/rapidjson/writer.h"
-#include "rapidjson/include/rapidjson/stringbuffer.h"
+#include <rapidjson/writer.h>
+#include <rapidjson/stringbuffer.h>
#if defined(EMSCRIPTEN)
#include <emscripten.h>
diff --git a/src/lib/util/client_https.hpp b/src/lib/util/client_https.hpp
index 3300ea6865f..835a7ee613d 100644
--- a/src/lib/util/client_https.hpp
+++ b/src/lib/util/client_https.hpp
@@ -4,7 +4,7 @@
#define CLIENT_HTTPS_HPP
#include "client_http.hpp"
-#include "asio/ssl.hpp"
+#include <asio/ssl.hpp>
namespace webpp {
using HTTPS = asio::ssl::stream<asio::ip::tcp::socket>;
diff --git a/src/lib/util/client_wss.hpp b/src/lib/util/client_wss.hpp
index ef30b459607..6ff51658f30 100644
--- a/src/lib/util/client_wss.hpp
+++ b/src/lib/util/client_wss.hpp
@@ -4,7 +4,7 @@
#define CLIENT_WSS_HPP
#include "client_ws.hpp"
-#include "asio/ssl.hpp"
+#include <asio/ssl.hpp>
namespace webpp {
using WSS = asio::ssl::stream<asio::ip::tcp::socket>;
diff --git a/src/lib/util/server_http_impl.hpp b/src/lib/util/server_http_impl.hpp
index 4f909c023ef..e949e6b2483 100644
--- a/src/lib/util/server_http_impl.hpp
+++ b/src/lib/util/server_http_impl.hpp
@@ -9,7 +9,7 @@
#include "server_http.hpp"
#include "asio.h"
-#include "asio/system_timer.hpp"
+#include <asio/system_timer.hpp>
#include "path_to_regex.hpp"
#include <map>
diff --git a/src/lib/util/server_https.hpp b/src/lib/util/server_https.hpp
index e721cbb3e25..d76aa377762 100644
--- a/src/lib/util/server_https.hpp
+++ b/src/lib/util/server_https.hpp
@@ -4,7 +4,7 @@
#define SERVER_HTTPS_HPP
#include "server_http.hpp"
-#include "asio/ssl.hpp"
+#include <asio/ssl.hpp>
#include <openssl/ssl.h>
#include <algorithm>
diff --git a/src/lib/util/server_ws_impl.hpp b/src/lib/util/server_ws_impl.hpp
index cbb6f9b4908..9fc5876cab2 100644
--- a/src/lib/util/server_ws_impl.hpp
+++ b/src/lib/util/server_ws_impl.hpp
@@ -6,7 +6,7 @@
#include "crypto.hpp"
#include "asio.h"
-#include "asio/system_timer.hpp"
+#include <asio/system_timer.hpp>
#include "server_ws.hpp"
#include <unordered_map>
diff --git a/src/lib/util/server_wss.hpp b/src/lib/util/server_wss.hpp
index ecf46fb1524..ea0bc47626e 100644
--- a/src/lib/util/server_wss.hpp
+++ b/src/lib/util/server_wss.hpp
@@ -4,7 +4,7 @@
#define SERVER_WSS_HPP
#include "server_ws.hpp"
-#include "asio/ssl.hpp"
+#include <asio/ssl.hpp>
#include <openssl/ssl.h>
#include <algorithm>
diff --git a/src/mame/drivers/prodigy.cpp b/src/mame/drivers/prodigy.cpp
index 3d4dadf1684..c134c40cc29 100644
--- a/src/mame/drivers/prodigy.cpp
+++ b/src/mame/drivers/prodigy.cpp
@@ -81,9 +81,9 @@
#include <zlib.h>
#include <iostream>
#include <fstream>
-#include "rapidjson/include/rapidjson/document.h"
-#include "rapidjson/include/rapidjson/stringbuffer.h"
-#include "rapidjson/include/rapidjson/writer.h"
+#include <rapidjson/document.h>
+#include <rapidjson/stringbuffer.h>
+#include <rapidjson/writer.h>
#endif
// Generated artwork includes
diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h
index 5b09d05d296..a9a7bb4e2b3 100644
--- a/src/mame/includes/model1.h
+++ b/src/mame/includes/model1.h
@@ -17,7 +17,7 @@
#include "screen.h"
-#include <glm/glm/vec3.hpp>
+#include <glm/vec3.hpp>
#include <functional>
diff --git a/src/mame/video/model1.cpp b/src/mame/video/model1.cpp
index b128650fbbb..2a15cb21157 100644
--- a/src/mame/video/model1.cpp
+++ b/src/mame/video/model1.cpp
@@ -1,7 +1,7 @@
// license:BSD-3-Clause
// copyright-holders:Olivier Galibert
-#include <glm/glm/geometric.hpp>
+#include <glm/geometric.hpp>
#include "emu.h"
#include "cpu/mb86233/mb86233.h"
diff --git a/src/osd/asio.h b/src/osd/asio.h
index 64acfab9674..3ee31a467d7 100644
--- a/src/osd/asio.h
+++ b/src/osd/asio.h
@@ -31,5 +31,5 @@
#define ASIO_NOEXCEPT_OR_NOTHROW noexcept(true)
#define ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true)
-#include "asio/include/asio.hpp"
+#include <asio.hpp>
#undef interface