From 846f2be14f5d00a097c734944fc03f7d001b4db7 Mon Sep 17 00:00:00 2001 From: tyler-yankee Date: Thu, 13 Feb 2025 10:06:03 -0500 Subject: [PATCH 1/8] 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/8] 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/8] 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/8] 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} From 294b836401227952a038f309fc50ae70aee44c46 Mon Sep 17 00:00:00 2001 From: tyler-yankee Date: Fri, 21 Feb 2025 09:58:16 -0500 Subject: [PATCH 5/8] fix BOOL/BOOLEAN syntax in CMakeLists --- drake_cmake_external/CMakeLists.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drake_cmake_external/CMakeLists.txt b/drake_cmake_external/CMakeLists.txt index 9f06db89..32b24970 100644 --- a/drake_cmake_external/CMakeLists.txt +++ b/drake_cmake_external/CMakeLists.txt @@ -28,7 +28,7 @@ include(ExternalProject) # This shows how to fetch Eigen from source as part of Drake's CMake build. # If you'd rather just use your operating system's Eigen, then this stanza could -# be removed (as well as removing -DWITH_USER_EIGEN:BOOLEAN=ON, below). +# be removed (as well as removing -DWITH_USER_EIGEN:BOOL=ON, below). ExternalProject_Add(eigen URL https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz URL_HASH SHA256=8586084f71f9bde545ee7fa6d00288b264a2b7ac3607b974e54d13e7162c1c72 @@ -45,7 +45,7 @@ ExternalProject_Add(eigen # This shows how to rebuild fmt from source as part of Drake's CMake build. # If you'd rather just use your operating system's fmt, then this stanza could -# be removed (as well as removing -DWITH_USER_FMT:BOOLEAN=ON, below). +# be removed (as well as removing -DWITH_USER_FMT:BOOL=ON, below). # If you rebuild fmt from source, then you must also rebuild spdlog from source. ExternalProject_Add(fmt URL https://github.com/fmtlib/fmt/archive/refs/tags/6.1.2.tar.gz @@ -67,7 +67,7 @@ ExternalProject_Add(fmt # This shows how to rebuild spdlog from source as part of Drake's CMake build. # If you'd rather just use your operating system's fmt, then this stanza could -# be removed (as well as removing -DWITH_USER_SPDLOG:BOOLEAN=ON, below). +# be removed (as well as removing -DWITH_USER_SPDLOG:BOOL=ON, below). # If you rebuild spdlog from source, then you must also rebuild fmt from source. ExternalProject_Add(spdlog DEPENDS fmt @@ -83,7 +83,7 @@ ExternalProject_Add(spdlog -DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} -DSPDLOG_BUILD_SHARED=ON -DCMAKE_CXX_FLAGS:STRING=-fPIC - -DSPDLOG_FMT_EXTERNAL:BOOLEAN=ON + -DSPDLOG_FMT_EXTERNAL:BOOL=ON -Dfmt_DIR=${CMAKE_INSTALL_PREFIX}/lib/cmake/fmt ) @@ -109,14 +109,14 @@ ExternalProject_Add(drake -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} -DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE} -DPYTHON_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} - -DWITH_USER_EIGEN:BOOLEAN=ON - -DWITH_USER_FMT:BOOLEAN=ON - -DWITH_USER_SPDLOG:BOOLEAN=ON + -DWITH_USER_EIGEN:BOOL=ON + -DWITH_USER_FMT:BOOL=ON + -DWITH_USER_SPDLOG:BOOL=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 + -DWITH_CSDP:BOOL=OFF PREFIX "${DRAKE_PREFIX}" BINARY_DIR "${PROJECT_BINARY_DIR}/drake" BUILD_ALWAYS ON From e077e65a05c9f75147f7a9a4d0f1d461a12a5b8a Mon Sep 17 00:00:00 2001 From: tyler-yankee Date: Mon, 24 Feb 2025 08:16:16 -0500 Subject: [PATCH 6/8] update temporary commit of Drake (CI test) --- 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 32b24970..9c0d9dc0 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/565130305be05a4d2071761442ae93ce5aadbcb7.tar.gz - URL_HASH SHA256=787c57af97eb267d8a980595a612964cc598f7350b3bbfacaf5743ea60c360ab + URL https://github.com/RobotLocomotion/drake/archive/9f58df5932f703162641e639ecaf1e732074aee7.tar.gz + URL_HASH SHA256=2de69323ccd2abb94891074c7ad225a02e0d7cd4f9363c43beb36c1944df3e06 TLS_VERIFY ON CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} From 29aa298b4e37c6c08d8f9dad93ffa0a1e7032874 Mon Sep 17 00:00:00 2001 From: Jeremy Nimmer Date: Tue, 25 Feb 2025 07:06:39 -0800 Subject: [PATCH 7/8] revert back to drake master --- 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 9c0d9dc0..05d96869 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/9f58df5932f703162641e639ecaf1e732074aee7.tar.gz - URL_HASH SHA256=2de69323ccd2abb94891074c7ad225a02e0d7cd4f9363c43beb36c1944df3e06 + # URL https://github.com/RobotLocomotion/drake/archive/65c4366ea2b63278a286b1e22b8d464d50fbe365.tar.gz + # URL_HASH SHA256=899d98485522a7cd5251e50a7a6b8a64e40aff2a3af4951a3f0857fd938cafca TLS_VERIFY ON CMAKE_ARGS -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} From aa7ea68f54026b98d6018478e42c71c3b72581fa Mon Sep 17 00:00:00 2001 From: Jeremy Nimmer Date: Tue, 25 Feb 2025 07:07:11 -0800 Subject: [PATCH 8/8] rewrap comment to 80 --- drake_cmake_external/CMakeLists.txt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drake_cmake_external/CMakeLists.txt b/drake_cmake_external/CMakeLists.txt index 05d96869..aed8cb21 100644 --- a/drake_cmake_external/CMakeLists.txt +++ b/drake_cmake_external/CMakeLists.txt @@ -112,10 +112,9 @@ ExternalProject_Add(drake -DWITH_USER_EIGEN:BOOL=ON -DWITH_USER_FMT:BOOL=ON -DWITH_USER_SPDLOG:BOOL=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. + # The Drake build has options to turn features on/off. For the full list, + # see https://drake.mit.edu/from_source.html. Here, we demonstrate how to + # set an arbitrary option for one of the open-source dependencies. -DWITH_CSDP:BOOL=OFF PREFIX "${DRAKE_PREFIX}" BINARY_DIR "${PROJECT_BINARY_DIR}/drake"