commit 64d4709d21a289b4e2974c5a3a856a4b5b71c1d4
Author: Michael Dickens <michael.dickens@ettus.com>
Date:   Sun Dec 8 16:45:26 2019 -0500

    lib: remove references to Boost, since it is not used herein
    
    modtool: remove reference to just-removed `VOLK_RUN_TESTS` macro
    
    lib: remove unnecessary quotes
    
    apps: redo include_directories to be target_include_directories
    
    Include Boost_INCLUDE_DIRS only if not using std::filesystem .
    
    lib: various tweaks and adding verbose comments to help explain why
    
    apps: final Boost tweaks and ordering fix for includes

diff --git a/apps/CMakeLists.txt b/apps/CMakeLists.txt
index b4dc982..6a0cee8 100644
--- a/apps/CMakeLists.txt
+++ b/apps/CMakeLists.txt
@@ -18,19 +18,6 @@
 ########################################################################
 # Setup profiler
 ########################################################################
-if(MSVC)
-    include_directories(${PROJECT_SOURCE_DIR}/cmake/msvc)
-endif(MSVC)
-
-include_directories(
-    ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMAKE_CURRENT_BINARY_DIR}
-    ${PROJECT_SOURCE_DIR}/include
-    ${PROJECT_BINARY_DIR}/include
-    ${PROJECT_SOURCE_DIR}/lib
-    ${PROJECT_BINARY_DIR}/lib
-    ${Boost_INCLUDE_DIRS}
-)
 
 # MAKE volk_profile
 add_executable(volk_profile
@@ -39,7 +26,29 @@ add_executable(volk_profile
     ${CMAKE_CURRENT_SOURCE_DIR}/volk_option_helpers.cc
 )
 
-if(${FILESYSTEM_FOUND})
+if(MSVC)
+    target_include_directories(volk_profile
+        PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/cmake/msvc>
+    )
+endif(MSVC)
+
+target_include_directories(volk_profile
+    PRIVATE $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
+    PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    PRIVATE $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/lib>
+    PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/lib>
+    PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+    PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+if(NOT FILESYSTEM_FOUND)
+    target_include_directories(volk_profile
+        PUBLIC ${Boost_INCLUDE_DIRS}
+    )
+    target_link_libraries(volk_profile PRIVATE ${Boost_LIBRARIES})
+endif()
+
+if(FILESYSTEM_FOUND)
     add_definitions(-DHAS_STD_FILESYSTEM=1)
     if(${find_experimental})
         add_definitions(-DHAS_STD_FILESYSTEM_EXPERIMENTAL=1)
@@ -48,10 +57,10 @@ if(${FILESYSTEM_FOUND})
 endif()
 
 if(ENABLE_STATIC_LIBS)
-    target_link_libraries(volk_profile PRIVATE volk_static ${Boost_LIBRARIES})
+    target_link_libraries(volk_profile PRIVATE volk_static)
     set_target_properties(volk_profile PROPERTIES LINK_FLAGS "-static")
 else()
-    target_link_libraries(volk_profile PRIVATE volk ${Boost_LIBRARIES})
+    target_link_libraries(volk_profile PRIVATE volk)
 endif()
 
 install(
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index b167f7a..0ca3244 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -533,38 +533,52 @@ if(MSVC)
     set_source_files_properties(${volk_sources} PROPERTIES LANGUAGE CXX)
 endif()
 
-#Create a volk object library
+#Create an object to reference Volk source and object files.
+#
+#NOTE: This object cannot be used to propagate include directories or
+#library linkage, but we have to define them here for compiling to
+#work. There are options starting with CMake 3.13 for using the OBJECT
+#to propagate this information.
 add_library(volk_obj OBJECT ${volk_sources})
 target_include_directories(volk_obj
-  PUBLIC $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
-  PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
-  PUBLIC $<INSTALL_INTERFACE:include>
-  PRIVATE ${PROJECT_SOURCE_DIR}/kernels
-  PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
-  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
-  )
+    PRIVATE $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
+    PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    PRIVATE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/kernels>
+    PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+    PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+)
+
+#Configure object target properties
+if(NOT MSVC)
+  set_target_properties(volk_obj PROPERTIES COMPILE_FLAGS "-fPIC")
+endif()
 
 #Add dynamic library
+#
+#NOTE: The PUBLIC include directories and library linkage will be
+#propagated when this target is used to build other targets. Also, the
+#PUBLIC library linkage and include directories INSTALL_INTERFACE will
+#be used to create the target import information. Ordering of the
+#include directories is taken as provided; it -might- matter, but
+#probably doesn't.
 add_library(volk SHARED $<TARGET_OBJECTS:volk_obj>)
-target_link_libraries(volk ${volk_libraries})
+target_link_libraries(volk PUBLIC ${volk_libraries})
 target_include_directories(volk
-  PUBLIC $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
-  PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
-  PUBLIC $<INSTALL_INTERFACE:include>
-  PRIVATE ${PROJECT_SOURCE_DIR}/kernels
-  PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
-  PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
-  )
+    PUBLIC $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
+    PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+    PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/kernels>
+    PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
+    PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+    PUBLIC $<INSTALL_INTERFACE:include>
+)
 
 #Configure target properties
 if(NOT MSVC)
-  set_target_properties(volk_obj PROPERTIES COMPILE_FLAGS "-fPIC")
-  target_link_libraries(volk m)
+  target_link_libraries(volk PUBLIC m)
 endif()
 set_target_properties(volk PROPERTIES SOVERSION ${LIBVER})
 set_target_properties(volk PROPERTIES DEFINE_SYMBOL "volk_EXPORTS")
 
-
 #Install locations
 install(TARGETS volk
   EXPORT VOLK-export
@@ -574,20 +588,27 @@ install(TARGETS volk
   )
 
 #Configure static library
+#
+#NOTE: The PUBLIC include directories and library linkage will be
+#propagated when this target is used to build other targets. Also, the
+#PUBLIC library linkage and include directories INSTALL_INTERFACE will
+#be used to create the target import information. Ordering of the
+#include directories is taken as provided; it -might- matter, but
+#probably doesn't.
 if(ENABLE_STATIC_LIBS)
   add_library(volk_static STATIC $<TARGET_OBJECTS:volk_obj>)
-  target_link_libraries(volk_static ${volk_libraries} pthread)
+  target_link_libraries(volk_static PUBLIC ${volk_libraries} pthread)
   if(NOT MSVC)
-    target_link_libraries(volk_static m)
+    target_link_libraries(volk_static PUBLIC m)
   endif()
   target_include_directories(volk_static
     PUBLIC $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
     PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
-    PUBLIC $<INSTALL_INTERFACE:include>
-    PRIVATE ${PROJECT_SOURCE_DIR}/kernels
+    PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/kernels>
     PRIVATE ${CMAKE_CURRENT_BINARY_DIR}
     PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
-    )
+    PUBLIC $<INSTALL_INTERFACE:include>
+  )
 
   set_target_properties(volk_static PROPERTIES OUTPUT_NAME volk)
 
@@ -602,16 +623,9 @@ endif(ENABLE_STATIC_LIBS)
 ########################################################################
 if(ENABLE_TESTING)
 
-    #include Boost headers
-    include_directories(${Boost_INCLUDE_DIRS})
     make_directory(${CMAKE_CURRENT_BINARY_DIR}/.unittest)
-    set_source_files_properties(
-        ${CMAKE_CURRENT_SOURCE_DIR}/testqa.cc PROPERTIES
-        COMPILE_DEFINITIONS "BOOST_TEST_DYN_LINK;BOOST_TEST_MAIN"
-    )
-
     include(VolkAddTest)
-    VOLK_GEN_TEST("volk_test_all"
+    VOLK_GEN_TEST(volk_test_all
         SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/testqa.cc
         ${CMAKE_CURRENT_SOURCE_DIR}/qa_utils.cc
         TARGET_DEPS volk
@@ -619,7 +633,7 @@ if(ENABLE_TESTING)
     foreach(kernel ${h_files})
       get_filename_component(kernel ${kernel} NAME)
       string(REPLACE ".h" "" kernel ${kernel})
-      VOLK_ADD_TEST(${kernel} "volk_test_all")
+      VOLK_ADD_TEST(${kernel} volk_test_all)
     endforeach()
 
 endif(ENABLE_TESTING)
diff --git a/lib/qa_utils.h b/lib/qa_utils.h
index bab07ca..2d8458b 100644
--- a/lib/qa_utils.h
+++ b/lib/qa_utils.h
@@ -142,14 +142,6 @@ bool run_volk_tests(
         bool benchmark_mode = false
 );
 
-
-#define VOLK_RUN_TESTS(func, tol, scalar, len, iter) \
-    BOOST_AUTO_TEST_CASE(func##_test) { \
-        BOOST_CHECK_EQUAL(run_volk_tests( \
-            func##_get_func_desc(), (void (*)())func##_manual, \
-            std::string(#func), tol, scalar, len, iter, 0, "NULL"), \
-          0); \
-    }
 #define VOLK_PROFILE(func, test_params, results) run_volk_tests(func##_get_func_desc(), (void (*)())func##_manual, std::string(#func), test_params, results, "NULL")
 #define VOLK_PUPPET_PROFILE(func, puppet_master_func, test_params, results) run_volk_tests(func##_get_func_desc(), (void (*)())func##_manual, std::string(#func), test_params, results, std::string(#puppet_master_func))
 typedef void (*volk_fn_1arg)(void *, unsigned int, const char*); //one input, operate in place
diff --git a/python/volk_modtool/volk_modtool_generate.py b/python/volk_modtool/volk_modtool_generate.py
index 3fd67d6..280a1bb 100644
--- a/python/volk_modtool/volk_modtool_generate.py
+++ b/python/volk_modtool/volk_modtool_generate.py
@@ -31,7 +31,6 @@ class volk_modtool(object):
         self.volk = re.compile('volk')
         self.remove_after_underscore = re.compile("_.*")
         self.volk_included = re.compile('INCLUDED_VOLK')
-        self.volk_run_tests = re.compile(r'^\s*VOLK_RUN_TESTS.*\n', re.MULTILINE)
         self.volk_profile = re.compile(r'^\s*(VOLK_PROFILE|VOLK_PUPPET_PROFILE).*\n', re.MULTILINE)
         self.volk_kernel_tests = re.compile(r'^\s*\((VOLK_INIT_TEST|VOLK_INIT_PUPP).*\n', re.MULTILINE)
         self.volk_null_kernel = re.compile(r'^\s*;\n', re.MULTILINE)