Add CMakeLists for usdMjcf file format plugin.

This adds an option MUJOCO_BUILD_USD_PLUGINS to the top level CMakeLists which allows us to build the usdMjcf file format plugin with the rest of mujoco.

In this first version, we allow building against either standalone USD or against Houdini (DCC) since it has it's own fork of USD. When building against standalone USD we also build the file format tests.

PiperOrigin-RevId: 753969974
Change-Id: If691eecbddf45d18b7c4ff76f7650999d42e99c5
This commit is contained in:
Sam Haves
2025-05-02 05:47:25 -07:00
committed by Copybara-Service
parent 02656532c2
commit ab63a7e824
8 changed files with 207 additions and 8 deletions
+1
View File
@@ -100,3 +100,4 @@ add_subdirectory(user)
add_subdirectory(xml)
add_subdirectory(plugin/elasticity)
add_subdirectory(plugin/actuator)
add_subdirectory(experimental)
+19
View File
@@ -0,0 +1,19 @@
# Copyright 2021 DeepMind Technologies Limited
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
if(MUJOCO_BUILD_USD_PLUGINS AND MUJOCO_USD_TARGET STREQUAL "USD")
add_subdirectory(usd/plugins/mjcf)
endif()
@@ -0,0 +1,30 @@
# Copyright 2025 DeepMind Technologies Limited
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
find_package(pxr REQUIRED)
add_library(usd_fixture STATIC fixture.h fixture.cc)
target_include_directories(usd_fixture PUBLIC ${MUJOCO_TEST_INCLUDE})
target_compile_definitions(usd_fixture PUBLIC MJSTATIC)
target_link_libraries(
usd_fixture
PUBLIC usd
tf
gtest
gmock
mujoco
)
mujoco_test(mjcf_file_format_test ADDITIONAL_LINK_LIBRARIES usd tf usdGeom usdImaging usdPhysics usdShade usd_fixture)