summarylogtreecommitdiffstats
path: root/50-system-rapidjson.patch
blob: 8706236bba5b29bae4e3a7407dd93238fc02807e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
Description: Patch to be able to use Debian's rapidjson
 This patch adds the CMake-snippet and the necessary changes to be able to
 compile with the pacakged rapidjson.
Author: Tobias Frost <tobi@debian.org>
Forwarded: https://github.com/RobertBeckebans/RBDOOM-3-BFG/pull/351
Last-Update: 2016-10-11
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/neo/CMakeLists.txt
+++ b/neo/CMakeLists.txt
@@ -41,6 +41,9 @@
 
 option(USE_SYSTEM_LIBGLEW
                 "Use the system libglew instead of the bundled one" OFF)
+                
+option(USE_SYSTEM_RAPIDJSON
+                "Use the system rapidjson instead of the bundled one" OFF)			
 
 set(CPU_TYPE "" CACHE STRING "When set, passes this string as CPU-ID which will be embedded into the binary.")
 
@@ -273,6 +276,17 @@
     add_definitions(-DGLEW_STATIC)
 endif (GLEW_FOUND)
 
+if(USE_SYSTEM_RAPIDJSON)
+find_package(rapidjson REQUIRED)
+endif(USE_SYSTEM_RAPIDJSON)
+
+if (RAPIDJSON_FOUND)
+	include_directories("${RAPIDJSON_INCLUDE_DIRS}")
+	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RAPIDJSON_CXX_FLAGS}")
+else (RAPIDJSON_FOUND)
+	include_directories("libs/rapidjson/include")
+endif (RAPIDJSON_FOUND)
+
 add_subdirectory(idlib)
 
 file(GLOB AAS_INCLUDES aas/*.h)
--- /dev/null
+++ b/neo/cmake/Findrapidjson.cmake
@@ -0,0 +1,97 @@
+# Copyright (c) 2011 Milo Yip (miloyip@gmail.com)
+# Copyright (c) 2013 Rafal Jeczalik (rjeczalik@gmail.com)
+# Distributed under the MIT License (see license.txt file)
+
+# -----------------------------------------------------------------------------------
+#
+# Finds the rapidjson library
+#
+# -----------------------------------------------------------------------------------
+#
+# Variables used by this module, they can change the default behaviour.
+# Those variables need to be either set before calling find_package
+# or exported as environment variables before running CMake:
+#
+# RAPIDJSON_INCLUDEDIR - Set custom include path, useful when rapidjson headers are
+#                        outside system paths
+# RAPIDJSON_USE_SSE2   - Configure rapidjson to take advantage of SSE2 capabilities
+# RAPIDJSON_USE_SSE42  - Configure rapidjson to take advantage of SSE4.2 capabilities
+#
+# -----------------------------------------------------------------------------------
+#
+# Variables defined by this module:
+#
+# RAPIDJSON_FOUND        - True if rapidjson was found
+# RAPIDJSON_INCLUDE_DIRS - Path to rapidjson include directory
+# RAPIDJSON_CXX_FLAGS    - Extra C++ flags required for compilation with rapidjson
+#
+# -----------------------------------------------------------------------------------
+#
+# Example usage:
+#
+#  set(RAPIDJSON_USE_SSE2 ON)
+#  set(RAPIDJSON_INCLUDEDIR "/opt/github.com/rjeczalik/rapidjson/include")
+#
+#  find_package(rapidjson REQUIRED)
+#
+#  include_directories("${RAPIDJSON_INCLUDE_DIRS}")
+#  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${RAPIDJSON_CXX_FLAGS}")
+#  add_executable(foo foo.cc)
+#
+# -----------------------------------------------------------------------------------
+
+foreach(opt RAPIDJSON_INCLUDEDIR RAPIDJSON_USE_SSE2 RAPIDJSON_USE_SSE42)
+  if(${opt} AND DEFINED ENV{${opt}} AND NOT ${opt} STREQUAL "$ENV{${opt}}")
+    message(WARNING "Conflicting ${opt} values: ignoring environment variable and using CMake cache entry.")
+  elseif(DEFINED ENV{${opt}} AND NOT ${opt})
+    set(${opt} "$ENV{${opt}}")
+  endif()
+endforeach()
+
+find_path(
+  RAPIDJSON_INCLUDE_DIRS
+  NAMES rapidjson/rapidjson.h
+  PATHS ${RAPIDJSON_INCLUDEDIR}
+  DOC "Include directory for the rapidjson library."
+)
+
+mark_as_advanced(RAPIDJSON_INCLUDE_DIRS)
+
+if(RAPIDJSON_INCLUDE_DIRS)
+  set(RAPIDJSON_FOUND TRUE)
+endif()
+
+mark_as_advanced(RAPIDJSON_FOUND)
+
+if(RAPIDJSON_USE_SSE42)
+  set(RAPIDJSON_CXX_FLAGS "-DRAPIDJSON_SSE42")
+  if(MSVC)
+    set(RAPIDJSON_CXX_FLAGS "${RAPIDJSON_CXX_FLAGS} /arch:SSE4.2")
+  else()
+    set(RAPIDJSON_CXX_FLAGS "${RAPIDJSON_CXX_FLAGS} -msse4.2")
+  endif()
+else()
+  if(RAPIDJSON_USE_SSE2)
+    set(RAPIDJSON_CXX_FLAGS "-DRAPIDJSON_SSE2")
+    if(MSVC)
+      set(RAPIDJSON_CXX_FLAGS "${RAPIDJSON_CXX_FLAGS} /arch:SSE2")
+    else()
+      set(RAPIDJSON_CXX_FLAGS "${RAPIDJSON_CXX_FLAGS} -msse2")
+    endif()
+  endif()
+endif()
+
+mark_as_advanced(RAPIDJSON_CXX_FLAGS)
+
+if(RAPIDJSON_FOUND)
+  if(NOT rapidjson_FIND_QUIETLY)
+    message(STATUS "Found rapidjson header files in ${RAPIDJSON_INCLUDE_DIRS}")
+    if(DEFINED RAPIDJSON_CXX_FLAGS)
+      message(STATUS "Found rapidjson C++ extra compilation flags: ${RAPIDJSON_CXX_FLAGS}")
+    endif()
+  endif()
+elseif(rapidjson_FIND_REQUIRED)
+    message(FATAL_ERROR "Could not find rapidjson")
+else()
+  message(STATUS "Optional package rapidjson was not found")
+endif()
--- a/neo/idlib/precompiled.h
+++ b/neo/idlib/precompiled.h
@@ -105,7 +105,10 @@
 #include "../ui/UserInterface.h"
 
 // RB: required for SWF extensions
-#include "../libs/rapidjson/include/rapidjson/document.h"
+//#include "../libs/rapidjson/include/rapidjson/document.h"
+#include "rapidjson/document.h"
+
+
 
 #include "../swf/SWF.h"