Setup dependencies for subproject building

We need to define dependency information so that other projects
can build libhei as a subproject.

Signed-off-by: Ben Tyner <ben.tyner@ibm.com>
Change-Id: I9b49b7a72a87132d209c9df2a63344b7bade6f1b
diff --git a/meson.build b/meson.build
index 7424a76..775242d 100644
--- a/meson.build
+++ b/meson.build
@@ -9,6 +9,16 @@
 
 incdir = [include_directories('src')]
 
+# libhei_dep provides dependencies needed to build with libhei as a subproject
+# rather than a base project.
+libhei_src = ['src/isolator/hei_isolator.cpp',
+              'src/isolator/hei_isolation_node.cpp',
+              'src/register/hei_hardware_register.cpp',
+              'src/util/hei_bit_string.cpp']
+
+libhei_dep = declare_dependency(include_directories : incdir,
+                                sources : libhei_src)
+
 build_tests = get_option('tests')
 
 if not build_tests.disabled()
diff --git a/src/isolator/hei_isolator.cpp b/src/isolator/hei_isolator.cpp
index cb254aa..d932659 100644
--- a/src/isolator/hei_isolator.cpp
+++ b/src/isolator/hei_isolator.cpp
@@ -19,8 +19,8 @@
     ReturnCode rc;
 
     // BEGIN temporary code
-    HEI_INF("Isolator::initialize(%p,%lu,%d)", i_buffer, i_bufferSize,
-            i_forceInit);
+    HEI_INF("Isolator::initialize(%p,%" PRIu64 ",%d)", i_buffer,
+            (uint64_t)i_bufferSize, i_forceInit);
 
     auto& scom_fw    = Flyweight<ScomRegister>::getSingleton();
     auto& idScom_fw  = Flyweight<IdScomRegister>::getSingleton();
diff --git a/src/util/hei_bit_string.cpp b/src/util/hei_bit_string.cpp
index 16713ec..8fc0776 100644
--- a/src/util/hei_bit_string.cpp
+++ b/src/util/hei_bit_string.cpp
@@ -15,9 +15,9 @@
 //##############################################################################
 
 // number of bits in a uint64_t
-constexpr uint64_t BitString::UINT64_BIT_LEN = sizeof(uint64_t) * 8;
+const uint64_t BitString::UINT64_BIT_LEN = sizeof(uint64_t) * 8;
 // number of bits in a uint8_t
-constexpr uint64_t BitString::UINT8_BIT_LEN = sizeof(uint8_t) * 8;
+const uint64_t BitString::UINT8_BIT_LEN = sizeof(uint8_t) * 8;
 
 //------------------------------------------------------------------------------
 
diff --git a/test/hei_user_defines.hpp b/test/hei_user_defines.hpp
index c84981b..08ddda9 100644
--- a/test/hei_user_defines.hpp
+++ b/test/hei_user_defines.hpp
@@ -7,6 +7,7 @@
  */
 
 #include <assert.h>
+#include <inttypes.h>
 #include <stdio.h>
 
 #define HEI_INF(...)                                                           \
diff --git a/test/simulator/user_interface.cpp b/test/simulator/user_interface.cpp
index 2bcc2af..0b8b6ef 100644
--- a/test/simulator/user_interface.cpp
+++ b/test/simulator/user_interface.cpp
@@ -50,8 +50,9 @@
         // END temporary code
         default:
             rc = RC_REG_ACCESS_FAILURE;
-            HEI_ERR("registerRead(%p,%p,%lx,%lx,%lx)", i_chip.getChip(),
-                    o_buffer, io_bufSize, i_regType, i_address);
+            HEI_ERR("registerRead(%p,%p,%" PRIu64 ",%" PRIx64 ",%" PRIx64 ")",
+                    i_chip.getChip(), o_buffer, (uint64_t)io_bufSize, i_regType,
+                    i_address);
     }
 
     return rc;
@@ -74,8 +75,9 @@
         // TODO: add cases for REG_TYPE_SCOM and REG_TYPE_ID_SCOM
         default:
             rc = RC_REG_ACCESS_FAILURE;
-            HEI_ERR("registerWrite(%p,%p,%lx,%lx,%lx)", i_chip.getChip(),
-                    i_buffer, io_bufSize, i_regType, i_address);
+            HEI_ERR("registerWrite(%p,%p,%" PRIu64 ",%" PRIx64 ",%" PRIx64 ")",
+                    i_chip.getChip(), i_buffer, (uint64_t)io_bufSize, i_regType,
+                    i_address);
     }
 
     return rc;