# -*- cmake -*- include(Prebuilt) set(NDOF ON CACHE BOOL "Use NDOF space navigator joystick library.") include_guard() add_library( ll::ndof INTERFACE IMPORTED ) 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 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)