summaryrefslogtreecommitdiff
path: root/gruel/src/lib/pmt
diff options
context:
space:
mode:
Diffstat (limited to 'gruel/src/lib/pmt')
-rw-r--r--gruel/src/lib/pmt/CMakeLists.txt90
-rw-r--r--gruel/src/lib/pmt/pmt_int.h2
-rw-r--r--gruel/src/lib/pmt/qa_pmt.h3
-rw-r--r--gruel/src/lib/pmt/qa_pmt_prims.cc11
-rw-r--r--gruel/src/lib/pmt/qa_pmt_prims.h4
5 files changed, 101 insertions, 9 deletions
diff --git a/gruel/src/lib/pmt/CMakeLists.txt b/gruel/src/lib/pmt/CMakeLists.txt
new file mode 100644
index 000000000..a708fa7ad
--- /dev/null
+++ b/gruel/src/lib/pmt/CMakeLists.txt
@@ -0,0 +1,90 @@
+# Copyright 2010 Free Software Foundation, Inc.
+#
+# This file is part of GNU Radio
+#
+# GNU Radio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GNU Radio is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Radio; see the file COPYING. If not, write to
+# the Free Software Foundation, Inc., 51 Franklin Street,
+# Boston, MA 02110-1301, USA.
+
+########################################################################
+# This file included, use CMake directory variables
+########################################################################
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+########################################################################
+# Generate serial tags header file
+########################################################################
+get_filename_component(SCHEME_DIR
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../scheme/gnuradio ABSOLUTE
+)
+
+get_filename_component(PMT_SERIAL_TAGS_H
+ ${CMAKE_CURRENT_BINARY_DIR}/../../include/gruel/pmt_serial_tags.h ABSOLUTE
+)
+
+add_custom_command(
+ OUTPUT ${PMT_SERIAL_TAGS_H}
+ DEPENDS ${SCHEME_DIR}/gen-serial-tags.py
+ DEPENDS ${SCHEME_DIR}/pmt-serial-tags.scm
+ COMMAND ${PYTHON_EXECUTABLE}
+ ${SCHEME_DIR}/gen-serial-tags.py
+ ${SCHEME_DIR}/pmt-serial-tags.scm
+ ${PMT_SERIAL_TAGS_H}
+)
+
+install(
+ FILES ${PMT_SERIAL_TAGS_H}
+ DESTINATION ${GR_INCLUDE_DIR}/gruel
+ COMPONENT "gruel_devel"
+)
+
+include(AddFileDependencies)
+ADD_FILE_DEPENDENCIES(
+ ${CMAKE_CURRENT_SOURCE_DIR}/pmt_serialize.cc
+ ${PMT_SERIAL_TAGS_H}
+)
+
+########################################################################
+# Generate other pmt stuff
+########################################################################
+add_custom_command(
+ OUTPUT
+ ${CMAKE_CURRENT_BINARY_DIR}/pmt_unv_int.h
+ ${CMAKE_CURRENT_BINARY_DIR}/qa_pmt_unv.h
+ ${CMAKE_CURRENT_BINARY_DIR}/pmt_unv.cc
+ ${CMAKE_CURRENT_BINARY_DIR}/qa_pmt_unv.cc
+ DEPENDS
+ ${CMAKE_CURRENT_SOURCE_DIR}/generate_unv.py
+ ${CMAKE_CURRENT_SOURCE_DIR}/unv_template.h.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/unv_template.cc.t
+ ${CMAKE_CURRENT_SOURCE_DIR}/unv_qa_template.cc.t
+ COMMAND ${PYTHON_EXECUTABLE} -B -c
+ \"import os,sys\;srcdir='${CMAKE_CURRENT_SOURCE_DIR}'\;sys.path.append(srcdir)\;os.environ['srcdir']=srcdir\;from generate_unv import main\;main()\"
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+)
+
+list(APPEND gruel_sources
+ ${CMAKE_CURRENT_BINARY_DIR}/pmt_unv.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/pmt.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/pmt_io.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/pmt_pool.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/pmt_serialize.cc
+)
+
+list(APPEND test_gruel_sources
+ ${CMAKE_CURRENT_BINARY_DIR}/qa_pmt_unv.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_pmt_prims.cc
+ ${CMAKE_CURRENT_SOURCE_DIR}/qa_pmt.cc
+)
diff --git a/gruel/src/lib/pmt/pmt_int.h b/gruel/src/lib/pmt/pmt_int.h
index ea28e37b4..3a5cd382b 100644
--- a/gruel/src/lib/pmt/pmt_int.h
+++ b/gruel/src/lib/pmt/pmt_int.h
@@ -35,7 +35,7 @@
#define PMT_LOCAL_ALLOCATOR 0 // define to 0 or 1
namespace pmt {
-class pmt_base : boost::noncopyable {
+class GRUEL_API pmt_base : boost::noncopyable {
mutable boost::detail::atomic_count count_;
protected:
diff --git a/gruel/src/lib/pmt/qa_pmt.h b/gruel/src/lib/pmt/qa_pmt.h
index 43a6dbf67..424c1065b 100644
--- a/gruel/src/lib/pmt/qa_pmt.h
+++ b/gruel/src/lib/pmt/qa_pmt.h
@@ -23,11 +23,12 @@
#ifndef INCLUDED_QA_PMT_H
#define INCLUDED_QA_PMT_H
+#include <gruel/attributes.h>
#include <cppunit/TestSuite.h>
//! collect all the tests for pmt
-class qa_pmt {
+class __GR_ATTR_EXPORT qa_pmt {
public:
//! return suite of tests for all of pmt
static CppUnit::TestSuite *suite ();
diff --git a/gruel/src/lib/pmt/qa_pmt_prims.cc b/gruel/src/lib/pmt/qa_pmt_prims.cc
index 985361f13..7dec30d56 100644
--- a/gruel/src/lib/pmt/qa_pmt_prims.cc
+++ b/gruel/src/lib/pmt/qa_pmt_prims.cc
@@ -23,6 +23,7 @@
#include <qa_pmt_prims.h>
#include <cppunit/TestAssert.h>
#include <gruel/msg_passing.h>
+#include <boost/format.hpp>
#include <cstdio>
#include <cstring>
#include <sstream>
@@ -54,9 +55,8 @@ qa_pmt_prims::test_symbols()
// generate a bunch of symbols
for (int i = 0; i < N; i++){
- char buf[100];
- snprintf(buf, sizeof(buf), "test-%d", i);
- v1[i] = mp(buf);
+ std::string buf = str(boost::format("test-%d") % i);
+ v1[i] = mp(buf.c_str());
}
// confirm that they are all unique
@@ -66,9 +66,8 @@ qa_pmt_prims::test_symbols()
// generate the same symbols again
for (int i = 0; i < N; i++){
- char buf[100];
- snprintf(buf, sizeof(buf), "test-%d", i);
- v2[i] = mp(buf);
+ std::string buf = str(boost::format("test-%d") % i);
+ v2[i] = mp(buf.c_str());
}
// confirm that we get the same ones back
diff --git a/gruel/src/lib/pmt/qa_pmt_prims.h b/gruel/src/lib/pmt/qa_pmt_prims.h
index efc5c6050..cc1409ee6 100644
--- a/gruel/src/lib/pmt/qa_pmt_prims.h
+++ b/gruel/src/lib/pmt/qa_pmt_prims.h
@@ -22,10 +22,12 @@
#ifndef INCLUDED_QA_PMT_PRIMS_H
#define INCLUDED_QA_PMT_PRIMS_H
+#include <gruel/attributes.h>
+#include <gruel/api.h> //reason: suppress warnings
#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/TestCase.h>
-class qa_pmt_prims : public CppUnit::TestCase {
+class __GR_ATTR_EXPORT qa_pmt_prims : public CppUnit::TestCase {
CPPUNIT_TEST_SUITE(qa_pmt_prims);
CPPUNIT_TEST(test_symbols);