123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- project(
- 'openhmd', 'c',
- default_options : 'c_std=c99',
- version : '0.3.0',
- meson_version : '>= 0.44'
- )
- library_version = '0.1.0'
- sources = [
- 'src/openhmd.c',
- 'src/platform-win32.c',
- 'src/drv_dummy/dummy.c',
- 'src/omath.c',
- 'src/platform-posix.c',
- 'src/fusion.c',
- 'src/shaders.c'
- ]
- hidapi = 'hidapi'
- if host_machine.system() == 'linux'
- hidapi = 'hidapi-libusb'
- endif
- dep_hidapi = dependency(hidapi)
- deps = [
- meson.get_compiler('c').find_library('m', required : false), #-lm
- dependency('threads') #pthread
- ]
- c_args = []
- _drivers = get_option('drivers')
- if _drivers.contains('rift')
- sources += [
- 'src/drv_oculus_rift/rift.c',
- 'src/drv_oculus_rift/packet.c'
- ]
- c_args += '-DDRIVER_OCULUS_RIFT'
- deps += dep_hidapi
- endif
- if _drivers.contains('deepoon')
- sources += [
- 'src/drv_deepoon/deepoon.c',
- 'src/drv_deepoon/packet.c'
- ]
- c_args += '-DDRIVER_DEEPOON'
- endif
- if _drivers.contains('psvr')
- sources += [
- 'src/drv_psvr/psvr.c',
- 'src/drv_psvr/packet.c'
- ]
- c_args += '-DDRIVER_PSVR'
- deps += dep_hidapi
- endif
- if _drivers.contains('vive')
- sources += [
- 'src/drv_htc_vive/vive.c',
- 'src/drv_htc_vive/packet.c',
- 'src/ext_deps/nxjson.c'
- ]
- c_args += '-DDRIVER_HTC_VIVE'
- deps += dep_hidapi
- endif
- if _drivers.contains('nolo')
- sources += [
- 'src/drv_nolo/nolo.c',
- 'src/drv_nolo/packet.c'
- ]
- c_args += '-DDRIVER_NOLO'
- deps += dep_hidapi
- endif
- if _drivers.contains('wmr')
- sources += [
- 'src/drv_wmr/wmr.c',
- 'src/drv_wmr/packet.c'
- ]
- c_args += '-DDRIVER_WMR'
- deps += dep_hidapi
- endif
- if _drivers.contains('xgvr')
- sources += [
- 'src/drv_3glasses/xgvr.c',
- 'src/drv_3glasses/packet.c',
- ]
- c_args += '-DDRIVER_XGVR'
- deps += dep_hidapi
- endif
- if _drivers.contains('external')
- sources += [
- 'src/drv_external/external.c'
- ]
- c_args += '-DDRIVER_EXTERNAL'
- endif
- if _drivers.contains('android')
- sources += [
- 'src/drv_android/android.c'
- ]
- c_args += '-DDRIVER_ANDROID'
- endif
- openhmd_lib = library('openhmd', sources, include_directories : include_directories('./include'), c_args : c_args, dependencies : deps, install : true, version : library_version)
- # build examples and install pkg-config file + header only for shared library. shared is the default
- if get_option('default_library') == 'shared'
- _examples = get_option('examples')
- if _examples.contains('simple')
- executable('openhmd_simple_example', 'examples/simple/simple.c', include_directories : include_directories('./include'), link_with: [openhmd_lib], install : true)
- endif
- if _examples.contains('opengl')
- opengl_sources = [
- 'examples/opengl/main.c',
- 'examples/opengl/gl.c',
- ]
- sdldep = dependency('sdl2')
- gldep = dependency('gl')
- glewdep = dependency('glew')
- executable('openhmd_opengl_example', opengl_sources , include_directories : include_directories(['./include', 'examples/opengl']), link_with: [openhmd_lib], dependencies : [sdldep, gldep, glewdep], install : true)
- endif
- pkg = import('pkgconfig')
- pkg.generate(
- name : 'openhmd',
- description : 'API and drivers for immersive technology devices such as HMDs',
- version : meson.project_version(),
- requires : hidapi,
- libraries : openhmd_lib,
- url : 'http://www.openhmd.net/'
- )
- install_headers('include/openhmd.h', subdir : 'openhmd')
- endif
|