Skip to content

Instantly share code, notes, and snippets.

@kojix2
Created March 30, 2021 01:09
Show Gist options
  • Save kojix2/5db18e317bbf4c54c6494aa979b1ab64 to your computer and use it in GitHub Desktop.
Save kojix2/5db18e317bbf4c54c6494aa979b1ab64 to your computer and use it in GitHub Desktop.
# c2ffi: Clang-based FFI wrapper generator
# https://github.com/rpav/c2ffi
namespace :c2ffi do
desc 'Generate metadata files (JSON format) using c2ffi'
task :generate do
FileUtils.mkdir_p('codegen/c2ffilogs')
header_files = FileList['■■■/src/*.h']
header_files.each do |file|
basename = File.basename(file, '.h')
system "c2ffi -o codegen/#{basename}.json -M codegen/#{basename}.c #{file}" \
" 2> codegen/c2ffilogs/#{basename}.log"
end
end
desc 'Remove metadata files'
task :remove do
FileList['codegen/*.{json,c}', 'codegen/c2ffilogs/*.log'].each do |path|
File.unlink(path) if File.exist?(path)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment