move entity_map_json to libipmid

entity_map_json is used by dbus-sdr sensor handling so it needs to be in
a common location or loading order matters. This change moves the file
from the ipmi20 provider library to libipmi, a common library.

Tested: Found that even though the dbus-sdr provider loads before
        ipmi20, it loads properly without missing symbols.

Change-Id: I9ab6833c78e6f3c89c02cf998ce0a36353059c3d
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
diff --git a/dbus-sdr/meson.build b/dbus-sdr/meson.build
index bfdbde1..b8dce8e 100644
--- a/dbus-sdr/meson.build
+++ b/dbus-sdr/meson.build
@@ -10,9 +10,9 @@
   include_directories: root_inc,
   dependencies: [
     crypto,
+    nlohmann_json_dep,
     phosphor_logging_dep,
     ipmid_dep,
-    libipmi20_dep,
     sensorutils_dep,
   ])
 
diff --git a/dbus-sdr/sensorcommands.cpp b/dbus-sdr/sensorcommands.cpp
index 16860dc..63f164e 100644
--- a/dbus-sdr/sensorcommands.cpp
+++ b/dbus-sdr/sensorcommands.cpp
@@ -19,11 +19,11 @@
 #include "dbus-sdr/sdrutils.hpp"
 #include "dbus-sdr/sensorutils.hpp"
 #include "dbus-sdr/storagecommands.hpp"
-#include "entity_map_json.hpp"
 
 #include <boost/algorithm/string.hpp>
 #include <boost/container/flat_map.hpp>
 #include <ipmid/api.hpp>
+#include <ipmid/entity_map_json.hpp>
 #include <ipmid/types.hpp>
 #include <ipmid/utils.hpp>
 #include <phosphor-logging/log.hpp>
diff --git a/entity_map_json.hpp b/include/ipmid/entity_map_json.hpp
similarity index 100%
rename from entity_map_json.hpp
rename to include/ipmid/entity_map_json.hpp
diff --git a/entity_map_json.cpp b/libipmid/entity_map_json.cpp
similarity index 98%
rename from entity_map_json.cpp
rename to libipmid/entity_map_json.cpp
index d00fcf0..76fbb25 100644
--- a/entity_map_json.cpp
+++ b/libipmid/entity_map_json.cpp
@@ -1,5 +1,4 @@
-#include "entity_map_json.hpp"
-
+#include <ipmid/entity_map_json.hpp>
 #include <ipmid/types.hpp>
 #include <nlohmann/json.hpp>
 
diff --git a/libipmid/meson.build b/libipmid/meson.build
index 3a8042c..0d6360c 100644
--- a/libipmid/meson.build
+++ b/libipmid/meson.build
@@ -6,13 +6,22 @@
   systemd,
 ]
 
+entity_map_json_lib = static_library(
+  'entity_map_json',
+  'entity_map_json.cpp',
+  include_directories: root_inc,
+  dependencies: [nlohmann_json_dep, sdbusplus_dep],
+  implicit_include_directories: false)
+
+entity_map_json_dep = declare_dependency(link_with: entity_map_json_lib)
+
 libipmid = library(
   'ipmid',
   'sdbus-asio.cpp',
   'signals.cpp',
   'systemintf-sdbus.cpp',
   'utils.cpp',
-  dependencies: ipmid_pre,
+  dependencies: [ipmid_pre, entity_map_json_dep],
   version: meson.project_version(),
   include_directories: root_inc,
   install: true,
diff --git a/meson.build b/meson.build
index 9ea6e1c..f6fc07c 100644
--- a/meson.build
+++ b/meson.build
@@ -205,15 +205,6 @@
   transportoem_src = ['transporthandler_oem.cpp']
 endif
 
-entity_map_json_lib = static_library(
-  'entity_map_json',
-  'entity_map_json.cpp',
-  include_directories: root_inc,
-  dependencies: [ipmid_dep, nlohmann_json_dep],
-  implicit_include_directories: false)
-
-entity_map_json_dep = declare_dependency(link_with: entity_map_json_lib)
-
 libipmi20_src = [
   'app/channel.cpp',
   'app/watchdog.cpp',
@@ -242,7 +233,7 @@
 ipmi20_lib = library(
   'ipmi20',
   libipmi20_src,
-  dependencies: [ipmid_pre, entity_map_json_dep, nlohmann_json_dep],
+  dependencies: [ipmid_pre, nlohmann_json_dep],
   include_directories: root_inc,
   install: true,
   install_dir: get_option('libdir') / 'ipmid-providers',
diff --git a/sensorhandler.cpp b/sensorhandler.cpp
index 84b6e9d..a819100 100644
--- a/sensorhandler.cpp
+++ b/sensorhandler.cpp
@@ -2,13 +2,13 @@
 
 #include "sensorhandler.hpp"
 
-#include "entity_map_json.hpp"
 #include "fruread.hpp"
 
 #include <mapper.h>
 #include <systemd/sd-bus.h>
 
 #include <ipmid/api.hpp>
+#include <ipmid/entity_map_json.hpp>
 #include <ipmid/types.hpp>
 #include <ipmid/utils.hpp>
 #include <phosphor-logging/elog-errors.hpp>
diff --git a/storagehandler.cpp b/storagehandler.cpp
index 61cf42e..0ac735b 100644
--- a/storagehandler.cpp
+++ b/storagehandler.cpp
@@ -1,6 +1,5 @@
 #include "storagehandler.hpp"
 
-#include "entity_map_json.hpp"
 #include "fruread.hpp"
 #include "read_fru_data.hpp"
 #include "selutility.hpp"
@@ -12,6 +11,7 @@
 #include <systemd/sd-bus.h>
 
 #include <ipmid/api.hpp>
+#include <ipmid/entity_map_json.hpp>
 #include <ipmid/utils.hpp>
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/elog.hpp>
diff --git a/test/entitymap_json_unittest.cpp b/test/entitymap_json_unittest.cpp
index 4993351..5f31e1b 100644
--- a/test/entitymap_json_unittest.cpp
+++ b/test/entitymap_json_unittest.cpp
@@ -1,5 +1,4 @@
-#include "entity_map_json.hpp"
-
+#include <ipmid/entity_map_json.hpp>
 #include <ipmid/types.hpp>
 #include <nlohmann/json.hpp>