build system: create ebml_export.h if using internal libEBML

This commit is contained in:
Moritz Bunkus 2019-05-20 08:40:09 +02:00
parent dc837866d7
commit 61b8dfd203
No known key found for this signature in database
GPG Key ID: 74AF00ADF2E32C85
2 changed files with 18 additions and 0 deletions

View File

@ -215,6 +215,13 @@ def setup_compiler_specifics
end
end
def generate_helper_files
return unless c?(:EBML_MATROSKA_INTERNAL)
content = $building_for[:windows] ? "#define EBML_DLL_API\n" : ""
ensure_file("lib/libebml/ebml/ebml_export.h", content)
end
def define_default_task
if !c(:DEFAULT_TARGET).empty?
desc "Build target '#{c(:DEFAULT_TARGET)}' by default"
@ -271,6 +278,7 @@ end
setup_globals
setup_overrides
import_dependencies
generate_helper_files
# Default task
define_default_task
@ -953,6 +961,7 @@ task :clean do
doc/man/*/*.1
doc/man/*/*.html
doc/man/*/*.xml
lib/libebml/ebml/ebml_export.h
src/*/qt_resources.cpp
src/info/ui/*.h
src/mkvtoolnix-gui/forms/**/*.h

View File

@ -243,6 +243,15 @@ def check_version required, actual
return Gem::Version.new(required) <= Gem::Version.new(actual)
end
def ensure_file file_name, content = ""
if FileTest.exists?(file_name)
current_content = IO.readlines(file_name).join("\n")
return if current_content == content
end
File.open(file_name, 'w') { |file| file.write(content) }
end
class Rake::Task
def mo_all_prerequisites
todo = [name]