mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-10-22 07:21:21 +00:00
build system: add accidentally ignored compilation_database.rb
This commit is contained in:
parent
9d2dd3b10c
commit
5f3f995fde
1
.gitignore
vendored
1
.gitignore
vendored
@ -50,7 +50,6 @@
|
||||
/po/*.mo
|
||||
/po/mkvtoolnix.pot
|
||||
/po/qt/*.qm
|
||||
/rake.d/compilation_database.rb
|
||||
/rake.d/dependency.d
|
||||
/share/icons/*/*.h
|
||||
/src/*/qt_resources.cpp
|
||||
|
36
rake.d/compilation_database.rb
Normal file
36
rake.d/compilation_database.rb
Normal file
@ -0,0 +1,36 @@
|
||||
module Mtx
|
||||
module CompilationDatabase
|
||||
@file_name = "#{$build_dir}/compile_commands.json"
|
||||
@compilation_commands = {}
|
||||
|
||||
def self.database_file_name
|
||||
@file_name
|
||||
end
|
||||
|
||||
def self.read
|
||||
return {} unless FileTest.exists?(@file_name)
|
||||
|
||||
Hash[
|
||||
*JSON.parse(IO.readlines(@file_name).join("")).
|
||||
map { |entry| [ entry["file"], entry ] }.
|
||||
flatten
|
||||
]
|
||||
end
|
||||
|
||||
def self.write
|
||||
return if @compilation_commands.empty?
|
||||
return if !FileTest.exists?(@file_name) && !c?(:BUILD_COMPILATION_DATABASE)
|
||||
|
||||
entries = self.read.merge(@compilation_commands).values.sort_by { |e| e["file"] }
|
||||
File.open(@file_name, "w") do |f|
|
||||
f.write(JSON.generate(entries, :indent => " ", :object_nl => "\n", :array_nl => "\n"))
|
||||
end
|
||||
end
|
||||
|
||||
def self.add entry
|
||||
@compilation_commands[entry["file"]] = entry
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
at_exit { Mtx::CompilationDatabase.write }
|
Loading…
Reference in New Issue
Block a user