Revision: 75880
          http://sourceforge.net/p/brlcad/code/75880
Author:   starseeker
Date:     2020-05-21 16:34:29 +0000 (Thu, 21 May 2020)
Log Message:
-----------
Merge changes from trunk through r75879, except for libdm/libfb changes (which 
will need to be reworked for the new dm-fb setup once complete and working in 
trunk.)

Modified Paths:
--------------
    brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Targets.cmake
    brlcad/branches/dm-fb-merge/regress/CMakeLists.txt
    brlcad/branches/dm-fb-merge/regress/icv/CMakeLists.txt
    brlcad/branches/dm-fb-merge/regress/licenses/CMakeLists.txt
    brlcad/branches/dm-fb-merge/regress/mged/CMakeLists.txt
    brlcad/branches/dm-fb-merge/regress/nurbs/CMakeLists.txt
    brlcad/branches/dm-fb-merge/regress/repository/CMakeLists.txt
    brlcad/branches/dm-fb-merge/regress/repository/repocheck.cpp
    brlcad/branches/dm-fb-merge/regress/rtwizard/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/art/art.h
    brlcad/branches/dm-fb-merge/src/libdm/tests/tcl_img.cpp

Added Paths:
-----------
    brlcad/branches/dm-fb-merge/regress/pkg/

Property Changed:
----------------
    brlcad/branches/dm-fb-merge/
    brlcad/branches/dm-fb-merge/regress/

Index: brlcad/branches/dm-fb-merge
===================================================================
--- brlcad/branches/dm-fb-merge 2020-05-21 15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge 2020-05-21 16:34:29 UTC (rev 75880)

Property changes on: brlcad/branches/dm-fb-merge
___________________________________________________________________
Modified: svn:mergeinfo
## -8,4 +8,4 ##
 /brlcad/branches/osg:62110-62113
 /brlcad/branches/prep-cache:68236-68933
 /brlcad/branches/tcltk86:68300-75257
-/brlcad/trunk:75440-75822
\ No newline at end of property
+/brlcad/trunk:75440-75879
\ No newline at end of property
Modified: brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Targets.cmake
===================================================================
--- brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Targets.cmake 2020-05-21 
15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Targets.cmake 2020-05-21 
16:34:29 UTC (rev 75880)
@@ -464,6 +464,13 @@
     add_library(${libname}-obj OBJECT ${lsrcslist})
     set(lsrcslist $<TARGET_OBJECTS:${libname}-obj>)
     set_target_properties(${libname}-obj PROPERTIES FOLDER "BRL-CAD OBJECT 
Libraries${SUBFOLDER}")
+
+    if(CPP_DLL_DEFINES)
+      string(REPLACE "lib" "" LOWERCORE "${libname}")
+      string(TOUPPER ${LOWERCORE} UPPER_CORE)
+      set_property(TARGET ${libname}-obj APPEND PROPERTY COMPILE_DEFINITIONS 
"${UPPER_CORE}_DLL_EXPORTS")
+    endif(CPP_DLL_DEFINES)
+
     if(NOT "${libslist}" STREQUAL "" AND NOT "${libslist}" STREQUAL "NONE")
       foreach(ll ${libslist})
        if (TARGET ${ll})
@@ -471,10 +478,14 @@
        endif (TARGET ${ll})
       endforeach(ll ${libslist})
     endif(NOT "${libslist}" STREQUAL "" AND NOT "${libslist}" STREQUAL "NONE")
+
   endif(USE_OBJECT_LIBS)
 
+  # Handle the shared library
   if(L_SHARED OR (BUILD_SHARED_LIBS AND NOT L_STATIC))
+
     add_library(${libname} SHARED ${lsrcslist} ${L_SHARED_SRCS})
+
     if(CPP_DLL_DEFINES)
       string(REPLACE "lib" "" LOWERCORE "${libname}")
       string(TOUPPER ${LOWERCORE} UPPER_CORE)
@@ -481,6 +492,7 @@
       set_property(TARGET ${libname} APPEND PROPERTY COMPILE_DEFINITIONS 
"${UPPER_CORE}_DLL_EXPORTS")
       set_property(GLOBAL APPEND PROPERTY ${libname}_DLL_DEFINES 
"${UPPER_CORE}_DLL_IMPORTS")
     endif(CPP_DLL_DEFINES)
+
   endif(L_SHARED OR (BUILD_SHARED_LIBS AND NOT L_STATIC))
 
   if(L_STATIC OR (BUILD_STATIC_LIBS AND NOT L_SHARED))

Index: brlcad/branches/dm-fb-merge/regress
===================================================================
--- brlcad/branches/dm-fb-merge/regress 2020-05-21 15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/regress 2020-05-21 16:34:29 UTC (rev 75880)

Property changes on: brlcad/branches/dm-fb-merge/regress
___________________________________________________________________
Modified: svn:mergeinfo
## -7,4 +7,4 ##
 /brlcad/branches/osg/regress:62110-62113
 /brlcad/branches/prep-cache/regress:68236-68933
 /brlcad/branches/tcltk86/regress:68300-75257
-/brlcad/trunk/regress:75512-75597,75630-75822
\ No newline at end of property
+/brlcad/trunk/regress:75512-75597,75630-75879
\ No newline at end of property
Modified: brlcad/branches/dm-fb-merge/regress/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/regress/CMakeLists.txt  2020-05-21 15:19:09 UTC 
(rev 75879)
+++ brlcad/branches/dm-fb-merge/regress/CMakeLists.txt  2020-05-21 16:34:29 UTC 
(rev 75880)
@@ -1,22 +1,40 @@
-macro(Add_Regression_Test testname depends_list)
-  CMAKE_PARSE_ARGUMENTS(${testname} "EXCLUDE_FROM_REGRESS" "" "" ${ARGN})
-  set_target_properties(regress-${testname} PROPERTIES FOLDER "BRL-CAD 
Regression Tests")
-  if(NOT ${testname}_EXCLUDE_FROM_REGRESS)
+function(Add_Regression_Test testname depends_list)
+
+  cmake_parse_arguments(${testname} "EXCLUDE_FROM_REGRESS" "" "" ${ARGN})
+
+  set_target_properties(regress-${testname} PROPERTIES 
EXCLUDE_FROM_DEFAULT_BUILD 1)
+
+  if (NOT ${testname}_EXCLUDE_FROM_REGRESS)
+
+    # Make sure we at least get this into the regression test folder - local
+    # subdirectories may override this if they have more specific locations
+    # they want to use.
+    set_target_properties(regress-${testname} PROPERTIES FOLDER "BRL-CAD 
Regression Tests/regress")
+
     set_tests_properties(regress-${testname} PROPERTIES LABELS "Regression")
-  else(NOT ${testname}_EXCLUDE_FROM_REGRESS)
+
+  else (NOT ${testname}_EXCLUDE_FROM_REGRESS)
+
+    set_target_properties(regress-${testname} PROPERTIES FOLDER "BRL-CAD 
Regression Tests")
+
     set_tests_properties(regress-${testname} PROPERTIES LABELS "NOT_WORKING")
-  endif(NOT ${testname}_EXCLUDE_FROM_REGRESS)
-  if(NOT "${depends_list}" STREQUAL "")
+
+  endif (NOT ${testname}_EXCLUDE_FROM_REGRESS)
+
+  # Set up dependencies for both regress and check
+  if (NOT "${depends_list}" STREQUAL "")
     add_dependencies(regress ${depends_list})
-    if(TARGET check)
+    if (TARGET check)
       add_dependencies(check ${depends_list})
-    endif(TARGET check)
-  endif(NOT "${depends_list}" STREQUAL "")
-  if(NOT BRLCAD_DISABLE_REGRESS_TIMEOUT)
+    endif (TARGET check)
+  endif (NOT "${depends_list}" STREQUAL "")
+
+  if (NOT BRLCAD_DISABLE_REGRESS_TIMEOUT)
     set_tests_properties(regress-${testname} PROPERTIES TIMEOUT 300) # FIXME: 
want <60
-  endif(NOT BRLCAD_DISABLE_REGRESS_TIMEOUT)
-endmacro(Add_Regression_Test)
+  endif (NOT BRLCAD_DISABLE_REGRESS_TIMEOUT)
 
+endfunction(Add_Regression_Test)
+
 # Define the toplevel regression target - unless specifically excluded
 # via a macro argument, this should collect all regression targets.
 include(ProcessorCount)
@@ -42,6 +60,9 @@
 # NURBS Regression Tests
 add_subdirectory(nurbs)
 
+# libpkg Regression Tests
+add_subdirectory(pkg)
+
 # Burst Regression Tests
 add_subdirectory(burst)
 

Modified: brlcad/branches/dm-fb-merge/regress/icv/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/regress/icv/CMakeLists.txt      2020-05-21 
15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/regress/icv/CMakeLists.txt      2020-05-21 
16:34:29 UTC (rev 75880)
@@ -27,8 +27,8 @@
 
   add_test(NAME regress-icv-${testname} COMMAND "${CMAKE_COMMAND}" -P 
"${CMAKE_CURRENT_BINARY_DIR}/regress-${testname}.cmake")
   add_custom_target(regress-icv-${testname} DEPENDS ${deps_list} ${STAMP_FILE})
-  set_target_properties(regress-icv-${testname} PROPERTIES FOLDER "BRL-CAD 
Regression Tests")
   Add_Regression_Test(icv-${testname} "${deps_list}")
+  set_target_properties(regress-icv-${testname} PROPERTIES FOLDER "BRL-CAD 
Regression Tests/icv")
 
   add_dependencies(regress-icv regress-icv-${testname})
 

Modified: brlcad/branches/dm-fb-merge/regress/licenses/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/regress/licenses/CMakeLists.txt 2020-05-21 
15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/regress/licenses/CMakeLists.txt 2020-05-21 
16:34:29 UTC (rev 75880)
@@ -9,7 +9,7 @@
   # it - whether or not the standard build settings would add it.
   target_compile_options(lcheck PRIVATE "-O3")
 endif (O3_COMPILER_FLAG)
-set_target_properties(lcheck PROPERTIES FOLDER "BRL-CAD Regression Tests")
+set_target_properties(lcheck PROPERTIES FOLDER "BRL-CAD Regression 
Tests/licenses")
 
 # Get the list of embedded license files from doc/legal/embedded and generate
 # an input file for the regression test
@@ -29,7 +29,6 @@
           -DL_LIST=${LICENSE_LIST} -DF_LIST=${ALL_FILES_LIST}
            -P "${CMAKE_CURRENT_SOURCE_DIR}/regress-licenses.cmake"
   )
-set_tests_properties(regress-licenses PROPERTIES LABELS "Regression")
 
 if (CMAKE_CONFIGURATION_TYPES)
   add_custom_target(regress-licenses COMMAND ${CMAKE_CTEST_COMMAND} -C 
${CMAKE_CFG_INTDIR} -R ^regress-licenses --output-on-failure)
@@ -36,17 +35,15 @@
 else (CMAKE_CONFIGURATION_TYPES)
   add_custom_target(regress-licenses COMMAND ${CMAKE_CTEST_COMMAND} -R 
^regress-licenses --output-on-failure)
 endif (CMAKE_CONFIGURATION_TYPES)
-add_dependencies(regress-licenses repocheck)
-set_target_properties(regress-licenses PROPERTIES FOLDER "BRL-CAD Regression 
Tests")
-set_target_properties(regress-licenses PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
-add_dependencies(regress regress-licenses)
-add_dependencies(check regress-licenses)
 
+Add_Regression_Test(licenses "lcheck")
+
 CMAKEFILES(
   CMakeLists.txt
   licenses_check.cpp
   regress-licenses.cmake
   )
+
 # Local Variables:
 # tab-width: 8
 # mode: cmake

Modified: brlcad/branches/dm-fb-merge/regress/mged/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/regress/mged/CMakeLists.txt     2020-05-21 
15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/regress/mged/CMakeLists.txt     2020-05-21 
16:34:29 UTC (rev 75880)
@@ -102,7 +102,7 @@
         "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/mged" -c 
"${CMAKE_CURRENT_BINARY_DIR}/${G_FILENAME}" < 
"${CMAKE_CURRENT_BINARY_DIR}/regress_${testfile}"
     DEPENDS mged ${CMAKE_CURRENT_BINARY_DIR}/${G_FILENAME} ${test_prev}
     )
-  set_target_properties(regress-mged-${cmd_root} PROPERTIES FOLDER "BRL-CAD 
Regression Tests")
+  set_target_properties(regress-mged-${cmd_root} PROPERTIES FOLDER "BRL-CAD 
Regression Tests/MGED")
   set_target_properties(regress-mged-${cmd_root} PROPERTIES 
EXCLUDE_FROM_DEFAULT_BUILD 1)
   set(MGED_TEST_LIST ${MGED_TEST_LIST} regress-mged-${cmd_root})
   set(test_prev regress-mged-${cmd_root})

Modified: brlcad/branches/dm-fb-merge/regress/nurbs/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/regress/nurbs/CMakeLists.txt    2020-05-21 
15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/regress/nurbs/CMakeLists.txt    2020-05-21 
16:34:29 UTC (rev 75880)
@@ -19,8 +19,8 @@
     )
   add_test(NAME regress-nurbs-nirt-${testname} COMMAND "${CMAKE_COMMAND}" -P 
"${CMAKE_CURRENT_BINARY_DIR}/regress-nurbs-nirt-${testname}.cmake")
   add_custom_target(regress-nurbs-nirt-${testname} DEPENDS ${depends_list} 
${STAMP_FILE})
-  set_target_properties(regress-nurbs-nirt-${testname} PROPERTIES FOLDER 
"BRL-CAD Regression Tests")
   Add_Regression_Test(nurbs-nirt-${testname} "${depends_list}")
+  set_target_properties(regress-nurbs-nirt-${testname} PROPERTIES FOLDER 
"BRL-CAD Regression Tests/NURBS")
 
   add_dependencies(regress-nurbs regress-nurbs-nirt-${testname})
 

Modified: brlcad/branches/dm-fb-merge/regress/repository/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/regress/repository/CMakeLists.txt       
2020-05-21 15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/regress/repository/CMakeLists.txt       
2020-05-21 16:34:29 UTC (rev 75880)
@@ -10,7 +10,7 @@
   # it - whether or not the standard build settings would add it.
   target_compile_options(repocheck PRIVATE "-O3")
 endif (O3_COMPILER_FLAG)
-set_target_properties(repocheck PROPERTIES FOLDER "BRL-CAD Regression Tests")
+set_target_properties(repocheck PROPERTIES FOLDER "BRL-CAD Regression 
Tests/repository")
 
 set(ALL_FILES_LIST "${BRLCAD_BINARY_DIR}/cmakefiles.cmake")
 
@@ -21,7 +21,6 @@
   -DB_DIR=${BRLCAD_SOURCE_DIR}
   -P "${CMAKE_CURRENT_SOURCE_DIR}/regress-repository.cmake"
   )
-set_tests_properties(regress-repository PROPERTIES LABELS "Regression")
 
 if (CMAKE_CONFIGURATION_TYPES)
   add_custom_target(regress-repository COMMAND ${CMAKE_CTEST_COMMAND} -C 
${CMAKE_CFG_INTDIR} -R ^regress-repository --output-on-failure)
@@ -28,17 +27,15 @@
 else (CMAKE_CONFIGURATION_TYPES)
   add_custom_target(regress-repository COMMAND ${CMAKE_CTEST_COMMAND} -R 
^regress-repository --output-on-failure)
 endif (CMAKE_CONFIGURATION_TYPES)
-add_dependencies(regress-repository repocheck)
-set_target_properties(regress-repository PROPERTIES FOLDER "BRL-CAD Regression 
Tests")
-set_target_properties(regress-repository PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 
1)
-add_dependencies(regress regress-repository)
-add_dependencies(check regress-repository)
 
+Add_Regression_Test(repository "repocheck")
+
 CMAKEFILES(
   CMakeLists.txt
   repocheck.cpp
   regress-repository.cmake
   )
+
 # Local Variables:
 # tab-width: 8
 # mode: cmake

Modified: brlcad/branches/dm-fb-merge/regress/repository/repocheck.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/regress/repository/repocheck.cpp        
2020-05-21 15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/regress/repository/repocheck.cpp        
2020-05-21 16:34:29 UTC (rev 75880)
@@ -55,10 +55,12 @@
 #include <string>
 
 #include "bu/app.h"
+#include "bu/exit.h"
 #include "bu/mapped_file.h"
+#include "bu/str.h"
 
 #define MAX_LINES_CHECK 500
-#define EXPECTED_PLATFORM_SYMBOLS 206
+#define EXPECTED_PLATFORM_SYMBOLS 254
 
 class repo_info_t {
     public:
@@ -118,8 +120,12 @@
     {
        r.bio_regex = std::regex("#[[:space:]]*include[[:space:]]*\"bio.h\".*");
        const char *bio_filter_strs[] {
-           "stdio.h", "windows.h", "io.h", "unistd.h", "fcntl.h",
-               NULL
+           "fcntl.h",
+           "io.h",
+           "stdio.h",
+           "unistd.h",
+           "windows.h",
+           NULL
        };
        cnt = 0;
        rf = bio_filter_strs[cnt];
@@ -135,8 +141,11 @@
     {
        r.bnetwork_regex = 
std::regex("#[[:space:]]*include[[:space:]]*\"bnetwork.h\".*");
        const char *bnetwork_filter_strs[] {
-           "winsock2.h", "netinet/in.h", "netinet/tcp.h", "arpa/inet.h",
-               NULL
+           "winsock2.h",
+           "netinet/in.h",
+           "netinet/tcp.h",
+           "arpa/inet.h",
+           NULL
        };
        cnt = 0;
        rf = bnetwork_filter_strs[cnt];
@@ -152,14 +161,29 @@
     {
        r.common_regex = 
std::regex("#[[:space:]]*include[[:space:]]*\"common.h\".*");
        const char *common_exempt_filter_strs[] {
-           "bio.h", "bnetwork.h", "config_win.h", "csg_parser.c",
-               "csg_scanner.h", "obj_grammar.c", "obj_grammar.cpp",
-               "obj_libgcv_grammar.cpp", "obj_obj-g_grammar.cpp",
-               "obj_parser.h", "obj_rules.cpp", "obj_rules.l",
-               "obj_scanner.h", "obj_util.h", "optionparser.h", "pinttypes.h",
-               "points_scan.c", "pstdint.h", "schema.h", "script.c", "ttcp.c",
-               "uce-dirent.h",
-               NULL
+           "bio.h",
+           "bnetwork.h",
+           "config_win.h",
+           "csg_parser.c",
+           "csg_scanner.h",
+           "obj_grammar.c",
+           "obj_grammar.cpp",
+           "obj_libgcv_grammar.cpp",
+           "obj_obj-g_grammar.cpp",
+           "obj_parser.h",
+           "obj_rules.cpp",
+           "obj_rules.l",
+           "obj_scanner.h",
+           "obj_util.h",
+           "optionparser.h",
+           "pinttypes.h",
+           "points_scan.c",
+           "pstdint.h",
+           "schema.h",
+           "script.c",
+           "ttcp.c",
+           "uce-dirent.h",
+           NULL
        };
        cnt = 0;
        rf = common_exempt_filter_strs[cnt];
@@ -177,9 +201,16 @@
        r.main_regex = std::regex("(int)*[[:space:]]*main[[:space:]]*[(].*");
        r.setprogname_regex = 
std::regex("[[:space:]]*bu_setprogname[[:space:]]*[(].*");
        const char *setprogname_exempt_filter_strs[] {
-           "mt19937ar.c", "stb_truetype.h", "misc/", "sha1.c",
-               "licenses_check.cpp", "fftc.c", "ifftc.c", "fftest.c", "ttcp.c",
-               NULL
+           "fftc.c",
+           "fftest.c",
+           "ifftc.c",
+           "licenses_check.cpp",
+           "misc/",
+           "mt19937ar.c",
+           "sha1.c",
+           "stb_truetype.h",
+           "ttcp.c",
+           NULL
        };
        cnt = 0;
        rf = setprogname_exempt_filter_strs[cnt];
@@ -194,10 +225,14 @@
     /* API usage check regex */
     {
        const char *api_file_exemption_strs[] {
-           "CONFIG_CONTROL_DESIGN.*", "bu/log[.]h$", "bu/path[.]h$",
-               "bu/str[.]h$", "cursor[.]c$", "ttcp[.]c$",
-               "misc/CMake/compat/.*",
-               NULL
+           "CONFIG_CONTROL_DESIGN.*",
+           "bu/log[.]h$",
+           "bu/path[.]h$",
+           "bu/str[.]h$",
+           "cursor[.]c$",
+           "misc/CMake/compat/.*",
+           "ttcp[.]c$",
+           NULL
        };
        cnt = 0;
        rf = api_file_exemption_strs[cnt];
@@ -209,11 +244,27 @@
        }
 
        const char *api_func_strs[] {
-           "abort", "dirname", "fgets", "getopt", "qsort", "remove", "rmdir",
-               "strcasecmp", "strcat", "strcmp", "strcpy", "strdup",
-               "stricmp", "strlcat", "strlcpy", "strncasecmp", "strncat",
-               "strncmp", "strncpy", "unlink",
-               NULL
+           "abort",
+           "dirname",
+           "fgets",
+           "getopt",
+           "qsort",
+           "remove",
+           "rmdir",
+           "strcasecmp",
+           "strcat",
+           "strcmp",
+           "strcpy",
+           "strdup",
+           "stricmp",
+           "strlcat",
+           "strlcpy",
+           "strncasecmp",
+           "strncat",
+           "strncmp",
+           "strncpy",
+           "unlink",
+           NULL
        };
        cnt = 0;
        rf = api_func_strs[cnt];
@@ -244,10 +295,33 @@
     /* Platform symbol usage check regex */
     {
        const char *platform_strs[] {
-           "AIX", "APPLE", "CYGWIN", "DARWIN", "FREEBSD", "HAIKU", "HPUX",
-               "LINUX", "MINGW", "MSDOS", "QNX", "SGI", "SOLARIS", "SUN",
-               "SUNOS", "SVR4", "SYSV", "ULTRIX", "UNIX", "VMS", "WIN16",
-               "WIN32", "WIN64", "WINE", "WINNT", NULL
+           "AIX",
+           "APPLE",
+           "CYGWIN",
+           "DARWIN",
+           "FREEBSD",
+           "HAIKU",
+           "HPUX",
+           "LINUX",
+           "MINGW",
+           "MSDOS",
+           "MSVC",
+           "QNX",
+           "SGI",
+           "SOLARIS",
+           "SUN",
+           "SUNOS",
+           "SVR4",
+           "SYSV",
+           "ULTRIX",
+           "UNIX",
+           "VMS",
+           "WIN16",
+           "WIN32",
+           "WIN64",
+           "WINE",
+           "WINNT",
+           NULL
        };
        cnt = 0;
        rf = platform_strs[cnt];
@@ -263,9 +337,9 @@
 
        const char *platform_exemption_strs[] {
            ".*/pstdint[.]h$",
-               ".*/pinttypes[.]h$",
-               ".*/uce-dirent[.]h$",
-               NULL
+           ".*/pinttypes[.]h$",
+           ".*/uce-dirent[.]h$",
+           NULL
        };
        cnt = 0;
        rf = platform_exemption_strs[cnt];
@@ -702,13 +776,29 @@
 int
 main(int argc, const char *argv[])
 {
-    if (argc != 3) {
-       std::cerr << "Usage: repocheck file_list.txt source_dir\n";
+    int verbosity = 0;
+
+    if (argc < 3 || argc > 5) {
+       std::cerr << "Usage: repocheck [-v] file_list.txt source_dir\n";
        return -1;
     }
 
+
     bu_setprogname(argv[0]);
 
+    if (argc == 4) {
+       if (BU_STR_EQUAL(argv[1], "-v")) {
+           verbosity = 1;
+           for (int i = 2; i < argc; i++) {
+               argv[i-1] = argv[i];
+           }
+           argc--;
+       } else {
+           bu_exit(-1, "invalid option %s", argv[1]);
+       }
+    }
+
+
     repo_info_t repo_info;
     repo_info.path_root = std::string(argv[2]);
     regex_init(repo_info);
@@ -794,13 +884,15 @@
     int b_cnt = platform_symbols(repo_info, repo_info.symbol_bld_log, 
build_files);
     int psym_cnt = h_cnt + s_cnt + b_cnt;
     int expected_psym_cnt = EXPECTED_PLATFORM_SYMBOLS;
+    if (psym_cnt > expected_psym_cnt) {
+       ret = -1;
+    }
 
     if (psym_cnt < expected_psym_cnt) {
        std::cout << "\n\nNote: need to update EXPECTED_PLATFORM_SYMBOLS - 
looking for " << expected_psym_cnt << ", but only found " << psym_cnt << 
"\n\n\n";
     }
 
-
-    if (ret) {
+    if (ret || verbosity) {
        std::sort(repo_info.api_log.begin(), repo_info.api_log.end());
        std::sort(repo_info.bio_log.begin(), repo_info.bio_log.end());
        std::sort(repo_info.bnet_log.begin(), repo_info.bnet_log.end());
@@ -846,7 +938,9 @@
            std::cout << "FAILURE: expected " << expected_psym_cnt << " 
platform symbols, found " << psym_cnt << "\n";
            std::cout << 
"**************************************************************************\n";
            ret = 1;
+       }
 
+       if (psym_cnt > expected_psym_cnt || verbosity) {
            if (repo_info.symbol_inc_log.size()) {
                std::cout << "\nFound " << repo_info.symbol_inc_log.size() << " 
instances of platform symbol usage in header files:\n";
                for (size_t i = 0; i < repo_info.symbol_inc_log.size(); i++) {

Modified: brlcad/branches/dm-fb-merge/regress/rtwizard/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/regress/rtwizard/CMakeLists.txt 2020-05-21 
15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/regress/rtwizard/CMakeLists.txt 2020-05-21 
16:34:29 UTC (rev 75880)
@@ -35,8 +35,8 @@
 
   add_test(NAME regress-rtwizard-${testname} COMMAND "${CMAKE_COMMAND}" -P 
"${CMAKE_CURRENT_BINARY_DIR}/regress-${testname}.cmake")
   add_custom_target(regress-rtwizard-${testname} DEPENDS ${dep_list} 
${STAMP_FILE})
-  set_target_properties(regress-rtwizard-${testname} PROPERTIES FOLDER 
"BRL-CAD Regression Tests")
   Add_Regression_Test(rtwizard-${testname} "${dep_list}" EXCLUDE_FROM_REGRESS)
+  set_target_properties(regress-rtwizard-${testname} PROPERTIES FOLDER 
"BRL-CAD Regression Tests/rtwizard")
 
   foreach(tgt ${rtwizard_targets})
     add_dependencies(regress-rtwizard-${testname} ${tgt})

Modified: brlcad/branches/dm-fb-merge/src/art/art.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/art/art.h   2020-05-21 15:19:09 UTC (rev 
75879)
+++ brlcad/branches/dm-fb-merge/src/art/art.h   2020-05-21 16:34:29 UTC (rev 
75880)
@@ -111,8 +111,8 @@
 namespace asf = foundation;
 namespace asr = renderer;
 
-extern "C" int APPLESEED_DLL_EXPORT brlcad_hit(struct application* ap, struct 
partition* PartHeadp, struct seg* UNUSED(segs));
-extern "C" int APPLESEED_DLL_EXPORT brlcad_miss(struct application* 
UNUSED(ap));
+int APPLESEED_DLL_EXPORT brlcad_hit(struct application* ap, struct partition* 
PartHeadp, struct seg* UNUSED(segs));
+int APPLESEED_DLL_EXPORT brlcad_miss(struct application* UNUSED(ap));
 
 class APPLESEED_DLL_EXPORT BrlcadObject : public asr::ProceduralObject
 {

Modified: brlcad/branches/dm-fb-merge/src/libdm/tests/tcl_img.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libdm/tests/tcl_img.cpp     2020-05-21 
15:19:09 UTC (rev 75879)
+++ brlcad/branches/dm-fb-merge/src/libdm/tests/tcl_img.cpp     2020-05-21 
16:34:29 UTC (rev 75880)
@@ -146,6 +146,11 @@
     Tcl_MutexLock(&dilock);
     Tcl_MutexLock(&fblock);
 
+    // Render processing now - reset the ready flag
+    Tcl_MutexLock(&threadMutex);
+    idata->dm_render_ready = 0;
+    Tcl_MutexUnlock(&threadMutex);
+
     int width = idata->dm_bwidth;
     int height = idata->dm_bheight;
 
@@ -187,9 +192,6 @@
     fb_data.pixelPtr = idata->fbpixel;
     Tk_PhotoPutBlock(interp, dm_img, &fb_data, 0, 0, idata->fb_width, 
idata->fb_height, TK_PHOTO_COMPOSITE_OVERLAY);
 
-    // Render processed - reset the ready flag
-    idata->dm_render_ready = 0;
-
     Tcl_MutexUnlock(&dilock);
     Tcl_MutexUnlock(&fblock);
 
@@ -399,7 +401,9 @@
     // to start over.
     Tcl_MutexLock(&dilock);
     idata->dm_render_running = 0;
+    Tcl_MutexLock(&threadMutex);
     idata->dm_render_ready = 1;
+    Tcl_MutexUnlock(&threadMutex);
     Tcl_MutexUnlock(&dilock);
 
     // Generate an event for the manager thread to let it know we're done
@@ -432,7 +436,9 @@
     idata->fb_render_running = 1;
 
     // Until we're done, make sure nobody thinks we are ready
+    Tcl_MutexLock(&threadMutex);
     idata->fb_render_ready = 0;
+    Tcl_MutexUnlock(&threadMutex);
 
     // Lock in this width and height - that's what we've got memory for,
     // so that's what the remainder of this rendering pass will use.
@@ -482,7 +488,9 @@
 
     Tcl_MutexLock(&fblock);
     idata->fb_render_running = 0;
+    Tcl_MutexLock(&threadMutex);
     idata->fb_render_ready = 1;
+    Tcl_MutexUnlock(&threadMutex);
     Tcl_MutexUnlock(&fblock);
 
     // Generate an event for the manager thread to let it know we're done, if 
the
@@ -629,7 +637,9 @@
            Tcl_MutexUnlock(&threadMutex);
 
            // Go back to waiting.
+           Tcl_MutexLock(&threadMutex);
            idata->fb_render_ready = 0;
+           Tcl_MutexUnlock(&threadMutex);
            continue;
        }
 

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to