Linux: Add make build files to binary distribution (issue #939).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1186 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
607a8a9338
commit
a48706b407
|
@ -5,11 +5,18 @@
|
||||||
{
|
{
|
||||||
'variables': {
|
'variables': {
|
||||||
'chromium_code': 1,
|
'chromium_code': 1,
|
||||||
|
'linux_use_gold_binary': 0,
|
||||||
|
'linux_use_gold_flags': 0,
|
||||||
'conditions': [
|
'conditions': [
|
||||||
[ 'OS=="mac"', {
|
[ 'OS=="mac"', {
|
||||||
# Don't use clang with CEF binary releases due to Chromium tree structure dependency.
|
# Don't use clang with CEF binary releases due to Chromium tree structure dependency.
|
||||||
'clang': 0,
|
'clang': 0,
|
||||||
}]
|
}],
|
||||||
|
['sysroot!=""', {
|
||||||
|
'pkg-config': './pkg-config-wrapper "<(sysroot)" "<(target_arch)"',
|
||||||
|
}, {
|
||||||
|
'pkg-config': 'pkg-config'
|
||||||
|
}],
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
'includes': [
|
'includes': [
|
||||||
|
@ -151,7 +158,29 @@
|
||||||
'<@(cefclient_bundle_resources_linux)',
|
'<@(cefclient_bundle_resources_linux)',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
'destination': '<(PRODUCT_DIR)/',
|
||||||
|
'files': [
|
||||||
|
'Resources/cef.pak',
|
||||||
|
'Resources/devtools_resources.pak',
|
||||||
|
'Resources/locales/',
|
||||||
|
'$(BUILDTYPE)/libcef.so',
|
||||||
|
],
|
||||||
|
},
|
||||||
],
|
],
|
||||||
|
'dependencies': [
|
||||||
|
'gtk',
|
||||||
|
],
|
||||||
|
'link_settings': {
|
||||||
|
'ldflags': [
|
||||||
|
# Look for libcef.so in the current directory. Path can also be
|
||||||
|
# specified using the LD_LIBRARY_PATH environment variable.
|
||||||
|
'-Wl,-rpath,.',
|
||||||
|
],
|
||||||
|
'libraries': [
|
||||||
|
"$(BUILDTYPE)/libcef.so",
|
||||||
|
],
|
||||||
|
},
|
||||||
'sources': [
|
'sources': [
|
||||||
'<@(includes_linux)',
|
'<@(includes_linux)',
|
||||||
'<@(cefclient_sources_linux)',
|
'<@(cefclient_sources_linux)',
|
||||||
|
@ -179,6 +208,13 @@
|
||||||
# Target build path.
|
# Target build path.
|
||||||
'SYMROOT': 'xcodebuild',
|
'SYMROOT': 'xcodebuild',
|
||||||
},
|
},
|
||||||
|
'conditions': [
|
||||||
|
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
|
||||||
|
'dependencies': [
|
||||||
|
'gtk',
|
||||||
|
],
|
||||||
|
}],
|
||||||
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'conditions': [
|
'conditions': [
|
||||||
|
@ -242,5 +278,31 @@
|
||||||
}, # target cefclient_helper_app
|
}, # target cefclient_helper_app
|
||||||
],
|
],
|
||||||
}], # OS=="mac"
|
}], # OS=="mac"
|
||||||
|
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
|
||||||
|
'targets': [
|
||||||
|
{
|
||||||
|
'target_name': 'gtk',
|
||||||
|
'type': 'none',
|
||||||
|
'variables': {
|
||||||
|
# gtk requires gmodule, but it does not list it as a dependency
|
||||||
|
# in some misconfigured systems.
|
||||||
|
'gtk_packages': 'gmodule-2.0 gtk+-2.0 gthread-2.0',
|
||||||
|
},
|
||||||
|
'direct_dependent_settings': {
|
||||||
|
'cflags': [
|
||||||
|
'<!@(<(pkg-config) --cflags <(gtk_packages))',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
'link_settings': {
|
||||||
|
'ldflags': [
|
||||||
|
'<!@(<(pkg-config) --libs-only-L --libs-only-other <(gtk_packages))',
|
||||||
|
],
|
||||||
|
'libraries': [
|
||||||
|
'<!@(<(pkg-config) --libs-only-l <(gtk_packages))',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}], # OS=="linux" or OS=="freebsd" or OS=="openbsd"
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/bash
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "ERROR: Please specify a build target: Debug or Release"
|
||||||
|
else
|
||||||
|
make -j8 cefclient BUILDTYPE=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,17 @@ def copy_files(src_glob, dst_folder, quiet = True):
|
||||||
else:
|
else:
|
||||||
copy_file(fname, dst, quiet)
|
copy_file(fname, dst, quiet)
|
||||||
|
|
||||||
|
def remove_file(name, quiet = True):
|
||||||
|
""" Remove the specified file. """
|
||||||
|
try:
|
||||||
|
if path_exists(name):
|
||||||
|
os.remove(name)
|
||||||
|
if not quiet:
|
||||||
|
sys.stdout.write('Removing '+name+' file.\n')
|
||||||
|
except IOError, (errno, strerror):
|
||||||
|
sys.stderr.write('Failed to remove file '+name+': '+strerror)
|
||||||
|
raise
|
||||||
|
|
||||||
def copy_dir(src, dst, quiet = True):
|
def copy_dir(src, dst, quiet = True):
|
||||||
""" Copy a directory tree. """
|
""" Copy a directory tree. """
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -120,6 +120,24 @@ def fix_msvs_projects():
|
||||||
data = data.replace('..\\..\\..\\build\\', '')
|
data = data.replace('..\\..\\..\\build\\', '')
|
||||||
write_file(file, data)
|
write_file(file, data)
|
||||||
|
|
||||||
|
def fix_make_projects():
|
||||||
|
""" Fix the output directory path in Makefile all .mk files. """
|
||||||
|
find = os.path.relpath(output_dir, src_dir)
|
||||||
|
files = [os.path.join(output_dir, 'Makefile')]
|
||||||
|
for file in get_files(os.path.join(output_dir, '*.mk')):
|
||||||
|
files.append(file)
|
||||||
|
for file in files:
|
||||||
|
data = read_file(file)
|
||||||
|
data = data.replace(find, '.')
|
||||||
|
if os.path.basename(file) == 'Makefile':
|
||||||
|
# remove the quiet_cmd_regen_makefile section
|
||||||
|
pos = str.find(data, 'quiet_cmd_regen_makefile')
|
||||||
|
if pos >= 0:
|
||||||
|
epos = str.find(data, '#', pos)
|
||||||
|
if epos >= 0:
|
||||||
|
data = data[0:pos] + data[epos:]
|
||||||
|
write_file(file, data)
|
||||||
|
|
||||||
def run(command_line, working_dir):
|
def run(command_line, working_dir):
|
||||||
""" Run a command. """
|
""" Run a command. """
|
||||||
sys.stdout.write('-------- Running "'+command_line+'" in "'+\
|
sys.stdout.write('-------- Running "'+command_line+'" in "'+\
|
||||||
|
@ -243,6 +261,8 @@ transfer_gypi_files(cef_dir, cef_paths['autogen_capi_includes'], \
|
||||||
# transfer common cefclient files
|
# transfer common cefclient files
|
||||||
transfer_gypi_files(cef_dir, cef_paths2['cefclient_sources_common'], \
|
transfer_gypi_files(cef_dir, cef_paths2['cefclient_sources_common'], \
|
||||||
'tests/cefclient/', cefclient_dir, options.quiet)
|
'tests/cefclient/', cefclient_dir, options.quiet)
|
||||||
|
transfer_gypi_files(cef_dir, cef_paths2['cefclient_bundle_resources_common'], \
|
||||||
|
'tests/cefclient/', cefclient_dir, options.quiet)
|
||||||
|
|
||||||
# transfer common libcef_dll_wrapper files
|
# transfer common libcef_dll_wrapper files
|
||||||
transfer_gypi_files(cef_dir, cef_paths2['libcef_dll_wrapper_sources_common'], \
|
transfer_gypi_files(cef_dir, cef_paths2['libcef_dll_wrapper_sources_common'], \
|
||||||
|
@ -421,11 +441,7 @@ elif platform == 'linux':
|
||||||
if not options.allowpartial or path_exists(build_dir):
|
if not options.allowpartial or path_exists(build_dir):
|
||||||
dst_dir = os.path.join(output_dir, 'Debug')
|
dst_dir = os.path.join(output_dir, 'Debug')
|
||||||
make_dir(dst_dir, options.quiet)
|
make_dir(dst_dir, options.quiet)
|
||||||
copy_dir(os.path.join(build_dir, 'lib.target'), os.path.join(dst_dir, 'lib.target'), options.quiet)
|
copy_file(os.path.join(build_dir, 'lib.target/libcef.so'), dst_dir, options.quiet)
|
||||||
copy_file(os.path.join(build_dir, 'cefclient'), dst_dir, options.quiet)
|
|
||||||
copy_file(os.path.join(build_dir, 'cef.pak'), dst_dir, options.quiet)
|
|
||||||
copy_file(os.path.join(build_dir, 'devtools_resources.pak'), dst_dir, options.quiet)
|
|
||||||
copy_dir(os.path.join(build_dir, 'locales'), os.path.join(dst_dir, 'locales'), options.quiet)
|
|
||||||
else:
|
else:
|
||||||
sys.stderr.write("No Debug build files.\n")
|
sys.stderr.write("No Debug build files.\n")
|
||||||
|
|
||||||
|
@ -434,13 +450,17 @@ elif platform == 'linux':
|
||||||
if not options.allowpartial or path_exists(build_dir):
|
if not options.allowpartial or path_exists(build_dir):
|
||||||
dst_dir = os.path.join(output_dir, 'Release')
|
dst_dir = os.path.join(output_dir, 'Release')
|
||||||
make_dir(dst_dir, options.quiet)
|
make_dir(dst_dir, options.quiet)
|
||||||
copy_dir(os.path.join(build_dir, 'lib.target'), os.path.join(dst_dir, 'lib.target'), options.quiet)
|
copy_file(os.path.join(build_dir, 'lib.target/libcef.so'), dst_dir, options.quiet)
|
||||||
copy_file(os.path.join(build_dir, 'cefclient'), dst_dir, options.quiet)
|
else:
|
||||||
|
sys.stderr.write("No Release build files.\n")
|
||||||
|
|
||||||
|
if not build_dir is None:
|
||||||
|
# transfer resource files
|
||||||
|
dst_dir = os.path.join(output_dir, 'Resources')
|
||||||
|
make_dir(dst_dir, options.quiet)
|
||||||
copy_file(os.path.join(build_dir, 'cef.pak'), dst_dir, options.quiet)
|
copy_file(os.path.join(build_dir, 'cef.pak'), dst_dir, options.quiet)
|
||||||
copy_file(os.path.join(build_dir, 'devtools_resources.pak'), dst_dir, options.quiet)
|
copy_file(os.path.join(build_dir, 'devtools_resources.pak'), dst_dir, options.quiet)
|
||||||
copy_dir(os.path.join(build_dir, 'locales'), os.path.join(dst_dir, 'locales'), options.quiet)
|
copy_dir(os.path.join(build_dir, 'locales'), os.path.join(dst_dir, 'locales'), options.quiet)
|
||||||
else:
|
|
||||||
sys.stderr.write("No Release build files.\n")
|
|
||||||
|
|
||||||
# transfer include files
|
# transfer include files
|
||||||
transfer_gypi_files(cef_dir, cef_paths2['includes_linux'], \
|
transfer_gypi_files(cef_dir, cef_paths2['includes_linux'], \
|
||||||
|
@ -449,11 +469,34 @@ elif platform == 'linux':
|
||||||
# transfer cefclient files
|
# transfer cefclient files
|
||||||
transfer_gypi_files(cef_dir, cef_paths2['cefclient_sources_linux'], \
|
transfer_gypi_files(cef_dir, cef_paths2['cefclient_sources_linux'], \
|
||||||
'tests/cefclient/', cefclient_dir, options.quiet)
|
'tests/cefclient/', cefclient_dir, options.quiet)
|
||||||
|
transfer_gypi_files(cef_dir, cef_paths2['cefclient_bundle_resources_linux'], \
|
||||||
|
'tests/cefclient/', cefclient_dir, options.quiet)
|
||||||
|
|
||||||
# transfer additional files, if any
|
# transfer additional files, if any
|
||||||
|
copy_file(os.path.join(script_dir, 'distrib/linux/build.sh'), output_dir, options.quiet)
|
||||||
transfer_files(cef_dir, script_dir, os.path.join(script_dir, 'distrib/linux/transfer.cfg'), \
|
transfer_files(cef_dir, script_dir, os.path.join(script_dir, 'distrib/linux/transfer.cfg'), \
|
||||||
output_dir, options.quiet)
|
output_dir, options.quiet)
|
||||||
|
|
||||||
|
# Back up the existing Makefile
|
||||||
|
makefile = os.path.join(src_dir, 'Makefile')
|
||||||
|
makefile_tmp = makefile + '.cef_bak'
|
||||||
|
copy_file(makefile, makefile_tmp, options.quiet)
|
||||||
|
|
||||||
|
# Generate make project files
|
||||||
|
sys.stdout.write('Generating make project files...')
|
||||||
|
gyper = [ 'python', 'tools/gyp_cef', os.path.relpath(os.path.join(output_dir, 'cefclient.gyp'), cef_dir) ]
|
||||||
|
RunAction(cef_dir, gyper);
|
||||||
|
|
||||||
|
# Copy the resulting Makefile to the destination directory
|
||||||
|
copy_file(makefile, output_dir, options.quiet)
|
||||||
|
|
||||||
|
# Restore the original Makefile
|
||||||
|
remove_file(makefile, options.quiet)
|
||||||
|
move_file(makefile_tmp, makefile, options.quiet)
|
||||||
|
|
||||||
|
# Post-process the make files
|
||||||
|
fix_make_projects()
|
||||||
|
|
||||||
# Create an archive of the output directory
|
# Create an archive of the output directory
|
||||||
zip_file = os.path.split(output_dir)[1] + '.zip'
|
zip_file = os.path.split(output_dir)[1] + '.zip'
|
||||||
if not options.quiet:
|
if not options.quiet:
|
||||||
|
|
Loading…
Reference in New Issue