Преглед изворни кода

Make MSYS2 in windows happy.

jcsyshc пре 2 година
родитељ
комит
df253e9d92
4 измењених фајлова са 62 додато и 45 уклоњено
  1. 36 0
      src/algorithm/algorithm_defs.cpp
  2. 2 30
      src/core/global_defs.cpp
  3. 4 3
      src/core/small_obj.hpp
  4. 20 12
      src/utility/assert_utility.h

+ 36 - 0
src/algorithm/algorithm_defs.cpp

@@ -0,0 +1,36 @@
+#include "algorithm/five_dof_offset_calculator.hpp"
+#include "algorithm/tcp_offset_to_flange_calculator.hpp"
+#include "algorithm/transform_utility.hpp"
+#include "core/global_defs.h"
+
+#if !SOPHIAR_TEST || SOPHIAR_TEST_ALGORITHM
+
+DEFAULT_TRISTATE_OBJ_DEF(transform_tree)
+DEFAULT_TRISTATE_OBJ_DEF(transform_stabilizer)
+DEFAULT_TRISTATE_OBJ_DEF(landmark_registration)
+
+#endif
+
+namespace sophiar {
+
+    void register_algorithms() {
+#if !SOPHIAR_TEST || SOPHIAR_TEST_ALGORITHM
+
+        REGISTER_TYPE(transform_tree);
+        REGISTER_TYPE(transform_stabilizer);
+        REGISTER_TYPE(landmark_registration);
+        // control utility
+        using five_dof_offset_calculator = simple_tristate_obj_wrapper<make_5dof_offset_calculator_func>;
+        using tcp_offset_to_flange_calculator = simple_tristate_obj_wrapper<make_tcp_offset_to_flange_calculator_func>;
+        REGISTER_TYPE(five_dof_offset_calculator);
+        REGISTER_TYPE(tcp_offset_to_flange_calculator);
+        // transform utility
+        using transform_inverter = simple_tristate_obj_wrapper<make_transform_inverter_func>;
+        using scalarxyz_transformer = simple_tristate_obj_wrapper<make_scalarxyz_transformer>;
+        REGISTER_TYPE(transform_inverter);
+        REGISTER_TYPE(scalarxyz_transformer);
+
+#endif
+    }
+
+}

+ 2 - 30
src/core/global_defs.cpp

@@ -1,7 +1,4 @@
 #include "global_defs.h"
-#include "algorithm/five_dof_offset_calculator.hpp"
-#include "algorithm/tcp_offset_to_flange_calculator.hpp"
-#include "algorithm/transform_utility.hpp"
 #include "controller/simple_offset_to_pose_controller.hpp"
 #include "core/external_controller.h"
 #include "core/external_variable_io.h"
@@ -20,14 +17,6 @@
 
 #endif // BOOST_OS_WINDOWS_AVAILABLE
 
-#if !SOPHIAR_TEST || SOPHIAR_TEST_ALGORITHM
-
-DEFAULT_TRISTATE_OBJ_DEF(transform_tree)
-DEFAULT_TRISTATE_OBJ_DEF(transform_stabilizer)
-DEFAULT_TRISTATE_OBJ_DEF(landmark_registration)
-
-#endif
-
 #if !SOPHIAR_TEST || SOPHIAR_TEST_ROBOT
 
 DEFAULT_TRISTATE_OBJ_DEF(ur_interface)
@@ -76,25 +65,8 @@ namespace sophiar {
 #undef REGISTER_VARIABLE_TYPE
     }
 
-    void register_algorithms() {
-#if !SOPHIAR_TEST || SOPHIAR_TEST_ALGORITHM
-
-        REGISTER_TYPE(transform_tree);
-        REGISTER_TYPE(transform_stabilizer);
-        REGISTER_TYPE(landmark_registration);
-        // control utility
-        using five_dof_offset_calculator = simple_tristate_obj_wrapper<make_5dof_offset_calculator_func>;
-        using tcp_offset_to_flange_calculator = simple_tristate_obj_wrapper<make_tcp_offset_to_flange_calculator_func>;
-        REGISTER_TYPE(five_dof_offset_calculator);
-        REGISTER_TYPE(tcp_offset_to_flange_calculator);
-        // transform utility
-        using transform_inverter = simple_tristate_obj_wrapper<make_transform_inverter_func>;
-        using scalarxyz_transformer = simple_tristate_obj_wrapper<make_scalarxyz_transformer>;
-        REGISTER_TYPE(transform_inverter);
-        REGISTER_TYPE(scalarxyz_transformer);
-
-#endif
-    }
+    // prevent this file from being too big.
+    void register_algorithms();
 
     void register_controllers() {
         using simple_offset_to_pose_controller

+ 4 - 3
src/core/small_obj.hpp

@@ -33,7 +33,8 @@ namespace sophiar {
         using pointer = boost::intrusive_ptr<DeriveT>;
         using allocator_type = boost::object_pool<DeriveT>;
 
-        static allocator_type allocator;
+//      static allocator_type allocator;
+        inline static allocator_type allocator;
 
         template<typename... Args>
         std::enable_if_t<std::is_constructible_v<DeriveT, Args...>, pointer>
@@ -45,8 +46,8 @@ namespace sophiar {
 
     };
 
-    template<typename DeriveT>
-    typename small_obj<DeriveT>::allocator_type small_obj<DeriveT>::allocator{};
+//    template<typename DeriveT>
+//    typename small_obj<DeriveT>::allocator_type small_obj<DeriveT>::allocator{};
 
 #define FORWARD_CONSTRUCT(DerivedT, BaseT) \
 template<typename... Args> \

+ 20 - 12
src/utility/assert_utility.h

@@ -1,20 +1,28 @@
+#include <boost/predef.h>
 #include <cassert>
 #include "third_party/debugbreak.h"
 
 #undef assert
 
 #ifdef NDEBUG
-#define assert(_Expression) ((void)0)
+    #define assert(_Expression) ((void)0)
 #else /* !defined (NDEBUG) */
-#if defined(_UNICODE) || defined(UNICODE)
-#define assert(_Expression) \
- (void) \
- ((!!(_Expression)) || \
-  (debug_break(),_wassert(_CRT_WIDE(#_Expression),_CRT_WIDE(__FILE__),__LINE__),0))
-#else /* not unicode */
-#define assert(_Expression) \
- (void) \
- ((!!(_Expression)) || \
-  (debug_break(),__assert(#_Expression,__FILE__,__LINE__),0))
-#endif /* _UNICODE||UNICODE */
+    #ifdef BOOST_OS_WINDOWS_AVAILABLE
+        #if defined(_UNICODE) || defined(UNICODE)
+            #define assert(_Expression) \
+                (void) \
+                ((!!(_Expression)) || \
+                (debug_break(),_wassert(_CRT_WIDE(#_Expression),_CRT_WIDE(__FILE__),__LINE__),0))
+        #else /* not unicode */
+            #define assert(_Expression) \
+                (void) \
+                ((!!(_Expression)) || \
+                (debug_break(),_assert(#_Expression,__FILE__,__LINE__),0))
+        #endif /* _UNICODE||UNICODE */
+    #else /* BOOST_OS_WINDOWS_AVAILABLE */
+        #define assert(_Expression) \
+            (void) \
+            ((!!(_Expression)) || \
+            (debug_break(),__assert(#_Expression,__FILE__,__LINE__),0))
+    #endif /* BOOST_OS_WINDOWS_AVAILABLE */
 #endif /* !defined (NDEBUG) */