From 846f2be14f5d00a097c734944fc03f7d001b4db7 Mon Sep 17 00:00:00 2001 From: tyler-yankee Date: Thu, 13 Feb 2025 10:06:03 -0500 Subject: [PATCH 1/4] add solver_disabled_test --- drake_cmake_external/CMakeLists.txt | 1 + .../drake_external_examples/CMakeLists.txt | 10 ++++++++++ .../solver_disabled_test.py | 17 +++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 drake_cmake_external/drake_external_examples/solver_disabled_test.py diff --git a/drake_cmake_external/CMakeLists.txt b/drake_cmake_external/CMakeLists.txt index ccbbe301..d91c6b78 100644 --- a/drake_cmake_external/CMakeLists.txt +++ b/drake_cmake_external/CMakeLists.txt @@ -112,6 +112,7 @@ ExternalProject_Add(drake -DWITH_USER_EIGEN:BOOLEAN=ON -DWITH_USER_FMT:BOOLEAN=ON -DWITH_USER_SPDLOG:BOOLEAN=ON + -DWITH_CSDP:BOOLEAN=OFF PREFIX "${DRAKE_PREFIX}" BINARY_DIR "${PROJECT_BINARY_DIR}/drake" BUILD_ALWAYS ON diff --git a/drake_cmake_external/drake_external_examples/CMakeLists.txt b/drake_cmake_external/drake_external_examples/CMakeLists.txt index 681a961d..d1f236a1 100644 --- a/drake_cmake_external/drake_external_examples/CMakeLists.txt +++ b/drake_cmake_external/drake_external_examples/CMakeLists.txt @@ -27,3 +27,13 @@ set_tests_properties(import_all_test PROPERTIES ENVIRONMENT "PYTHONPATH=${DRAKE_PYTHONPATH}" ) +add_test(NAME solver_disabled_test + COMMAND Python3::Interpreter -B -m unittest solver_disabled_test +) +set_tests_properties(solver_disabled_test PROPERTIES + ENVIRONMENT "PYTHONPATH=${DRAKE_PYTHONPATH}" + LABELS small + REQUIRED_FILES "${CMAKE_CURRENT_SOURCE_DIR}/solver_disabled_test.py" + TIMEOUT 60 + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" +) diff --git a/drake_cmake_external/drake_external_examples/solver_disabled_test.py b/drake_cmake_external/drake_external_examples/solver_disabled_test.py new file mode 100644 index 00000000..4f4bc2e2 --- /dev/null +++ b/drake_cmake_external/drake_external_examples/solver_disabled_test.py @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: MIT-0 + +""" +Provides an example of disabling the open-source CSDP solver. +""" + +import unittest + +from pydrake.solvers import CsdpSolver + +class TestCsdpSolver(unittest.TestCase): + def test_unavailable(self): + solver = CsdpSolver() + self.assertFalse(solver.available()) + +if __name__ == '__main__': + unittest.main() From 7e717a9fffd3b2fa91dad79784494afcd5ba3425 Mon Sep 17 00:00:00 2001 From: tyler-yankee Date: Fri, 14 Feb 2025 07:47:58 -0500 Subject: [PATCH 2/4] use development branch of Drake (temp) --- drake_cmake_external/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drake_cmake_external/CMakeLists.txt b/drake_cmake_external/CMakeLists.txt index d91c6b78..d3f6e8f0 100644 --- a/drake_cmake_external/CMakeLists.txt +++ b/drake_cmake_external/CMakeLists.txt @@ -95,11 +95,11 @@ set(DRAKE_PREFIX "${PROJECT_BINARY_DIR}/drake-prefix") ExternalProject_Add(drake DEPENDS eigen fmt spdlog - URL https://github.com/RobotLocomotion/drake/archive/master.tar.gz + # URL https://github.com/RobotLocomotion/drake/archive/master.tar.gz # Or from a commit (download and use "shasum -a 256 'xxx.tar.gz'" on it to # get the URL_HASH. - # URL https://github.com/RobotLocomotion/drake/archive/65c4366ea2b63278a286b1e22b8d464d50fbe365.tar.gz - # URL_HASH SHA256=899d98485522a7cd5251e50a7a6b8a64e40aff2a3af4951a3f0857fd938cafca + URL https://github.com/RobotLocomotion/drake/archive/f848b02282cda2128475aa9a10db704a086b9752.tar.gz + URL_HASH SHA256=baee279a679268eddb98fa8ec0356dae8ec0e86520e80e5559e73030f9c8cca2 TLS_VERIFY ON CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} From 0d468e63453cf0e2ad6141de3293db1d5900908d Mon Sep 17 00:00:00 2001 From: tyler-yankee Date: Thu, 20 Feb 2025 10:32:59 -0500 Subject: [PATCH 3/4] add comments to CMakeLists and the unit test for solver option --- drake_cmake_external/CMakeLists.txt | 4 ++++ .../drake_external_examples/solver_disabled_test.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drake_cmake_external/CMakeLists.txt b/drake_cmake_external/CMakeLists.txt index d3f6e8f0..94d3c9ec 100644 --- a/drake_cmake_external/CMakeLists.txt +++ b/drake_cmake_external/CMakeLists.txt @@ -112,6 +112,10 @@ ExternalProject_Add(drake -DWITH_USER_EIGEN:BOOLEAN=ON -DWITH_USER_FMT:BOOLEAN=ON -DWITH_USER_SPDLOG:BOOLEAN=ON + # The Drake build has options to turn features on/off. + # See https://drake.mit.edu/from_source.html for the full list. + # Here, we demonstrate how to set an arbitrary option + # for one of the open-source dependencies. -DWITH_CSDP:BOOLEAN=OFF PREFIX "${DRAKE_PREFIX}" BINARY_DIR "${PROJECT_BINARY_DIR}/drake" diff --git a/drake_cmake_external/drake_external_examples/solver_disabled_test.py b/drake_cmake_external/drake_external_examples/solver_disabled_test.py index 4f4bc2e2..02c672dc 100644 --- a/drake_cmake_external/drake_external_examples/solver_disabled_test.py +++ b/drake_cmake_external/drake_external_examples/solver_disabled_test.py @@ -1,7 +1,8 @@ # SPDX-License-Identifier: MIT-0 """ -Provides an example of disabling the open-source CSDP solver. +Our CMakeLists.txt file disabled the CSDP solver as part of the Drake build. +Here, we'll check that the opt-out succeeded. """ import unittest From 0bb71ce6060212b330c32f2e5118f8ef0c74d0e5 Mon Sep 17 00:00:00 2001 From: tyler-yankee Date: Thu, 20 Feb 2025 11:41:48 -0500 Subject: [PATCH 4/4] update temporary commit of Drake to test new option --- drake_cmake_external/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drake_cmake_external/CMakeLists.txt b/drake_cmake_external/CMakeLists.txt index 94d3c9ec..9f06db89 100644 --- a/drake_cmake_external/CMakeLists.txt +++ b/drake_cmake_external/CMakeLists.txt @@ -98,8 +98,8 @@ ExternalProject_Add(drake # URL https://github.com/RobotLocomotion/drake/archive/master.tar.gz # Or from a commit (download and use "shasum -a 256 'xxx.tar.gz'" on it to # get the URL_HASH. - URL https://github.com/RobotLocomotion/drake/archive/f848b02282cda2128475aa9a10db704a086b9752.tar.gz - URL_HASH SHA256=baee279a679268eddb98fa8ec0356dae8ec0e86520e80e5559e73030f9c8cca2 + URL https://github.com/RobotLocomotion/drake/archive/565130305be05a4d2071761442ae93ce5aadbcb7.tar.gz + URL_HASH SHA256=787c57af97eb267d8a980595a612964cc598f7350b3bbfacaf5743ea60c360ab TLS_VERIFY ON CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}