Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release new osqp-cpp version with osqp and suitesparse fixes #2419

Merged
merged 12 commits into from
Jul 15, 2024
8 changes: 8 additions & 0 deletions modules/osqp-cpp/0.0.0-20231004-4343373.bcr.1/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module(
name = "osqp-cpp",
version = "0.0.0-20231004-4343373.bcr.1",
)
bazel_dep(name = "abseil-cpp", version = "20240116.2")
bazel_dep(name = "eigen", version = "3.4.0.bcr.1")
bazel_dep(name = "osqp", version = "0.6.3.bcr.2")
bazel_dep(name = "rules_license", version = "0.0.8")
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- MODULE.bazel
+++ MODULE.bazel
@@ -0,0 +1,8 @@
+module(
+ name = "osqp-cpp",
+ version = "0.0.0-20231004-4343373.bcr.1",
+)
+bazel_dep(name = "abseil-cpp", version = "20240116.2")
+bazel_dep(name = "eigen", version = "3.4.0.bcr.1")
+bazel_dep(name = "osqp", version = "0.6.3.bcr.2")
+bazel_dep(name = "rules_license", version = "0.0.8")
18 changes: 18 additions & 0 deletions modules/osqp-cpp/0.0.0-20231004-4343373.bcr.1/presubmit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
matrix:
platform:
- debian10
- ubuntu2004
- macos
- macos_arm64
bazel:
- 7.x
- 6.x
tasks:
verify_targets:
name: Verify build targets
platform: ${{ platform }}
bazel: ${{ bazel }}
build_flags:
- '--cxxopt=-std=c++17'
build_targets:
- '@osqp-cpp//...'
10 changes: 10 additions & 0 deletions modules/osqp-cpp/0.0.0-20231004-4343373.bcr.1/source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"url": "https://github.com/google/osqp-cpp/archive/43433736334d6b515ea4b0247156fea9e56c0d3f.tar.gz",
"integrity": "sha256-Ye1aTRuJMM0T6u6Z/qZLAt8iCEzmRArQVxOUPAHkwSQ=",
"strip_prefix": "osqp-cpp-43433736334d6b515ea4b0247156fea9e56c0d3f",
"patches": {
"../../0.0.0-20231004-4343373/patches/add-build-file.patch": "sha256-h4DBMwvSkV+caG2l/KGwBnrrM0UcbdgjEr2Dn9YTZTw=",
"add_module_dot_bazel.patch": "sha256-UC3WaukJ3gDMF6gtUDkFJ6HpL/p6Y4d79uYnLRU34ds="
},
"patch_strip": 0
}
7 changes: 5 additions & 2 deletions modules/osqp-cpp/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
"github:google/osqp-cpp"
],
"versions": [
"0.0.0-20231004-4343373"
"0.0.0-20231004-4343373",
"0.0.0-20231004-4343373.bcr.1"
],
"yanked_versions": {}
"yanked_versions": {
"0.0.0-20231004-4343373": "Fails while linking due to dependency SuiteSparse and osqp not having appropriate defines. Use 0.0.0-20231004-4343373.bcr.1 instead."
}
}
7 changes: 7 additions & 0 deletions modules/osqp/0.6.3.bcr.2/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
module(name = "osqp", version = "0.6.3.bcr.2")

bazel_dep(name = "rules_cc", version = "0.0.9")
bazel_dep(name = "platforms", version = "0.0.8")
bazel_dep(name = "qdldl", version = "0.1.7.bcr.1")
bazel_dep(name = "suitesparse", version = "7.6.0.bcr.1")
bazel_dep(name = "cmake_configure_file", version = "0.1.0")
116 changes: 116 additions & 0 deletions modules/osqp/0.6.3.bcr.2/patches/add_build_file.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
diff --git BUILD.bazel BUILD.bazel
new file mode 100644
index 00000000..00cc62f8
--- /dev/null
+++ BUILD.bazel
@@ -0,0 +1,110 @@
+load("@rules_cc//cc:defs.bzl", "cc_library")
+
+package(default_visibility = ["//visibility:public"])
+
+licenses(["notice"])
+
+load(
+ "@cmake_configure_file//:cmake_configure_file.bzl",
+ "cmake_configure_file",
+)
+exports_files([
+ "include/osqp.h",
+ "include/ctrlc.h",
+])
+# Generates osqp_configure.h based on the defines= we want in Drake.
+cmake_configure_file(
+ name = "configure_file",
+ src = "configure/osqp_configure.h.in",
+ out = "include/osqp_configure.h",
+ defines = [
+ "PRINTING",
+ "PROFILING",
+ "CTRLC",
+ "DLONG",
+ # In addition to the default primitive size of `double` and `int`,
+ # also define 'DLONG' which is required for @osqp-cpp. Don't define
+ # 'DFLOAT' unless @qdldl_internal and @scs_internal are
+ # also changed to use those primitive sizes.
+ # See drake/tools/workspace/qdldl_internal/README.md.
+ ] + select({
+ "@platforms//os:windows": [
+ "IS_WINDOWS",
+ ],
+ "@platforms//os:osx": [
+ "IS_MAC",
+ ],
+ "//conditions:default": [
+ "IS_LINUX",
+ ],
+ }),
+ undefines = [
+ "OSQP_CUSTOM_MEMORY",
+ ],
+ visibility = ["//visibility:private"],
+)
+
+cc_library(
+ name = "osqp",
+ # Our hdrs match OSQP's ./include/CMakeLists.txt variable `osqp_headers`.
+ hdrs = [
+ # These headers are always enabled in CMakeLists.
+ "include/auxil.h",
+ "include/constants.h",
+ "include/ctrlc.h",
+ "include/error.h",
+ "include/glob_opts.h",
+ "include/lin_alg.h",
+ "include/osqp.h",
+ "include/osqp_configure.h",
+ "include/proj.h",
+ "include/scaling.h",
+ "include/types.h",
+ "include/util.h",
+ "include/version.h",
+ # These headers are enabled in CMakeLists only when building in normal
+ # mode.
+ "include/kkt.h",
+ # These headers are enabled in CMakeLists only when building in
+ # non-embedded mode.
+ "include/cs.h",
+ "include/polish.h",
+ "include/lin_sys.h",
+ ],
+ srcs = [
+ # From ./lin_sys/direct/qdldl/CMakeLists.txt at `qdldl_interface_src`.
+ "lin_sys/direct/qdldl/qdldl_interface.h",
+ "lin_sys/direct/qdldl/qdldl_interface.c",
+ # From ./src/CMakeLists.txt at `osqp_src`.
+ # These sources are always enabled in CMakeLists.
+ "src/auxil.c",
+ "src/ctrlc.c",
+ "src/error.c",
+ "src/lin_alg.c",
+ "src/osqp.c",
+ "src/proj.c",
+ "src/scaling.c",
+ "src/util.c",
+ # These sources are enabled in CMakeLists only when building in normal
+ # mode.
+ "src/kkt.c",
+ # These sources are enabled in CMakeLists only when building in
+ # non-embedded mode.
+ "src/cs.c",
+ "src/polish.c",
+ "src/lin_sys.c",
+ ],
+ includes = [
+ "include",
+ "lin_sys/direct/qdldl",
+ ],
+ copts = [
+ "-fvisibility=hidden",
+ "-w",
+ "-Werror=incompatible-pointer-types",
+ ],
+ deps = [
+ "@qdldl//:qdldl",
+ "@suitesparse//:amd",
+ ],
+)
13 changes: 13 additions & 0 deletions modules/osqp/0.6.3.bcr.2/patches/module_dot_bazel.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git MODULE.bazel MODULE.bazel
new file mode 100644
index 00000000..44caadb7
--- /dev/null
+++ MODULE.bazel
@@ -0,0 +1,7 @@
+module(name = "osqp", version = "0.6.3.bcr.2")
+
+bazel_dep(name = "rules_cc", version = "0.0.9")
+bazel_dep(name = "platforms", version = "0.0.8")
+bazel_dep(name = "qdldl", version = "0.1.7.bcr.1")
+bazel_dep(name = "suitesparse", version = "7.6.0.bcr.1")
+bazel_dep(name = "cmake_configure_file", version = "0.1.0")
14 changes: 14 additions & 0 deletions modules/osqp/0.6.3.bcr.2/presubmit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
matrix:
platform:
- debian10
- ubuntu2004
- macos
- macos_arm64
bazel: [6.x, 7.x]
tasks:
verify_targets:
name: Verify build targets
platform: ${{ platform }}
bazel: ${{ bazel }}
build_targets:
- "@osqp//:osqp"
9 changes: 9 additions & 0 deletions modules/osqp/0.6.3.bcr.2/source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"url": "https://github.com/osqp/osqp/releases/download/v0.6.3/osqp-v0.6.3-src.tar.gz",
"integrity": "sha256-KFsqYPaNEToQkHZ+yKnIGmWzry0lj4x4oxzD+YulhFY=",
"patches": {
"add_build_file.patch": "sha256-kldF6tsqE6rvZmk7j+qiWAfkQhuOVbBfId7Kfkp7J54=",
"module_dot_bazel.patch": "sha256-4cnZszG7pcoBe5EhhGpcjvDw3n49ObGHCcP+N7EoD6E="
},
"patch_strip": 0
}
9 changes: 6 additions & 3 deletions modules/osqp/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,10 @@
],
"versions": [
"0.6.3",
"0.6.3.bcr.1"
"0.6.3.bcr.1",
"0.6.3.bcr.2"
],
"yanked_versions": {}
}
"yanked_versions": {
"0.6.3.bcr.1": "Fails while linking due to dependency SuiteSparse not defining LONG. Use 0.6.3.bcr.2 instead."
}
}
5 changes: 2 additions & 3 deletions modules/qdldl/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
"github:osqp/qdldl"
],
"versions": [
"0.1.7",
"0.1.7.bcr.1"
"0.1.7"
],
"yanked_versions": {}
}
}
1 change: 1 addition & 0 deletions modules/suitesparse/7.6.0.bcr.1/MODULE.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module(name = "suitesparse", version = "7.6.0.bcr.1")
46 changes: 46 additions & 0 deletions modules/suitesparse/7.6.0.bcr.1/patches/add_build_file.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
diff --git BUILD.bazel BUILD.bazel
new file mode 100644
index 000000000..14b84cd84
--- /dev/null
+++ BUILD.bazel
@@ -0,0 +1,40 @@
+licenses(["notice"]) # BSD-3-Clause
+
+package(default_visibility = ["//visibility:private"])
+
+cc_library(
+ name = "config",
+ srcs = ["SuiteSparse_config/SuiteSparse_config.c"],
+ hdrs = ["SuiteSparse_config/SuiteSparse_config.h"],
+ strip_include_prefix = "SuiteSparse_config",
+ copts = ["-fvisibility=hidden"],
+ visibility = ["//visibility:public"],
+)
+
+# The header for libamd.
+cc_library(
+ name = "amd_hdrs",
+ hdrs = [
+ "AMD/Include/amd_internal.h",
+ "AMD/Include/amd.h",
+ ],
+ strip_include_prefix = "AMD/Include",
+ deps = [
+ ":config",
+ ],
+)
+
+# The libamd sources are compiled twice, once as 32-bit and once as 64-bit.
+_AMD_SRCS = glob(
+ ["AMD/Source/amd_*.c"],
+ exclude = ["AMD/Source/amd_l*.c"],
+ allow_empty = False,
+)
+
+cc_library(
+ name = "amd",
+ srcs = _AMD_SRCS,
+ copts = ["-fvisibility=hidden", "-DDLONG"],
+ deps = [":amd_hdrs"],
+ visibility = ["//visibility:public"],
+)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
diff --git MODULE.bazel MODULE.bazel
new file mode 100644
index 000000000..dd5383095
--- /dev/null
+++ MODULE.bazel
@@ -0,0 +1 @@
+module(name = "suitesparse", version = "7.6.0.bcr.1")
14 changes: 14 additions & 0 deletions modules/suitesparse/7.6.0.bcr.1/presubmit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
matrix:
platform:
- debian10
- ubuntu2004
- macos
- macos_arm64
bazel: [6.x, 7.x]
tasks:
verify_targets:
name: Verify build targets
platform: ${{ platform }}
bazel: ${{ bazel }}
build_targets:
- "@suitesparse//:amd"
10 changes: 10 additions & 0 deletions modules/suitesparse/7.6.0.bcr.1/source.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"url": "https://github.com/DrTimothyAldenDavis/SuiteSparse/archive/refs/tags/v7.6.0.tar.gz",
"integrity": "sha256-GcvrmWTr5DlBPdZtgqzh+QStxfJdioI8G0jDS9DSnqU=",
"strip_prefix": "SuiteSparse-7.6.0",
"patches": {
"add_build_file.patch": "sha256-9ZjpYTk5upEKyChEYOF/cYNKeEPn3eBlL6e2uDQ+IG4=",
"module_dot_bazel.patch": "sha256-yu2EF5hSQKkIjbLh1bfhgvBEyoPiWYVByrV4tPGvZcg="
},
"patch_strip": 0
}
5 changes: 3 additions & 2 deletions modules/suitesparse/metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@
}
],
"repository": [
"github:DrTimothyAldenDavis/SuiteSparse"
"github:DrTimothyAldenDavis/SuiteSparse"
],
"versions": [
"7.6.0"
"7.6.0",
"7.6.0.bcr.1"
],
"yanked_versions": {}
}
Loading