summaryrefslogtreecommitdiff
path: root/indra/cmake/NDOF.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake/NDOF.cmake')
-rw-r--r--indra/cmake/NDOF.cmake55
1 files changed, 43 insertions, 12 deletions
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake
index d6e5e53ac9..50f0ea1f51 100644
--- a/indra/cmake/NDOF.cmake
+++ b/indra/cmake/NDOF.cmake
@@ -7,9 +7,10 @@ include_guard()
add_library( ll::ndof INTERFACE IMPORTED )
if (NDOF)
- if (WINDOWS OR DARWIN)
- #use_prebuilt_binary(libndofdev)
- if (DARWIN AND (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0))
+ if (WINDOWS)
+ use_prebuilt_binary(libndofdev)
+ elseif (DARWIN)
+ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0)
file(DOWNLOAD
https://github.com/secondlife/3p-libndofdev/archive/refs/tags/v0.1.8e9edc7.tar.gz
${CMAKE_BINARY_DIR}/3p-libndofdev-0.1.8e9edc7.tar.gz
@@ -43,15 +44,45 @@ if (NDOF)
endif ()
endif ()
elseif (LINUX)
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES x86_64)
use_prebuilt_binary(open-libndofdev)
- endif (WINDOWS OR DARWIN)
+ else ()
+ if (${PREBUILD_TRACKING_DIR}/sentinel_installed IS_NEWER_THAN ${PREBUILD_TRACKING_DIR}/libndofdev_installed OR NOT ${libndofdev_installed} EQUAL 0)
+ file(DOWNLOAD
+ https://github.com/janoc/libndofdev/archive/refs/tags/v0.14.tar.gz
+ ${CMAKE_BINARY_DIR}/libndofdev-0.14.tar.gz
+ )
+ file(ARCHIVE_EXTRACT
+ INPUT ${CMAKE_BINARY_DIR}/libndofdev-0.14.tar.gz
+ DESTINATION ${CMAKE_BINARY_DIR}
+ )
+ set(ENV{USE_SDL2} 1)
+ execute_process(
+ COMMAND make -j${MAKE_JOBS}
+ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/libndofdev-0.14
+ RESULT_VARIABLE libndofdev_installed
+ )
+ unset(ENV{USE_SDL2})
+ file(
+ COPY ${CMAKE_BINARY_DIR}/libndofdev-0.14/ndofdev_external.h
+ DESTINATION ${LIBS_PREBUILT_DIR}/include
+ )
+ file(
+ COPY ${CMAKE_BINARY_DIR}/libndofdev-0.14/libndofdev.a
+ DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE}
+ )
+ file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "${libndofdev_installed}")
+ endif ()
+ endif ()
+ endif ()
- if (WINDOWS)
- target_link_libraries( ll::ndof INTERFACE libndofdev)
- elseif (DARWIN OR LINUX)
- target_link_libraries( ll::ndof INTERFACE ndofdev)
- endif (WINDOWS)
- target_compile_definitions( ll::ndof INTERFACE LIB_NDOF=1)
-else()
- add_compile_options(-ULIB_NDOF)
+ find_library(NDOF_LIBRARY
+ NAMES
+ libndofdev
+ ndofdev
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ target_link_libraries(ll::ndof INTERFACE ${NDOF_LIBRARY})
+
+ target_compile_definitions(ll::ndof INTERFACE LIB_NDOF=1)
endif (NDOF)