1*bb4ee6a4SAndroid Build Coastguard Worker# Copyright 2024 The ChromiumOS Authors 2*bb4ee6a4SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 3*bb4ee6a4SAndroid Build Coastguard Worker# found in the LICENSE file. 4*bb4ee6a4SAndroid Build Coastguard Worker 5*bb4ee6a4SAndroid Build Coastguard Workerproject('rutabaga_gfx_ffi', ['rust', 'c'], 6*bb4ee6a4SAndroid Build Coastguard Worker version: '0.1.3') 7*bb4ee6a4SAndroid Build Coastguard Worker 8*bb4ee6a4SAndroid Build Coastguard Workertarget_os = host_machine.system() 9*bb4ee6a4SAndroid Build Coastguard Worker 10*bb4ee6a4SAndroid Build Coastguard Worker# By default cargo would generate rutabaga_gfx_ffi.dll (without the lib 11*bb4ee6a4SAndroid Build Coastguard Worker# prefix) for a Windows cdylib 12*bb4ee6a4SAndroid Build Coastguard Workerif target_os == 'windows' 13*bb4ee6a4SAndroid Build Coastguard Worker shared_lib = 'rutabaga_gfx_ffi.dll' 14*bb4ee6a4SAndroid Build Coastguard Workerendif 15*bb4ee6a4SAndroid Build Coastguard Workerif target_os == 'darwin' 16*bb4ee6a4SAndroid Build Coastguard Worker shared_lib = 'librutabaga_gfx_ffi.dylib' 17*bb4ee6a4SAndroid Build Coastguard Workerendif 18*bb4ee6a4SAndroid Build Coastguard Workerif target_os == 'linux' 19*bb4ee6a4SAndroid Build Coastguard Worker shared_lib = 'librutabaga_gfx_ffi.so' 20*bb4ee6a4SAndroid Build Coastguard Workerendif 21*bb4ee6a4SAndroid Build Coastguard Worker 22*bb4ee6a4SAndroid Build Coastguard Workershared_lib_major = '@[email protected]'.format(shared_lib) 23*bb4ee6a4SAndroid Build Coastguard Workershared_lib_full_ver = '@0@.@1@'.format(shared_lib, meson.project_version()) 24*bb4ee6a4SAndroid Build Coastguard Worker 25*bb4ee6a4SAndroid Build Coastguard Workerbuild_script = find_program('build.sh') 26*bb4ee6a4SAndroid Build Coastguard Workerwith_gfxstream = get_option('gfxstream') 27*bb4ee6a4SAndroid Build Coastguard Workerfeatures = '' 28*bb4ee6a4SAndroid Build Coastguard Workerif with_gfxstream 29*bb4ee6a4SAndroid Build Coastguard Worker features += 'gfxstream' 30*bb4ee6a4SAndroid Build Coastguard Workerendif 31*bb4ee6a4SAndroid Build Coastguard Worker 32*bb4ee6a4SAndroid Build Coastguard Workerbuildtype = 'debug' 33*bb4ee6a4SAndroid Build Coastguard Workercargo_release = '' 34*bb4ee6a4SAndroid Build Coastguard Workerif get_option('buildtype') == 'release' 35*bb4ee6a4SAndroid Build Coastguard Worker buildtype = 'release' 36*bb4ee6a4SAndroid Build Coastguard Worker cargo_release = '--release' 37*bb4ee6a4SAndroid Build Coastguard Workerendif 38*bb4ee6a4SAndroid Build Coastguard Worker 39*bb4ee6a4SAndroid Build Coastguard Workerrutabaga_gfx_ffi_ct = custom_target( 40*bb4ee6a4SAndroid Build Coastguard Worker 'rutabaga_gfx_ffi_build', 41*bb4ee6a4SAndroid Build Coastguard Worker output: [shared_lib, shared_lib_major, shared_lib_full_ver], 42*bb4ee6a4SAndroid Build Coastguard Worker input: ['src/lib.rs', 'Cargo.toml', 'build.rs', 'build.sh'], 43*bb4ee6a4SAndroid Build Coastguard Worker command: [build_script, features, meson.current_build_dir(), 44*bb4ee6a4SAndroid Build Coastguard Worker shared_lib, meson.project_version(), buildtype, cargo_release], 45*bb4ee6a4SAndroid Build Coastguard Worker install: true, 46*bb4ee6a4SAndroid Build Coastguard Worker install_dir: get_option('libdir'), 47*bb4ee6a4SAndroid Build Coastguard Worker) 48*bb4ee6a4SAndroid Build Coastguard Worker 49*bb4ee6a4SAndroid Build Coastguard Workerpkg = import('pkgconfig') 50*bb4ee6a4SAndroid Build Coastguard Workerpkg.generate( 51*bb4ee6a4SAndroid Build Coastguard Worker libraries: '-L${libdir} -lrutabaga_gfx_ffi', 52*bb4ee6a4SAndroid Build Coastguard Worker name: 'rutabaga_gfx_ffi', 53*bb4ee6a4SAndroid Build Coastguard Worker version: meson.project_version(), 54*bb4ee6a4SAndroid Build Coastguard Worker description: 'C FFI bindings to Rutabaga VGI', 55*bb4ee6a4SAndroid Build Coastguard Worker) 56*bb4ee6a4SAndroid Build Coastguard Worker 57*bb4ee6a4SAndroid Build Coastguard Workerrutabaga_gfx_ffi_h = files('src/include/rutabaga_gfx_ffi.h') 58*bb4ee6a4SAndroid Build Coastguard Workerinstall_headers(rutabaga_gfx_ffi_h, 59*bb4ee6a4SAndroid Build Coastguard Worker subdir: 'rutabaga_gfx') 60