@ -1,50 +1,54 @@
# D e t e c t s w h e t h e r t h i s i s a t o p - l e v e l p r o j e c t
get_directory_property ( HAS_PARENT PARENT_DIRECTORY )
if ( HAS_PARENT )
if ( HAS_PARENT )
set ( RIGID_IPC_TOPLEVEL_PROJECT OFF )
else ( )
else ( )
set ( RIGID_IPC_TOPLEVEL_PROJECT ON )
endif ( )
endif ( )
# C h e c k r e q u i r e d C M a k e v e r s i o n
set ( REQUIRED_CMAKE_VERSION "3.14.0" )
if ( RIGID_IPC_TOPLEVEL_PROJECT )
if ( RIGID_IPC_TOPLEVEL_PROJECT )
cmake_minimum_required ( VERSION ${ REQUIRED_CMAKE_VERSION } )
else ( )
else ( )
# D o n ' t u s e c m a k e _ m i n i m u m _ r e q u i r e d h e r e t o a v o i d i m p l i c i t l y o v e r r i d i n g p a r e n t p o l i c i e s
if ( ${ CMAKE_VERSION } VERSION_LESS ${ REQUIRED_CMAKE_VERSION } )
if ( ${ CMAKE_VERSION } VERSION_LESS ${ REQUIRED_CMAKE_VERSION } )
message ( FATAL_ERROR "CMake required version to build Rigid IPC is ${REQUIRED_CMAKE_VERSION}" )
endif ( )
endif ( )
endif ( )
endif ( )
# I n c l u d e u s e r - p r o v i d e d d e f a u l t o p t i o n s i f a v a i l a b l e . W e d o t h a t b e f o r e t h e m a i n
# ` project ( ) ` s o t h a t w e c a n d e f i n e t h e C / C + + c o m p i l e r s f r o m t h e o p t i o n f i l e .
if ( EXISTS ${ CMAKE_CURRENT_SOURCE_DIR } /RigidIPCOptions.cmake )
if ( EXISTS ${ CMAKE_CURRENT_SOURCE_DIR } /RigidIPCOptions.cmake )
message ( STATUS "Using local options file: ${CMAKE_CURRENT_SOURCE_DIR}/RigidIPCOptions.cmake" )
include ( ${ CMAKE_CURRENT_SOURCE_DIR } /RigidIPCOptions.cmake )
endif ( )
endif ( )
# E d i t s t a r t
set ( CMAKE_EXPORT_COMPILE_COMMANDS ON )
# E d i t e n d
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
project ( RigidIPC
D E S C R I P T I O N " R o b u s t , i n t e r s e c t i o n - f r e e , s i m u l a t i o n s o f r i g i d b o d i e s . "
L A N G U A G E S C X X )
option ( RIGID_IPC_WITH_UNIT_TESTS "Build unit-tests" ${ RIGID_IPC_TOPLEVEL_PROJECT } )
option ( RIGID_IPC_WITH_OPENGL "Build GUI" ${ RIGID_IPC_TOPLEVEL_PROJECT } )
option ( RIGID_IPC_WITH_TOOLS "Build tools" ${ RIGID_IPC_TOPLEVEL_PROJECT } )
option ( RIGID_IPC_WITH_PROFILING "Profile functions" OFF )
option ( RIGID_IPC_WITH_COMPARISONS "Build comparisons" OFF )
option ( RIGID_IPC_WITH_SIMD "Enable SIMD" OFF )
option ( RIGID_IPC_WITH_PYTHON "Build Python bindings" OFF )
option ( RIGID_IPC_WITH_DERIVATIVE_CHECK "Check derivatives using finite differences" OFF )
option ( RIGID_IPC_WITH_UNIT_TESTS "Build unit-tests" ${ RIGID_IPC_TOPLEVEL_PROJECT } )
option ( RIGID_IPC_WITH_OPENGL "Build GUI" ${ RIGID_IPC_TOPLEVEL_PROJECT } )
option ( RIGID_IPC_WITH_TOOLS "Build tools" ${ RIGID_IPC_TOPLEVEL_PROJECT } )
option ( RIGID_IPC_WITH_PROFILING "Profile functions" OFF )
option ( RIGID_IPC_WITH_COMPARISONS "Build comparisons" OFF )
option ( RIGID_IPC_WITH_SIMD "Enable SIMD" OFF )
option ( RIGID_IPC_WITH_PYTHON "Build Python bindings" OFF )
option ( RIGID_IPC_WITH_DERIVATIVE_CHECK "Check derivatives using finite differences" OFF )
# S e t d e f a u l t m i n i m u m C + + s t a n d a r d
if ( RIGID_IPC_TOPLEVEL_PROJECT )
if ( RIGID_IPC_TOPLEVEL_PROJECT )
set ( CMAKE_CXX_STANDARD 14 )
set ( CMAKE_CXX_STANDARD_REQUIRED ON )
set ( CMAKE_CXX_EXTENSIONS OFF )
endif ( )
endif ( )
list ( APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/rigid_ipc/" )
list ( APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/recipes/" )
@ -63,21 +67,21 @@ mark_as_advanced(CLEAR CMAKE_BUILD_TYPE)
# l i b i g l o p t i o n s
option ( LIBIGL_USE_STATIC_LIBRARY "Use libigl as static library" OFF )
option ( LIBIGL_WITH_PREDICATES "Use exact predicates" ON )
option ( LIBIGL_WITH_PREDICATES "Use exact predicates" ON )
set ( LIBIGL_WITH_OPENGL_GLFW_IMGUI ${ RIGID_IPC_WITH_OPENGL } CACHE BOOL "Use OpenGL" FORCE )
set ( LIBIGL_WITH_OPENGL_GLFW ${ RIGID_IPC_WITH_OPENGL } CACHE BOOL "Use GLFW" FORCE )
set ( LIBIGL_WITH_OPENGL ${ RIGID_IPC_WITH_OPENGL } CACHE BOOL "Use IMGUI" FORCE )
set ( LIBIGL_WITH_PNG ${ RIGID_IPC_WITH_OPENGL } CACHE BOOL "Use PNG" FORCE )
set ( LIBIGL_WITH_OPENGL_GLFW ${ RIGID_IPC_WITH_OPENGL } CACHE BOOL "Use GLFW" FORCE )
set ( LIBIGL_WITH_OPENGL ${ RIGID_IPC_WITH_OPENGL } CACHE BOOL "Use IMGUI" FORCE )
set ( LIBIGL_WITH_PNG ${ RIGID_IPC_WITH_OPENGL } CACHE BOOL "Use PNG" FORCE )
# P o l y S o l v e s e t t i n g s
option ( POLYSOLVE_WITH_CHOLMOD "Enable Cholmod library" ON )
option ( POLYSOLVE_WITH_UMFPACK "Enable UmfPack library" OFF )
option ( POLYSOLVE_WITH_SUPERLU "Enable SuperLU library" OFF )
option ( POLYSOLVE_WITH_MKL "Enable MKL library" OFF )
option ( POLYSOLVE_WITH_PARDISO "Enable Pardiso library" OFF )
option ( POLYSOLVE_WITH_HYPRE "Enable hypre" OFF )
option ( POLYSOLVE_WITH_AMGCL "Use AMGCL" OFF )
option ( POLYSOLVE_WITH_SPECTRA "Enable computing spectrum" OFF )
option ( POLYSOLVE_WITH_CHOLMOD "Enable Cholmod library" ON )
option ( POLYSOLVE_WITH_UMFPACK "Enable UmfPack library" OFF )
option ( POLYSOLVE_WITH_SUPERLU "Enable SuperLU library" OFF )
option ( POLYSOLVE_WITH_MKL "Enable MKL library" OFF )
option ( POLYSOLVE_WITH_PARDISO "Enable Pardiso library" OFF )
option ( POLYSOLVE_WITH_HYPRE "Enable hypre" OFF )
option ( POLYSOLVE_WITH_AMGCL "Use AMGCL" OFF )
option ( POLYSOLVE_WITH_SPECTRA "Enable computing spectrum" OFF )
set ( TIGHT_INCLUSION_WITH_NO_ZERO_TOI OFF CACHE BOOL "Enable refinement if CCD produces a zero ToI" FORCE )
@ -86,74 +90,74 @@ set(TIGHT_INCLUSION_WITH_NO_ZERO_TOI OFF CACHE BOOL "Enable refinement if CCD pr
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
add_library ( ipc_rigid
s r c / a u t o d i f f / a u t o d i f f . c p p
s r c / u t i l s / s i n c . c p p
s r c / c c d / i m p a c t . c p p
s r c / c c d / c c d . c p p
s r c / c c d / l i n e a r / b r o a d _ p h a s e . c p p
s r c / c c d / p i e c e w i s e _ l i n e a r / t i m e _ o f _ i m p a c t . c p p
s r c / i n t e r v a l / f i l i b _ r o u n d i n g . c p p
s r c / i n t e r v a l / i n t e r v a l _ r o o t _ f i n d e r . c p p
s r c / c c d / r i g i d / b r o a d _ p h a s e . c p p
s r c / c c d / r i g i d / r i g i d _ b o d y _ h a s h _ g r i d . c p p
s r c / c c d / r i g i d / r i g i d _ b o d y _ b v h . c p p
s r c / c c d / r i g i d / t i m e _ o f _ i m p a c t . c p p
s r c / c c d / r i g i d / r i g i d _ t r a j e c t o r y _ a a b b . c p p
s r c / c c d / r e d o n / t i m e _ o f _ i m p a c t . c p p
s r c / c c d / s a v e _ q u e r i e s . c p p
s r c / g e o m e t r y / i n t e r s e c t i o n . c p p
s r c / i o / s e r i a l i z e _ j s o n . c p p
s r c / i o / r e a d _ r b _ s c e n e . c p p
s r c / i o / r e a d _ o b j . c p p
s r c / i o / w r i t e _ o b j . c p p
s r c / i o / w r i t e _ g l t f . c p p
s r c / p h y s i c s / m a s s . c p p
s r c / u t i l s / m e s h _ s e l e c t o r . c p p
s r c / p h y s i c s / r i g i d _ b o d y . c p p
s r c / p h y s i c s / r i g i d _ b o d y _ a s s e m b l e r . c p p
s r c / p h y s i c s / r i g i d _ b o d y _ p r o b l e m . c p p
s r c / b a r r i e r / b a r r i e r . c p p
s r c / b a r r i e r / b a r r i e r _ c h o r n e r . c p p
s r c / o p t / d i s t a n c e _ b a r r i e r _ c o n s t r a i n t . c p p
s r c / o p t / c o l l i s i o n _ c o n s t r a i n t . c p p
s r c / o p t / o p t i m i z a t i o n _ p r o b l e m . c p p
s r c / o p t / o p t i m i z a t i o n _ r e s u l t s . c p p
s r c / p r o b l e m s / b a r r i e r _ p r o b l e m . c p p
s r c / s o l v e r s / n e w t o n _ s o l v e r . c p p
s r c / s o l v e r s / i p c _ s o l v e r . c p p
s r c / s o l v e r s / h o m o t o p y _ s o l v e r . c p p
s r c / s o l v e r s / s o l v e r _ f a c t o r y . c p p
# s r c / s o l v e r s / l i n e _ s e a r c h . c p p
s r c / p r o b l e m s / r i g i d _ b o d y _ c o l l i s i o n _ c o n s t r a i n t . c p p
s r c / p r o b l e m s / d i s t a n c e _ b a r r i e r _ r b _ p r o b l e m . c p p
s r c / p r o b l e m s / s p l i t _ d i s t a n c e _ b a r r i e r _ r b _ p r o b l e m . c p p
s r c / p r o b l e m s / p r o b l e m _ f a c t o r y . c p p
s r c / t i m e _ s t e p p e r / s y m p l e t i c _ e u l e r _ t i m e _ s t e p p e r . c p p
s r c / t i m e _ s t e p p e r / v e r l e t _ t i m e _ s t e p p e r . c p p
s r c / t i m e _ s t e p p e r / e x p o n e n t i a l _ e u l e r _ t i m e _ s t e p p e r . c p p
s r c / t i m e _ s t e p p e r / d m v _ t i m e _ s t e p p e r . c p p
s r c / t i m e _ s t e p p e r / t i m e _ s t e p p e r _ f a c t o r y . c p p
s r c / u t i l s / t e n s o r . c p p
s r c / u t i l s / e i g e n _ e x t . c p p
s r c / u t i l s / r e g u l a r _ 2 d _ g r i d . c p p
s r c / u t i l s / g e t _ r s s . c p p
s r c / S i m S t a t e . c p p
s r c / l o g g e r . c p p
s r c / p r o f i l e r . c p p
)
s r c / a u t o d i f f / a u t o d i f f . c p p
s r c / u t i l s / s i n c . c p p
s r c / c c d / i m p a c t . c p p
s r c / c c d / c c d . c p p
s r c / c c d / l i n e a r / b r o a d _ p h a s e . c p p
s r c / c c d / p i e c e w i s e _ l i n e a r / t i m e _ o f _ i m p a c t . c p p
s r c / i n t e r v a l / f i l i b _ r o u n d i n g . c p p
s r c / i n t e r v a l / i n t e r v a l _ r o o t _ f i n d e r . c p p
s r c / c c d / r i g i d / b r o a d _ p h a s e . c p p
s r c / c c d / r i g i d / r i g i d _ b o d y _ h a s h _ g r i d . c p p
s r c / c c d / r i g i d / r i g i d _ b o d y _ b v h . c p p
s r c / c c d / r i g i d / t i m e _ o f _ i m p a c t . c p p
s r c / c c d / r i g i d / r i g i d _ t r a j e c t o r y _ a a b b . c p p
s r c / c c d / r e d o n / t i m e _ o f _ i m p a c t . c p p
s r c / c c d / s a v e _ q u e r i e s . c p p
s r c / g e o m e t r y / i n t e r s e c t i o n . c p p
s r c / i o / s e r i a l i z e _ j s o n . c p p
s r c / i o / r e a d _ r b _ s c e n e . c p p
s r c / i o / r e a d _ o b j . c p p
s r c / i o / w r i t e _ o b j . c p p
s r c / i o / w r i t e _ g l t f . c p p
s r c / p h y s i c s / m a s s . c p p
s r c / u t i l s / m e s h _ s e l e c t o r . c p p
s r c / p h y s i c s / r i g i d _ b o d y . c p p
s r c / p h y s i c s / r i g i d _ b o d y _ a s s e m b l e r . c p p
s r c / p h y s i c s / r i g i d _ b o d y _ p r o b l e m . c p p
s r c / b a r r i e r / b a r r i e r . c p p
s r c / b a r r i e r / b a r r i e r _ c h o r n e r . c p p
s r c / o p t / d i s t a n c e _ b a r r i e r _ c o n s t r a i n t . c p p
s r c / o p t / c o l l i s i o n _ c o n s t r a i n t . c p p
s r c / o p t / o p t i m i z a t i o n _ p r o b l e m . c p p
s r c / o p t / o p t i m i z a t i o n _ r e s u l t s . c p p
s r c / p r o b l e m s / b a r r i e r _ p r o b l e m . c p p
s r c / s o l v e r s / n e w t o n _ s o l v e r . c p p
s r c / s o l v e r s / i p c _ s o l v e r . c p p
s r c / s o l v e r s / h o m o t o p y _ s o l v e r . c p p
s r c / s o l v e r s / s o l v e r _ f a c t o r y . c p p
# s r c / s o l v e r s / l i n e _ s e a r c h . c p p
s r c / p r o b l e m s / r i g i d _ b o d y _ c o l l i s i o n _ c o n s t r a i n t . c p p
s r c / p r o b l e m s / d i s t a n c e _ b a r r i e r _ r b _ p r o b l e m . c p p
s r c / p r o b l e m s / s p l i t _ d i s t a n c e _ b a r r i e r _ r b _ p r o b l e m . c p p
s r c / p r o b l e m s / p r o b l e m _ f a c t o r y . c p p
s r c / t i m e _ s t e p p e r / s y m p l e t i c _ e u l e r _ t i m e _ s t e p p e r . c p p
s r c / t i m e _ s t e p p e r / v e r l e t _ t i m e _ s t e p p e r . c p p
s r c / t i m e _ s t e p p e r / e x p o n e n t i a l _ e u l e r _ t i m e _ s t e p p e r . c p p
s r c / t i m e _ s t e p p e r / d m v _ t i m e _ s t e p p e r . c p p
s r c / t i m e _ s t e p p e r / t i m e _ s t e p p e r _ f a c t o r y . c p p
s r c / u t i l s / t e n s o r . c p p
s r c / u t i l s / e i g e n _ e x t . c p p
s r c / u t i l s / r e g u l a r _ 2 d _ g r i d . c p p
s r c / u t i l s / g e t _ r s s . c p p
s r c / S i m S t a t e . c p p
s r c / l o g g e r . c p p
s r c / p r o f i l e r . c p p
)
target_include_directories ( ipc_rigid PUBLIC src )
add_library ( ipc::rigid ALIAS ipc_rigid )
@ -168,14 +172,14 @@ add_library(ipc::rigid ALIAS ipc_rigid)
set ( RIGID_IPC_MESH_DIR ${ CMAKE_CURRENT_SOURCE_DIR } /meshes )
target_compile_definitions ( ipc_rigid PUBLIC RIGID_IPC_MESHES_DIR=\ "${RIGID_IPC_MESH_DIR}\" )
if ( RIGID_IPC_WITH_DERIVATIVE_CHECK )
target_compile_definitions ( ipc_rigid PUBLIC RIGID_IPC_WITH_DERIVATIVE_CHECK )
endif ( )
if ( RIGID_IPC_WITH_DERIVATIVE_CHECK )
target_compile_definitions ( ipc_rigid PUBLIC RIGID_IPC_WITH_DERIVATIVE_CHECK )
endif ( )
if ( RIGID_IPC_WITH_PROFILING )
message ( STATUS "Profiling Enabled" )
target_compile_definitions ( ipc_rigid PUBLIC RIGID_IPC_PROFILE_FUNCTIONS )
endif ( )
if ( RIGID_IPC_WITH_PROFILING )
message ( STATUS "Profiling Enabled" )
target_compile_definitions ( ipc_rigid PUBLIC RIGID_IPC_PROFILE_FUNCTIONS )
endif ( )
# F o r MSVC , d o n o t u s e t h e m i n a n d m a x m a c r o s .
target_compile_definitions ( ipc_rigid PUBLIC NOMINMAX )
@ -192,10 +196,10 @@ target_link_libraries(ipc_rigid PRIVATE ipc::rigid::warnings)
include ( eigen )
include ( libigl )
target_link_libraries ( ipc_rigid PUBLIC
E i g e n 3 : : E i g e n
i g l : : c o r e
i g l : : p r e d i c a t e s
)
E i g e n 3 : : E i g e n
i g l : : c o r e
i g l : : p r e d i c a t e s
)
# J S O N P a r s e r
include ( json )
@ -250,26 +254,26 @@ target_link_libraries(ipc_rigid PUBLIC ghc::filesystem)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # S I M D s u p p o r t
if ( RIGID_IPC_WITH_SIMD )
# F i g u r e o u t S S E l e v e l s u p p o r t
message ( STATUS "Seaching for SSE..." )
find_package ( SSE )
# A p p l e b r o k e A V X i n s t r u c t i o n s w i t h c l a n g :
# h t t p s : / / g i t l a b . c o m / l i b e i g e n / e i g e n / - / c o m m i t / 7 1 a a 5 3 d d 6 d f d c 4 9 7 3 2 4 d 9 e 8 7 f 5 9 c 4 b a 8 2 0 1 9 1 8 5 6
if ( NOT APPLE )
# F i g u r e o u t A V X l e v e l s u p p o r t
message ( STATUS "Searching for AVX..." )
find_package ( AVX )
# F i g u r e o u t F M A l e v e l s u p p o r t
message ( STATUS "Searching for FMA..." )
find_package ( FMA )
else ( )
message ( WARNING "Disabling AVX support: clang compiler shipped with XCode 11.[012] generates broken assembly with -macosx-version-min=10.15 and AVX enabled." )
endif ( )
# A d d S S E , A V X , a n d F M A f l a g s t o c o m p i l e r f l a g s
string ( REPLACE " " ";" SIMD_FLAGS "${SSE_FLAGS} ${AVX_FLAGS} ${FMA_FLAGS}" )
target_compile_options ( ipc_rigid PUBLIC ${ SIMD_FLAGS } )
endif ( )
if ( RIGID_IPC_WITH_SIMD )
# F i g u r e o u t S S E l e v e l s u p p o r t
message ( STATUS "Seaching for SSE..." )
find_package ( SSE )
# A p p l e b r o k e A V X i n s t r u c t i o n s w i t h c l a n g :
# h t t p s : / / g i t l a b . c o m / l i b e i g e n / e i g e n / - / c o m m i t / 7 1 a a 5 3 d d 6 d f d c 4 9 7 3 2 4 d 9 e 8 7 f 5 9 c 4 b a 8 2 0 1 9 1 8 5 6
if ( NOT APPLE )
# F i g u r e o u t A V X l e v e l s u p p o r t
message ( STATUS "Searching for AVX..." )
find_package ( AVX )
# F i g u r e o u t F M A l e v e l s u p p o r t
message ( STATUS "Searching for FMA..." )
find_package ( FMA )
else ( )
message ( WARNING "Disabling AVX support: clang compiler shipped with XCode 11.[012] generates broken assembly with -macosx-version-min=10.15 and AVX enabled." )
endif ( )
# A d d S S E , A V X , a n d F M A f l a g s t o c o m p i l e r f l a g s
string ( REPLACE " " ";" SIMD_FLAGS "${SSE_FLAGS} ${AVX_FLAGS} ${FMA_FLAGS}" )
target_compile_options ( ipc_rigid PUBLIC ${ SIMD_FLAGS } )
endif ( )
# U s e C + + 1 7
target_compile_features ( ipc_rigid PUBLIC cxx_std_17 )
@ -279,45 +283,48 @@ target_compile_features(ipc_rigid PUBLIC cxx_std_17)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
add_executable ( rigid_ipc_sim src/main.cpp )
if ( RIGID_IPC_WITH_OPENGL )
if ( RIGID_IPC_WITH_OPENGL )
target_sources ( rigid_ipc_sim PUBLIC
s r c / v i e w e r / i m g u i _ e x t . c p p
s r c / v i e w e r / i g l _ v i e w e r _ e x t . c p p
s r c / v i e w e r / U I S i m S t a t e . c p p
s r c / v i e w e r / U I M e n u . c p p
)
endif ( )
s r c / v i e w e r / i m g u i _ e x t . c p p
s r c / v i e w e r / i g l _ v i e w e r _ e x t . c p p
s r c / v i e w e r / U I S i m S t a t e . c p p
s r c / v i e w e r / U I M e n u . c p p
# E d i t s t a r t
s r c / v i e w e r / U I S t a t i c S i m S t a t e . c p p
# E d i t e n d
)
endif ( )
target_link_libraries ( rigid_ipc_sim PUBLIC ipc::rigid )
include ( cli11 )
target_link_libraries ( rigid_ipc_sim PUBLIC CLI11::CLI11 )
if ( RIGID_IPC_WITH_OPENGL )
if ( RIGID_IPC_WITH_OPENGL )
target_compile_definitions ( rigid_ipc_sim PUBLIC RIGID_IPC_WITH_OPENGL )
include ( libigl )
target_link_libraries ( rigid_ipc_sim PUBLIC
i g l : : o p e n g l i g l : : o p e n g l _ g l f w i g l : : o p e n g l _ g l f w _ i m g u i i g l : : p n g )
i g l : : o p e n g l i g l : : o p e n g l _ g l f w i g l : : o p e n g l _ g l f w _ i m g u i i g l : : p n g )
# C h a r l i e T a n g o r a ' s g i f - h l i b r a r y
include ( gif_h )
target_link_libraries ( rigid_ipc_sim PRIVATE gif_h::gif_h )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# T o o l s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( RIGID_IPC_WITH_TOOLS )
add_subdirectory ( src/tools )
endif ( )
if ( RIGID_IPC_WITH_TOOLS )
add_subdirectory ( src/tools )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# T e s t s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# E n a b l e u n i t t e s t i n g a t t h e r o o t l e v e l
if ( RIGID_IPC_WITH_UNIT_TESTS )
if ( RIGID_IPC_WITH_UNIT_TESTS )
include ( CTest )
enable_testing ( )
@ -327,19 +334,23 @@ if(RIGID_IPC_WITH_UNIT_TESTS)
include ( "${catch2_SOURCE_DIR}/contrib/Catch.cmake" )
add_subdirectory ( tests )
endif ( )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# C o m p a r i s o n s t o o t h e r m e t h o d s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( RIGID_IPC_WITH_COMPARISONS )
add_subdirectory ( comparisons )
endif ( )
if ( RIGID_IPC_WITH_COMPARISONS )
add_subdirectory ( comparisons )
endif ( )
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# P y t h o n b i n d i n g s
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if ( RIGID_IPC_WITH_PYTHON )
add_subdirectory ( python )
endif ( )
if ( RIGID_IPC_WITH_PYTHON )
add_subdirectory ( python )
endif ( )
add_subdirectory ( src )
add_subdirectory ( engine )
add_subdirectory ( static_sim )