Include obj and stl decoder plugins as sources in CMake builds.

This removes the need to load these decoders via mj_loadAllPluginLibraries when using MuJoCo built with CMake. Other plugins are unchanged.

PiperOrigin-RevId: 897114719
Change-Id: Iee914cc5e05798186f384a67901f1cf86bc2f887
This commit is contained in:
Sam Haves
2026-04-09 07:57:37 -07:00
committed by Copybara-Service
parent 81720071b8
commit a744b366fb
11 changed files with 21 additions and 107 deletions
+4 -43
View File
@@ -12,48 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
if(EMSCRIPTEN)
add_library(obj_decoder OBJECT obj_decoder.cc)
else()
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_LIBDIR}")
add_library(obj_decoder SHARED obj_decoder.cc)
endif()
target_include_directories(obj_decoder PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/../..
${CMAKE_CURRENT_SOURCE_DIR}/../../include
target_compile_definitions(mujoco PRIVATE TINYOBJLOADER_IMPLEMENTATION)
target_sources(mujoco PRIVATE
obj_decoder.cc
)
if(EMSCRIPTEN)
target_link_libraries(obj_decoder PRIVATE
tinyobjloader
)
else()
target_link_libraries(obj_decoder PRIVATE
mujoco
tinyobjloader
)
endif()
target_compile_definitions(obj_decoder PRIVATE TINYOBJLOADER_IMPLEMENTATION)
target_compile_options(obj_decoder PRIVATE
${AVX_COMPILE_OPTIONS}
${MUJOCO_MACOS_COMPILE_OPTIONS}
${EXTRA_COMPILE_OPTIONS}
${MUJOCO_CXX_FLAGS}
)
if(NOT EMSCRIPTEN)
target_link_options(obj_decoder PRIVATE
${MUJOCO_MACOS_LINK_OPTIONS}
${EXTRA_LINK_OPTIONS}
)
install(
TARGETS obj_decoder
LIBRARY DESTINATION "${CMAKE_INSTALL_BINDIR}/mujoco_plugin"
)
endif()
target_link_libraries(mujoco PRIVATE tinyobjloader)