diff options
Diffstat (limited to 'indra/cmake/NDOF.cmake')
| -rw-r--r-- | indra/cmake/NDOF.cmake | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake index a8f63f945b..c430da8ef8 100644 --- a/indra/cmake/NDOF.cmake +++ b/indra/cmake/NDOF.cmake @@ -10,7 +10,38 @@ if (NDOF) if (WINDOWS OR DARWIN) use_prebuilt_binary(libndofdev) elseif (LINUX) + if (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64) use_prebuilt_binary(open-libndofdev) + else () + if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0) + if (NOT EXISTS ${CMAKE_BINARY_DIR}/libndofdev-master.zip) + file(DOWNLOAD + https://github.com/janoc/libndofdev/archive/refs/heads/master.zip + ${CMAKE_BINARY_DIR}/libndofdev-master.zip + ) + endif () + file(ARCHIVE_EXTRACT + INPUT ${CMAKE_BINARY_DIR}/libndofdev-master.zip + DESTINATION ${CMAKE_BINARY_DIR} + ) + set(ENV{USE_SDL3} 1) + execute_process( + COMMAND make -j${MAKE_JOBS} + WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libndofdev-master + RESULT_VARIABLE libndofdev_installed + ) + unset(ENV{USE_SDL3}) + file( + COPY ${CMAKE_BINARY_DIR}/libndofdev-master/ndofdev_external.h + DESTINATION ${LIBS_PREBUILT_DIR}/include + ) + file( + COPY ${CMAKE_BINARY_DIR}/libndofdev-master/libndofdev.a + DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE} + ) + file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "${libndofdev_installed}") + endif () + endif () endif (WINDOWS OR DARWIN) find_library(NDOF_LIBRARY @@ -19,7 +50,12 @@ if (NDOF) ndofdev PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH) - target_link_libraries(ll::ndof INTERFACE ${NDOF_LIBRARY}) + if (LINUX) + include(SDL3) + target_link_libraries(ll::ndof INTERFACE ${NDOF_LIBRARY} ll::SDL3) + else() + target_link_libraries(ll::ndof INTERFACE ${NDOF_LIBRARY}) + endif() target_compile_definitions(ll::ndof INTERFACE LIB_NDOF=1) endif (NDOF) |
