diff options
Diffstat (limited to 'indra/cmake/NDOF.cmake')
| -rw-r--r-- | indra/cmake/NDOF.cmake | 76 |
1 files changed, 41 insertions, 35 deletions
diff --git a/indra/cmake/NDOF.cmake b/indra/cmake/NDOF.cmake index d6e5e53ac9..c430da8ef8 100644 --- a/indra/cmake/NDOF.cmake +++ b/indra/cmake/NDOF.cmake @@ -8,50 +8,56 @@ 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)) - 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 - ) - file(ARCHIVE_EXTRACT - INPUT ${CMAKE_BINARY_DIR}/3p-libndofdev-0.1.8e9edc7.tar.gz - DESTINATION ${CMAKE_BINARY_DIR} - ) - try_compile(LIBNDOFDEV_RESULT - PROJECT libndofdev - SOURCE_DIR ${CMAKE_BINARY_DIR}/3p-libndofdev-0.1.8e9edc7/libndofdev - BINARY_DIR ${CMAKE_BINARY_DIR}/3p-libndofdev-0.1.8e9edc7/libndofdev - TARGET ndofdev - CMAKE_FLAGS - -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHITECTURES} - -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET} - -DCMAKE_C_FLAGS:STRING=-DTARGET_OS_MAC\ -Wno-int-conversion - OUTPUT_VARIABLE libndofdev_installed - ) - if (${LIBNDOFDEV_RESULT}) + 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}/3p-libndofdev-0.1.8e9edc7/libndofdev/src/ndofdev_external.h + COPY ${CMAKE_BINARY_DIR}/libndofdev-master/ndofdev_external.h DESTINATION ${LIBS_PREBUILT_DIR}/include ) file( - COPY ${CMAKE_BINARY_DIR}/3p-libndofdev-0.1.8e9edc7/libndofdev/src/libndofdev.dylib + COPY ${CMAKE_BINARY_DIR}/libndofdev-master/libndofdev.a DESTINATION ${ARCH_PREBUILT_DIRS_RELEASE} ) file(WRITE ${PREBUILD_TRACKING_DIR}/libndofdev_installed "${libndofdev_installed}") endif () endif () - elseif (LINUX) - use_prebuilt_binary(open-libndofdev) endif (WINDOWS OR DARWIN) - 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) + + 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) + + |
