[project] name = "DART" version = "6.15.0" description = "Dynamic Animation and Robotics Toolkit" authors = ["Jeongseok Lee <jslee02@gmail.com>"] channels = ["conda-forge"] platforms = ["linux-64", "osx-64", "osx-arm64", "win-64"] [build-dependencies] benchmark = ">=1.9.1,<2" black = ">=24.10.0,<25" cmake = ">=3.31.5,<4" doxygen = ">=1.13.2,<2" gtest = ">=1.15.2,<2" isort = ">=6.0.0,<7" ninja = ">=1.12.1,<2" pip = ">=25.0,<26" pipx = ">=1.7.1,<2" pkg-config = ">=0.29.2,<0.30" pytest = ">=8.3.4,<9" setuptools = ">=75.8.0,<76" tracy-profiler-gui = ">=0.11.1,<0.12" [dependencies] assimp = ">=5.4.3,<6" bullet-cpp = ">=3.25,<4" console_bridge = ">=1.0.2,<2" eigen = ">=3.4.0,<4" fcl = ">=0.7.0,<0.8" fmt = ">=11.0.2,<12" imgui = ">=1.91.6,<2" ipopt = ">=3.14.17,<4" libboost-devel = ">=1.86.0,<2" libode = ">=0.16.5,<0.17" nlopt = ">=2.9.0,<3" numpy = ">=1.26.4,<3" octomap = ">=1.10.0,<2" openscenegraph = ">=3.6.5,<4" pagmo-devel = ">=2.19.1,<3" spdlog = ">=1.15.0,<2" tinyxml2 = ">=10.0.0,<11" tracy-profiler-client = ">=0.11.1,<0.12" urdfdom = ">=4.0.1,<5" [tasks] clean = { cmd = "rm -rf build && rm -rf .deps && rm -rf .pixi && rm pixi.lock" } config = { cmd = """ cmake \ -G Ninja \ -S . \ -B build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ -DCMAKE_BUILD_TYPE=$BUILD_TYPE \ -DCMAKE_PREFIX_PATH=$CONDA_PREFIX \ -DDART_BUILD_PROFILE=ON \ -DDART_USE_SYSTEM_GOOGLEBENCHMARK=ON \ -DDART_USE_SYSTEM_GOOGLETEST=ON \ -DDART_USE_SYSTEM_IMGUI=ON \ -DDART_USE_SYSTEM_TRACY=ON \ -DDART_VERBOSE=$DART_VERBOSE """, env = { DART_VERBOSE = "OFF", BUILD_TYPE = "Release" } } lint-cpp = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target format """, depends-on = ["config"] } lint-py = { cmd = """ black . --exclude '\\..*' \ && isort . --skip-glob '.*' """, depends-on = ["config"] } lint = { depends-on = ["lint-cpp", "lint-py"] } check-lint-cpp = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target check-format """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } check-lint-py = { cmd = """ black . --check --exclude '\\..*' \ && isort . --check --skip-glob '.*' """, depends-on = ["config"] } check-lint = { depends-on = ["check-lint-cpp", "check-lint-py"] } build = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ -j \ --target all """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } build-tests = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ -j \ --target tests """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } build-dartpy = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ -j \ --target dartpy """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } test = { cmd = """ ctest \ --test-dir build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --output-on-failure """, depends-on = ["build-tests"], env = { BUILD_TYPE = "Release" } } test-dartpy = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ -j \ --target pytest """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } test-all = { cmd = """ cmake --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE -j --target ALL """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } ex = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target $EXE \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/$EXE """, depends-on = [ "config", ], env = { EXE = "hello_world", BUILD_TYPE = "Release" } } ex-atlas-puppet = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target atlas_puppet \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/atlas_puppet """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } ex-atlas-simbicon = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target atlas_simbicon \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/atlas_simbicon """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } ex-hello-world = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target hello_world \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/hello_world """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } bm = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target BM_INTEGRATION_$EXE \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/BM_INTEGRATION_$EXE """, depends-on = ["config"], env = { EXE = "empty", BUILD_TYPE = "Release" } } bm-boxes = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target BM_INTEGRATION_boxes \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/BM_INTEGRATION_boxes """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } bm-empty = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target BM_INTEGRATION_empty \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/BM_INTEGRATION_empty """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } bm-kinematics = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target BM_INTEGRATION_kinematics \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/BM_INTEGRATION_kinematics """, depends-on = [ "config", ], env = { BUILD_TYPE = "Release" } } tu-biped = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target tutorial_biped \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/tutorial_biped """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-biped-fi = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target tutorial_biped_finished \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/tutorial_biped_finished """, depends-on = [ "config", ], env = { BUILD_TYPE = "Release" } } tu-collisions = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target tutorial_collisions \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/tutorial_collisions """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-collisions-fi = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target tutorial_collisions_finished \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/tutorial_collisions_finished """, depends-on = [ "config", ], env = { BUILD_TYPE = "Release" } } tu-dominoes = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target tutorial_dominoes \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/tutorial_dominoes """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-dominoes-fi = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target tutorial_dominoes_finished \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/tutorial_dominoes_finished """, depends-on = [ "config", ], env = { BUILD_TYPE = "Release" } } tu-multi-pendulum = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target tutorial_multi_pendulum \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/tutorial_multi_pendulum """, depends-on = [ "config", ], env = { BUILD_TYPE = "Release" } } tu-multi-pendulum-fi = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target tutorial_multi_pendulum_finished \ --parallel \ && ./build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE/bin/tutorial_multi_pendulum_finished """, depends-on = [ "config", ], env = { BUILD_TYPE = "Release" } } install = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp/$BUILD_TYPE \ --target install \ --parallel \ """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tracy = { cmd = "tracy-profiler" } ################################################################################ # linux-64 ################################################################################ [target.linux-64.build-dependencies] clang-format-14 = ">=14.0.6,<15" [target.linux-64.dependencies] freeglut = ">=3.2.2,<3.3" ################################################################################ # osx-64 ################################################################################ [target.osx-64.build-dependencies] clang-format-14 = ">=14.0.6,<15" [target.osx-64.dependencies] [target.osx-64.tasks] ################################################################################ # osx-arm64 ################################################################################ [target.osx-arm64.build-dependencies] clang-format-14 = ">=14.0.6,<15" [target.osx-arm64.dependencies] [target.osx-arm64.tasks] ################################################################################ # win-64 ################################################################################ [target.win-64.dependencies] freeglut = ">=3.2.2" [target.win-64.tasks] config = { cmd = """ cmake \ -S . \ -B build/$PIXI_ENVIRONMENT_NAME/cpp \ -G 'Visual Studio 17 2022' \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX \ -DCMAKE_PREFIX_PATH=$CONDA_PREFIX \ -DDART_BUILD_PROFILE=ON \ -DDART_MSVC_DEFAULT_OPTIONS=ON \ -DDART_USE_SYSTEM_GOOGLEBENCHMARK=ON \ -DDART_USE_SYSTEM_GOOGLETEST=ON \ -DDART_USE_SYSTEM_IMGUI=ON \ -DDART_USE_SYSTEM_TRACY=ON \ -DDART_VERBOSE=$DART_VERBOSE """, env = { DART_VERBOSE = "OFF" } } lint-py = { cmd = """ black . --exclude '\\..*' && isort . --skip-glob '.*' """, depends-on = ["config"] } lint = { depends-on = ["lint-py"] } check-lint-py = { cmd = """ black . --check --exclude '\\..*' && isort . --check --skip-glob '.*' """, depends-on = ["config"] } check-lint = { depends-on = ["check-lint-py"] } build = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ -j """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } build-tests = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ -j \ --target tests """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } build-dartpy = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ -j \ --target dartpy """, depends-on = ["config"] } test = { cmd = """ ctest \ --test-dir build/$PIXI_ENVIRONMENT_NAME/cpp \ --build-config $BUILD_TYPE \ --output-on-failure """, depends-on = ["build-tests"], env = { BUILD_TYPE = "Release" } } test-dartpy = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ -j \ --target pytest """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } test-all = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ -j \ --target ALL """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-biped = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ --target tutorial_biped \ --parallel \ && build/$BUILD_TYPE/tutorial_biped.exe """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-biped-fi = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ --target tutorial_biped_finished \ --parallel \ && build/$BUILD_TYPE/tutorial_biped.exe """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-collisions = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ --target tutorial_collisions \ --parallel \ && build/$BUILD_TYPE/tutorial_collisions.exe """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-collisions-fi = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ --target tutorial_collisions_finished \ --parallel \ && build/$BUILD_TYPE/tutorial_collisions.exe """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-dominoes = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ --target tutorial_dominoes \ --parallel \ && build/$BUILD_TYPE/tutorial_dominoes.exe """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-dominoes-fi = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ --target tutorial_dominoes_finished \ --parallel \ && build/$BUILD_TYPE/tutorial_dominoes.exe """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-multi-pendulum = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ --target tutorial_multi_pendulum \ --parallel \ && build/$BUILD_TYPE/tutorial_multi_pendulum.exe """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } tu-multi-pendulum-fi = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ --target tutorial_multi_pendulum_finished \ --parallel \ && build/$BUILD_TYPE/tutorial_multi_pendulum.exe """, depends-on = ["config"], env = { BUILD_TYPE = "Release" } } install = { cmd = """ cmake \ --build build/$PIXI_ENVIRONMENT_NAME/cpp \ --config $BUILD_TYPE \ -j \ --target install """, depends-on = ["build"], env = { BUILD_TYPE = "Release" } } tracy = { cmd = "tracy-profiler.exe" }