diff --git a/tools/automate/automate.py b/tools/automate/automate.py index d1fab4502..c03644ccd 100644 --- a/tools/automate/automate.py +++ b/tools/automate/automate.py @@ -127,6 +127,18 @@ parser.add_option('--minimal-distrib', parser.add_option('--minimal-distrib-only', action='store_true', dest='minimaldistribonly', default=False, help='create a minimal CEF binary distribution only') +parser.add_option('--client-distrib', + action='store_true', dest='clientdistrib', default=False, + help='create a client CEF binary distribution') +parser.add_option('--client-distrib-only', + action='store_true', dest='clientdistribonly', default=False, + help='create a client CEF binary distribution only') +parser.add_option('--no-distrib-docs', + action='store_true', dest='nodistribdocs', default=False, + help="don't create CEF documentation") +parser.add_option('--no-distrib-archive', + action='store_true', dest='nodistribarchive', default=False, + help="don't create archives for output directories") parser.add_option('--ninja-build', action='store_true', dest='ninjabuild', default=False, help="build using ninja") @@ -140,7 +152,9 @@ if options.downloaddir is None: parser.print_help(sys.stderr) sys.exit() -if options.noreleasebuild and (options.minimaldistrib or options.minimaldistribonly): +if (options.noreleasebuild and (options.minimaldistrib or options.minimaldistribonly or \ + options.clientdistrib or options.clientdistribonly)) or \ + (options.minimaldistribonly and options.clientdistribonly): print 'Invalid combination of options' parser.print_help(sys.stderr) sys.exit() @@ -424,22 +438,43 @@ if any_changed or options.forcebuild: run(path+' Release', cef_tools_dir, depot_tools_dir) if (any_changed or options.forcedistrib) and not options.nodistrib: - # make a CEF binary distribution - make_minimal = options.minimaldistrib or options.minimaldistribonly - path = os.path.join(cef_tools_dir, 'make_distrib'+script_ext) - if options.ninjabuild: - path = path + ' --ninja-build' - if options.nodebugbuild or options.noreleasebuild or make_minimal: - path = path + ' --allow-partial' + # determine the requested distribution types + distrib_types = [] + if options.minimaldistribonly: + distrib_types.append('minimal') + elif options.clientdistribonly: + distrib_types.append('client') + else: + distrib_types.append('standard') + if options.minimaldistrib: + distrib_types.append('minimal') + if options.clientdistrib: + distrib_types.append('client') - if not options.minimaldistribonly: - # create the full distribution - run(path, cef_tools_dir, depot_tools_dir) + first_type = True - if make_minimal: - # create the minimial distribution - path = path + ' --minimal' - if not options.minimaldistribonly: - # don't create the symbol archive twice - path = path + ' --no-symbols' + # create the requested distribution types + for type in distrib_types: + path = os.path.join(cef_tools_dir, 'make_distrib'+script_ext) + if options.nodebugbuild or options.noreleasebuild or type != 'standard': + path = path + ' --allow-partial' + if options.ninjabuild: + path = path + ' --ninja-build' + + if type == 'minimal': + path = path + ' --minimal' + elif type == 'client': + path = path + ' --client' + + if first_type: + if options.nodistribdocs: + path = path + ' --no-docs' + if options.nodistribarchive: + path = path + ' --no-archive' + first_type = False + else: + # don't create the symbol archives or documentation more than once + path = path + ' --no-symbols --no-docs' + + # create the distribution run(path, cef_tools_dir, depot_tools_dir) diff --git a/tools/distrib/README.client.txt b/tools/distrib/README.client.txt new file mode 100644 index 000000000..650c078a0 --- /dev/null +++ b/tools/distrib/README.client.txt @@ -0,0 +1,12 @@ +CONTENTS +-------- + +Release Contains a release build of the cefclient sample application. + + +USAGE +----- + +Please visit the CEF Website for additional usage information. + +http://code.google.com/p/chromiumembedded diff --git a/tools/distrib/README.footer.txt b/tools/distrib/README.footer.txt new file mode 100644 index 000000000..e57a66224 --- /dev/null +++ b/tools/distrib/README.footer.txt @@ -0,0 +1,8 @@ +LICENSING +--------- + +The CEF project is BSD licensed. Please read the LICENSE.txt file included with +this binary distribution for licensing terms and conditions. Other software +included in this distribution is provided under other licenses. Please visit +"about:credits" in a CEF-based application for complete Chromium and third-party +licensing information. diff --git a/tools/distrib/README.header.txt b/tools/distrib/README.header.txt new file mode 100644 index 000000000..541d23a6b --- /dev/null +++ b/tools/distrib/README.header.txt @@ -0,0 +1,12 @@ +Chromium Embedded Framework (CEF) $DISTRIB_TYPE$ Binary Distribution for $PLATFORM$ +------------------------------------------------------------------------------- + +Date: $DATE$ + +CEF Version: $CEF_VER$ +CEF URL: $CEF_URL$@$CEF_REV$ + +Chromium Verison: $CHROMIUM_VER$ +Chromium URL: $CHROMIUM_URL$@$CHROMIUM_REV$ + +$DISTRIB_DESC$ diff --git a/tools/distrib/cefclient.gyp b/tools/distrib/cefclient.gyp index e9c0bfc86..581c4223b 100644 --- a/tools/distrib/cefclient.gyp +++ b/tools/distrib/cefclient.gyp @@ -59,6 +59,34 @@ }, 'conditions': [ ['OS=="win"', { + 'actions': [ + { + 'action_name': 'copy_resources', + 'msvs_cygwin_shell': 0, + 'inputs': [], + 'outputs': [ + '<(PRODUCT_DIR)/copy_resources.stamp', + ], + 'action': [ + 'xcopy /efy', + 'Resources\*', + '$(OutDir)', + ], + }, + { + 'action_name': 'copy_libraries', + 'msvs_cygwin_shell': 0, + 'inputs': [], + 'outputs': [ + '<(PRODUCT_DIR)/copy_resources.stamp', + ], + 'action': [ + 'xcopy /efy', + '$(ConfigurationName)\*.dll', + '$(OutDir)', + ], + }, + ], 'msvs_settings': { 'VCLinkerTool': { # Set /SUBSYSTEM:WINDOWS. @@ -73,7 +101,7 @@ '-lrpcrt4.lib', '-lopengl32.lib', '-lglu32.lib', - '-llib/$(ConfigurationName)/libcef.lib' + '-l$(ConfigurationName)/libcef.lib' ], }, 'sources': [ diff --git a/tools/distrib/linux/README.minimal.txt b/tools/distrib/linux/README.minimal.txt new file mode 100644 index 000000000..abe1d2224 --- /dev/null +++ b/tools/distrib/linux/README.minimal.txt @@ -0,0 +1,17 @@ +CONTENTS +-------- + +Release Contains libcef.so and other components required to run the release + version of CEF-based applications. By default these files should be + placed in the same directory as the executable. + +Resources Contains resources required by libcef.so. By default these files + should be placed in the same directory as libcef.so. + + +USAGE +----- + +Please visit the CEF Website for additional usage information. + +http://code.google.com/p/chromiumembedded diff --git a/tools/distrib/linux/README.redistrib.txt b/tools/distrib/linux/README.redistrib.txt new file mode 100644 index 000000000..13c75feb5 --- /dev/null +++ b/tools/distrib/linux/README.redistrib.txt @@ -0,0 +1,31 @@ +REDISTRIBUTION +-------------- + +This binary distribution contains the below components. Components listed under +the "required" section must be redistributed with all applications using CEF. +Components listed under the "optional" section may be excluded if the related +features will not be used. + +Required components: + +* CEF core library + libcef.so + +Optional components: + +* Localized resources + locales/ + Note: Contains localized strings for WebKit UI controls. A .pak file is loaded + from this folder based on the value of environment variables which are read + with the following precedence order: LANGUAGE, LC_ALL, LC_MESSAGES and LANG. + Only configured locales need to be distributed. If no locale is configured the + default locale of "en-US" will be used. Locale file loading can be disabled + completely using CefSettings.pack_loading_disabled. The locales folder path + can be customized using CefSettings.locales_dir_path. + +* Other resources + cef.pak + devtools_resources.pak + Note: Contains WebKit image and inspector resources. Pack file loading can be + disabled completely using CefSettings.pack_loading_disabled. The resources + directory path can be customized using CefSettings.resources_dir_path. diff --git a/tools/distrib/linux/README.standard.txt b/tools/distrib/linux/README.standard.txt new file mode 100644 index 000000000..223b8de7d --- /dev/null +++ b/tools/distrib/linux/README.standard.txt @@ -0,0 +1,34 @@ +CONTENTS +-------- + +cefclient Contains the cefclient sample application configured to build + using the files in this distribution. + +Debug Contains libcef.so and other components required to run the debug + version of CEF-based applications. By default these files should be + placed in the same directory as the executable and will be copied + there as part of the build process. + +include Contains all required CEF header files. + +libcef_dll Contains the source code for the libcef_dll_wrapper static library + that all applications using the CEF C++ API must link against. + +Release Contains libcef.so and other components required to run the release + version of CEF-based applications. By default these files should be + placed in the same directory as the executable and will be copied + there as part of the build process. + +Resources Contains resources required by libcef.so. By default these files + should be placed in the same directory as libcef.so and will be + copied there as part of the build process. + + +USAGE +----- + +Run 'build.sh Debug' to build the cefclient target in Debug mode. + +Please visit the CEF Website for additional usage information. + +http://code.google.com/p/chromiumembedded diff --git a/tools/distrib/linux/README.txt b/tools/distrib/linux/README.txt deleted file mode 100644 index 441729a9c..000000000 --- a/tools/distrib/linux/README.txt +++ /dev/null @@ -1,96 +0,0 @@ -Chromium Embedded Framework (CEF) Binary Distribution -------------------------------------------------------------------------------- - -Date: $DATE$ - -CEF Version: $CEF_VER$ -CEF URL: $CEF_URL$@$CEF_REV$ - -Chromium Verison: $CHROMIUM_VER$ -Chromium URL: $CHROMIUM_URL$@$CHROMIUM_REV$ - - -This distribution contains all components necessary to build and distribute an -application using CEF. Please see the LICENSING section of this document for -licensing terms and conditions. - - -CONTENTS --------- - -cefclient Contains the cefclient sample application configured to build - using the files in this distribution. - -Debug Contains libcef.so and other components required to run the debug - version of CEF-based applications. By default these files should be - placed in the same directory as the executable and will be copied - there as part of the build process. - -docs Contains C++ API documentation generated from the CEF header files. - -include Contains all required CEF header files. - -libcef_dll Contains the source code for the libcef_dll_wrapper static library - that all applications using the CEF C++ API must link against. - -Release Contains libcef.so and other components required to run the release - version of CEF-based applications. By default these files should be - placed in the same directory as the executable and will be copied - there as part of the build process. - -Resources Contains resources required by libcef.so. By default these files - should be placed in the same directory as libcef.so and will be - copied there as part of the build process. - - -USAGE ------ - -Run 'build.sh Debug' to build the cefclient target in Debug mode. - -Please visit the CEF Website for additional usage information. - -http://code.google.com/p/chromiumembedded - - -REDISTRIBUTION --------------- - -This binary distribution contains the below components. Components listed under -the "required" section must be redistributed with all applications using CEF. -Components listed under the "optional" section may be excluded if the related -features will not be used. - -Required components: - -* CEF core library - libcef.so - -Optional components: - -* Localized resources - locales/ - Note: Contains localized strings for WebKit UI controls. A .pak file is loaded - from this folder based on the value of environment variables which are read - with the following precedence order: LANGUAGE, LC_ALL, LC_MESSAGES and LANG. - Only configured locales need to be distributed. If no locale is configured the - default locale of "en-US" will be used. Locale file loading can be disabled - completely using CefSettings.pack_loading_disabled. The locales folder path - can be customized using CefSettings.locales_dir_path. - -* Other resources - cef.pak - devtools_resources.pak - Note: Contains WebKit image and inspector resources. Pack file loading can be - disabled completely using CefSettings.pack_loading_disabled. The resources - directory path can be customized using CefSettings.resources_dir_path. - - -LICENSING ---------- - -The CEF project is BSD licensed. Please read the LICENSE.txt file included with -this binary distribution for licensing terms and conditions. Other software -included in this distribution is provided under other licenses. Please visit -"about:credits" in a CEF-based application for complete Chromium and third-party -licensing information. diff --git a/tools/distrib/mac/README.minimal.txt b/tools/distrib/mac/README.minimal.txt new file mode 100644 index 000000000..ca029178e --- /dev/null +++ b/tools/distrib/mac/README.minimal.txt @@ -0,0 +1,17 @@ +CONTENTS +-------- + +Release Contains libcef.dylib and other components required to run the + release version of CEF-based applications. + +Resources Contains images and resources required by applications using CEF. + The contents of this folder should be transferred to the + Contents/Resources folder in the app bundle. + + +USAGE +----- + +Please visit the CEF Website for additional usage information. + +http://code.google.com/p/chromiumembedded diff --git a/tools/distrib/mac/README.redistrib.txt b/tools/distrib/mac/README.redistrib.txt new file mode 100644 index 000000000..516886dc8 --- /dev/null +++ b/tools/distrib/mac/README.redistrib.txt @@ -0,0 +1,37 @@ +REDISTRIBUTION +-------------- + +This binary distribution contains the below components. Components listed under +the "required" section must be redistributed with all applications using CEF. +Components listed under the "optional" section may be excluded if the related +features will not be used. + +Required components: + +* CEF core library + libcef.dylib + +* Cursor resources + Resources/*.png + Resources/*.tiff + +Optional components: + +* Localized resources + Resources/*.lproj/ + Note: Contains localized strings for WebKit UI controls. A .pak file is loaded + from this folder based on the CefSettings.locale value. Only configured + locales need to be distributed. If no locale is configured the default locale + of "en" will be used. Locale file loading can be disabled completely using + CefSettings.pack_loading_disabled. + +* Other resources + Resources/cef.pak + Resources/devtools_resources.pak + Note: Contains WebKit image and inspector resources. Pack file loading can be + disabled completely using CefSettings.pack_loading_disabled. The resources + directory path can be customized using CefSettings.resources_dir_path. + +* FFmpeg audio and video support + ffmpegsumo.so + Note: Without this component HTML5 audio and video will not function. diff --git a/tools/distrib/mac/README.standard.txt b/tools/distrib/mac/README.standard.txt new file mode 100644 index 000000000..a37501cf8 --- /dev/null +++ b/tools/distrib/mac/README.standard.txt @@ -0,0 +1,36 @@ +CONTENTS +-------- + +cefclient Contains the cefclient sample application configured to build + using the files in this distribution. + +Debug Contains libcef.dylib and other components required to run the debug + version of CEF-based applications. + +include Contains all required CEF header files. + +libcef_dll Contains the source code for the libcef_dll_wrapper static library + that all applications using the CEF C++ API must link against. + +Release Contains libcef.dylib and other components required to run the + release version of CEF-based applications. + +Resources Contains images and resources required by applications using CEF. + The contents of this folder should be transferred to the + Contents/Resources folder in the app bundle. + +tools Scripts that perform post-processing on Mac release targets. + + +USAGE +----- + +Xcode 3 and 4: Open the cefclient.xcodeproj project and build. + +When using Xcode 4.2 or newer you will need to change the "Compiler for +C/C++/Objective-C" setting to "LLVM GCC 4.2" under "Build Settings" for +each target. + +Please visit the CEF Website for additional usage information. + +http://code.google.com/p/chromiumembedded diff --git a/tools/distrib/mac/README.txt b/tools/distrib/mac/README.txt deleted file mode 100644 index b77d77cf7..000000000 --- a/tools/distrib/mac/README.txt +++ /dev/null @@ -1,104 +0,0 @@ -Chromium Embedded Framework (CEF) Binary Distribution -------------------------------------------------------------------------------- - -Date: $DATE$ - -CEF Version: $CEF_VER$ -CEF URL: $CEF_URL$@$CEF_REV$ - -Chromium Verison: $CHROMIUM_VER$ -Chromium URL: $CHROMIUM_URL$@$CHROMIUM_REV$ - - -This distribution contains all components necessary to build and distribute an -application using CEF. Please see the LICENSING section of this document for -licensing terms and conditions. - - -CONTENTS --------- - -cefclient Contains the cefclient sample application configured to build - using the files in this distribution. - -Debug Contains libcef.dylib and other components required to run the debug - version of CEF-based applications. - -docs Contains C++ API documentation generated from the CEF header files. - -include Contains all required CEF header files. - -libcef_dll Contains the source code for the libcef_dll_wrapper static library - that all applications using the CEF C++ API must link against. - -Release Contains libcef.dylib and other components required to run the - release version of CEF-based applications. - -Resources Contains images and resources required by applications using CEF. - The contents of this folder should be transferred to the - Contents/Resources folder in the app bundle. - -tools Scripts that perform post-processing on Mac release targets. - - -USAGE ------ - -Xcode 3 and 4: Open the cefclient.xcodeproj project and build. - -When using Xcode 4.2 or newer you will need to change the "Compiler for -C/C++/Objective-C" setting to "LLVM GCC 4.2" under "Build Settings" for -each target. - -Please visit the CEF Website for additional usage information. - -http://code.google.com/p/chromiumembedded - - -REDISTRIBUTION --------------- - -This binary distribution contains the below components. Components listed under -the "required" section must be redistributed with all applications using CEF. -Components listed under the "optional" section may be excluded if the related -features will not be used. - -Required components: - -* CEF core library - libcef.dylib - -* Cursor resources - Resources/*.png - Resources/*.tiff - -Optional components: - -* Localized resources - Resources/*.lproj/ - Note: Contains localized strings for WebKit UI controls. A .pak file is loaded - from this folder based on the CefSettings.locale value. Only configured - locales need to be distributed. If no locale is configured the default locale - of "en" will be used. Locale file loading can be disabled completely using - CefSettings.pack_loading_disabled. - -* Other resources - Resources/cef.pak - Resources/devtools_resources.pak - Note: Contains WebKit image and inspector resources. Pack file loading can be - disabled completely using CefSettings.pack_loading_disabled. The resources - directory path can be customized using CefSettings.resources_dir_path. - -* FFmpeg audio and video support - ffmpegsumo.so - Note: Without this component HTML5 audio and video will not function. - - -LICENSING ---------- - -The CEF project is BSD licensed. Please read the LICENSE.txt file included with -this binary distribution for licensing terms and conditions. Other software -included in this distribution is provided under other licenses. Please visit -"about:credits" in a CEF-based application for complete Chromium and third-party -licensing information. diff --git a/tools/distrib/win/README.minimal.txt b/tools/distrib/win/README.minimal.txt new file mode 100644 index 000000000..ac450fbd2 --- /dev/null +++ b/tools/distrib/win/README.minimal.txt @@ -0,0 +1,19 @@ +CONTENTS +-------- + +Release Contains libcef.dll, libcef.lib and other components required to + build and run the release version of CEF-based applications. By + default these files should be placed in the same directory as the + executable. + +Resources Contains resources required by libcef.dll. By default these files + should be placed in the same directory as libcef.dll. By default + these files should be placed in the same directory as libcef.dll. + + +USAGE +----- + +Please visit the CEF Website for additional usage information. + +http://code.google.com/p/chromiumembedded diff --git a/tools/distrib/win/README.redistrib.txt b/tools/distrib/win/README.redistrib.txt new file mode 100644 index 000000000..a2583bf3e --- /dev/null +++ b/tools/distrib/win/README.redistrib.txt @@ -0,0 +1,45 @@ +REDISTRIBUTION +-------------- + +This binary distribution contains the below components. Components listed under +the "required" section must be redistributed with all applications using CEF. +Components listed under the "optional" section may be excluded if the related +features will not be used. + +Required components: + +* CEF core library + libcef.dll + +* Unicode support + icudt.dll + +Optional components: + +* Localized resources + locales/ + Note: Contains localized strings for WebKit UI controls. A .pak file is loaded + from this folder based on the CefSettings.locale value. Only configured + locales need to be distributed. If no locale is configured the default locale + of "en-US" will be used. Locale file loading can be disabled completely using + CefSettings.pack_loading_disabled. The locales folder path can be customized + using CefSettings.locales_dir_path. + +* Other resources + cef.pak + devtools_resources.pak + Note: Contains WebKit image and inspector resources. Pack file loading can be + disabled completely using CefSettings.pack_loading_disabled. The resources + directory path can be customized using CefSettings.resources_dir_path. + +* FFmpeg audio and video support + ffmpegsumo.dll + Note: Without this component HTML5 audio and video will not function. + +* Angle and Direct3D support + d3dcompiler_43.dll (required for Windows XP) + d3dcompiler_46.dll (required for Windows Vista and newer) + libEGL.dll + libGLESv2.dll + Note: Without these components HTML5 accelerated content like 2D canvas, 3D + CSS and WebGL will not function. diff --git a/tools/distrib/win/README.standard.txt b/tools/distrib/win/README.standard.txt new file mode 100644 index 000000000..b8b072d35 --- /dev/null +++ b/tools/distrib/win/README.standard.txt @@ -0,0 +1,46 @@ +CONTENTS +-------- + +cefclient Contains the cefclient sample application configured to build + using the files in this distribution. + +Debug Contains libcef.dll, libcef.lib and other components required to + build and run the debug version of CEF-based applications. By + default these files should be placed in the same directory as the + executable and will be copied there as part of the build process. + +include Contains all required CEF header files. + +libcef_dll Contains the source code for the libcef_dll_wrapper static library + that all applications using the CEF C++ API must link against. + +Release Contains libcef.dll, libcef.lib and other components required to + build and run the release version of CEF-based applications. By + default these files should be placed in the same directory as the + executable and will be copied there as part of the build process. + +Resources Contains resources required by libcef.dll. By default these files + should be placed in the same directory as libcef.dll. By default + these files should be placed in the same directory as libcef.dll + and will be copied there as part of the build process. + + +USAGE +----- + +Visual Studio 2012 and Visual Studio 2010: + Open the cefclient2010.sln solution in Visual Studio and build. + +Visual Studio 2008: + Open the cefclient2008.sln solution in Visual Studio and build. + +Visual Studio 2005: + 1. Open the cefclient.vcproj and libcef_dll_wrapper.vcproj files in a text + editor. Change Version="9.00" to Version="8.00". + 2. Open the cefclient2005.sln file in a text editor. Change "Version 9.00" to + "Version 8.00". + 3. Open the cefclient2005.sln solution in Visual Studio and build. + +Please visit the CEF Website for additional usage information. + +http://code.google.com/p/chromiumembedded diff --git a/tools/distrib/win/README.txt b/tools/distrib/win/README.txt deleted file mode 100644 index 2923fd1d1..000000000 --- a/tools/distrib/win/README.txt +++ /dev/null @@ -1,118 +0,0 @@ -Chromium Embedded Framework (CEF) Binary Distribution -------------------------------------------------------------------------------- - -Date: $DATE$ - -CEF Version: $CEF_VER$ -CEF URL: $CEF_URL$@$CEF_REV$ - -Chromium Verison: $CHROMIUM_VER$ -Chromium URL: $CHROMIUM_URL$@$CHROMIUM_REV$ - - -This distribution contains all components necessary to build and distribute an -application using CEF. Please see the LICENSING section of this document for -licensing terms and conditions. - - -CONTENTS --------- - -cefclient Contains the cefclient sample application configured to build - using the files in this distribution. - -Debug Contains libcef.dll and other components required to run the debug - version of CEF-based applications. Also acts as the build target for - the Debug build of cefclient. - -docs Contains C++ API documentation generated from the CEF header files. - -include Contains all required CEF header files. - -lib Contains Debug and Release versions of the libcef.lib library file - that all CEF-based applications must link against. - -libcef_dll Contains the source code for the libcef_dll_wrapper static library - that all applications using the CEF C++ API must link against. - -Release Contains libcef.dll and other components required to run the release - version of CEF-based applications. Also acts as the build target for - the Release build of cefclient. - - -USAGE ------ - -Visual Studio 2012 and Visual Studio 2010: - Open the cefclient2010.sln solution in Visual Studio and build. - -Visual Studio 2008: - Open the cefclient2008.sln solution in Visual Studio and build. - -Visual Studio 2005: - 1. Open the cefclient.vcproj and libcef_dll_wrapper.vcproj files in a text - editor. Change Version="9.00" to Version="8.00". - 2. Open the cefclient2005.sln file in a text editor. Change "Version 9.00" to - "Version 8.00". - 3. Open the cefclient2005.sln solution in Visual Studio and build. - -Please visit the CEF Website for additional usage information. - -http://code.google.com/p/chromiumembedded - - -REDISTRIBUTION --------------- - -This binary distribution contains the below components. Components listed under -the "required" section must be redistributed with all applications using CEF. -Components listed under the "optional" section may be excluded if the related -features will not be used. - -Required components: - -* CEF core library - libcef.dll - -* Unicode support - icudt.dll - -Optional components: - -* Localized resources - locales/ - Note: Contains localized strings for WebKit UI controls. A .pak file is loaded - from this folder based on the CefSettings.locale value. Only configured - locales need to be distributed. If no locale is configured the default locale - of "en-US" will be used. Locale file loading can be disabled completely using - CefSettings.pack_loading_disabled. The locales folder path can be customized - using CefSettings.locales_dir_path. - -* Other resources - cef.pak - devtools_resources.pak - Note: Contains WebKit image and inspector resources. Pack file loading can be - disabled completely using CefSettings.pack_loading_disabled. The resources - directory path can be customized using CefSettings.resources_dir_path. - -* FFmpeg audio and video support - ffmpegsumo.dll - Note: Without this component HTML5 audio and video will not function. - -* Angle and Direct3D support - d3dcompiler_43.dll (required for Windows XP) - d3dcompiler_46.dll (required for Windows Vista and newer) - libEGL.dll - libGLESv2.dll - Note: Without these components HTML5 accelerated content like 2D canvas, 3D - CSS and WebGL will not function. - - -LICENSING ---------- - -The CEF project is BSD licensed. Please read the LICENSE.txt file included with -this binary distribution for licensing terms and conditions. Other software -included in this distribution is provided under other licenses. Please visit -"about:credits" in a CEF-based application for complete Chromium and third-party -licensing information. diff --git a/tools/make_distrib.py b/tools/make_distrib.py index 53f3407de..5ec1b883b 100644 --- a/tools/make_distrib.py +++ b/tools/make_distrib.py @@ -28,10 +28,47 @@ def create_archive(input_dir, zip_file): addDir(input_dir) zf.close() -def create_readme(src, output_dir, cef_url, cef_rev, cef_ver, chromium_url, \ - chromium_rev, chromium_ver, date): +def create_output_dir(name, parent_dir): + """ Creates an output directory and adds the path to the archive list. """ + output_dir = os.path.abspath(os.path.join(parent_dir, name)) + remove_dir(output_dir, options.quiet) + make_dir(output_dir, options.quiet) + archive_dirs.append(output_dir) + return output_dir + +def get_readme_component(name): + """ Loads a README file component. """ + paths = [] + # platform directory + if platform == 'windows': + platform_cmp = 'win' + elif platmform == 'macosx': + platform_cmp = 'mac' + elif platform == 'linux': + platform_cmp = 'linux' + paths.append(os.path.join(script_dir, 'distrib', platform_cmp)) + + # shared directory + paths.append(os.path.join(script_dir, 'distrib')) + + # load the file if it exists + for path in paths: + file = os.path.join(path, 'README.' +name + '.txt') + if path_exists(file): + return read_file(file) + + raise Exception('Readme component not found: ' + name) + +def create_readme(): """ Creates the README.TXT file. """ - data = read_file(src) + # gather the components + header_data = get_readme_component('header') + mode_data = get_readme_component(mode) + redistrib_data = get_readme_component('redistrib') + footer_data = get_readme_component('footer') + + # format the file + data = header_data + '\n\n' + mode_data + '\n\n' + redistrib_data + '\n\n' + footer_data data = data.replace('$CEF_URL$', cef_url) data = data.replace('$CEF_REV$', cef_rev) data = data.replace('$CEF_VER$', cef_ver) @@ -39,6 +76,35 @@ def create_readme(src, output_dir, cef_url, cef_rev, cef_ver, chromium_url, \ data = data.replace('$CHROMIUM_REV$', chromium_rev) data = data.replace('$CHROMIUM_VER$', chromium_ver) data = data.replace('$DATE$', date) + + if platform == 'windows': + platform_str = 'Windows' + elif platmform == 'macosx': + platform_str = 'Mac OS-X' + elif platform == 'linux': + platform_str = 'Linux' + + data = data.replace('$PLATFORM$', platform_str) + + if mode == 'standard': + distrib_type = 'Standard' + distrib_desc = 'This distribution contains all components necessary to build and distribute an\n' \ + 'application using CEF on the ' + platform_str + ' platform. Please see the LICENSING\n' \ + 'section of this document for licensing terms and conditions.' + elif mode == 'minimal': + distrib_type = 'Minimal' + distrib_desc = 'This distribution contains only the components required to distribute an\n' \ + 'application using CEF on the ' + platform_str + ' platform. Please see the LICENSING\n' \ + 'section of this document for licensing terms and conditions.' + elif mode == 'client': + distrib_type = 'Client' + distrib_desc = 'This distribution contains a release build of the cefclient sample application\n' \ + 'for the ' + platform_str + ' platform. Please see the LICENSING section of this document for\n' \ + 'licensing terms and conditions.' + + data = data.replace('$DISTRIB_TYPE$', distrib_type) + data = data.replace('$DISTRIB_DESC$', distrib_desc) + write_file(os.path.join(output_dir, 'README.txt'), data) if not options.quiet: sys.stdout.write('Creating README.TXT file.\n') @@ -108,8 +174,13 @@ def generate_msvs_projects(version): move_file(os.path.relpath(os.path.join(output_dir, 'cefclient.sln')), \ os.path.relpath(os.path.join(output_dir, 'cefclient'+version+'.sln'))) -def fix_msvs_projects(): - """ Fix the output directory path in all .vcproj and .vcxproj files. """ +def create_msvs_projects(): + """ Create MSVS project files. """ + generate_msvs_projects('2005'); + generate_msvs_projects('2008'); + generate_msvs_projects('2010'); + + # Fix the output directory path in all .vcproj and .vcxproj files. files = [] for file in get_files(os.path.join(output_dir, '*.vcproj')): files.append(file) @@ -117,12 +188,52 @@ def fix_msvs_projects(): files.append(file) for file in files: data = read_file(file) - data = data.replace('../../..\\build\\', '') - data = data.replace('..\\..\\..\\build\\', '') + # fix the build directory path + data = data.replace('../../..\\build\\', 'out\\') + data = data.replace('..\\..\\..\\build\\', 'out\\') + # fix xcopy arguments + data = data.replace('xcopy \\', 'xcopy /') write_file(file, data) -def fix_make_projects(): - """ Fix the output directory path in Makefile all .mk files. """ +def create_xcode_projects(): + """ Create Xcode project files. """ + sys.stdout.write('Generating Xcode project files...') + os.environ['GYP_GENERATORS'] = 'xcode' + gyper = [ 'python', 'tools/gyp_cef', os.path.relpath(os.path.join(output_dir, 'cefclient.gyp'), cef_dir) ] + RunAction(cef_dir, gyper); + + # Post-process the Xcode project to fix file paths + src_file = os.path.join(output_dir, 'cefclient.xcodeproj/project.pbxproj') + data = read_file(src_file) + data = data.replace('../../../build/mac/', 'tools/') + data = data.replace('../../../build', 'build') + data = data.replace('../../../xcodebuild', 'xcodebuild') + write_file(src_file, data) + +def create_make_projects(): + """ Create make project files. """ + makefile = os.path.join(src_dir, 'Makefile') + makefile_tmp = '' + if path_exists(makefile): + # Back up the existing Makefile + makefile_tmp = makefile + '.cef_bak' + copy_file(makefile, makefile_tmp, options.quiet) + + # Generate make project files + sys.stdout.write('Generating make project files...') + os.environ['GYP_GENERATORS'] = 'make' + 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) + + remove_file(makefile, options.quiet) + if makefile_tmp != '': + # Restore the original Makefile + move_file(makefile_tmp, makefile, options.quiet) + + # 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')): @@ -165,13 +276,22 @@ parser.add_option('--allow-partial', help='allow creation of partial distributions') parser.add_option('--no-symbols', action='store_true', dest='nosymbols', default=False, - help='do not create symbol files') + help='don\'t create symbol files') +parser.add_option('--no-docs', + action='store_true', dest='nodocs', default=False, + help='don\'t create documentation') +parser.add_option('--no-archive', + action='store_true', dest='noarchive', default=False, + help='don\'t create archives for output directories') parser.add_option('--ninja-build', action='store_true', dest='ninjabuild', default=False, help='build was created using ninja') parser.add_option('--minimal', action='store_true', dest='minimal', default=False, help='include only release build binary files') +parser.add_option('--client', + action='store_true', dest='client', default=False, + help='include only the cefclient application') parser.add_option('-q', '--quiet', action='store_true', dest='quiet', default=False, help='do not output detailed status information') @@ -179,7 +299,12 @@ parser.add_option('-q', '--quiet', # the outputdir option is required if options.outputdir is None: - parser.print_help(sys.stdout) + parser.print_help(sys.stderr) + sys.exit() + +if options.minimal and options.client: + print 'Invalid combination of options' + parser.print_help(sys.stderr) sys.exit() # script directory @@ -217,20 +342,26 @@ elif sys.platform == 'darwin': elif sys.platform.startswith('linux'): platform = 'linux' -# output directory -output_dir_name = 'cef_binary_'+cef_ver+'_'+platform -if options.minimal: - output_dir_name = output_dir_name + '_minimal' -output_dir = os.path.abspath(os.path.join(options.outputdir, output_dir_name)) -remove_dir(output_dir, options.quiet) -make_dir(output_dir, options.quiet) +# list of output directories to be archived +archive_dirs = [] -if not options.nosymbols: - # symbol directory - symbol_dir_name = output_dir_name + '_symbols' - symbol_dir = os.path.abspath(os.path.join(options.outputdir, symbol_dir_name)) - remove_dir(symbol_dir, options.quiet) - make_dir(symbol_dir, options.quiet) +# output directory +output_dir_base = 'cef_binary_' + cef_ver +output_dir_name = output_dir_base + '_' + platform + +if options.minimal: + mode = 'minimal' + output_dir_name = output_dir_name + '_minimal' +elif options.client: + mode = 'client' + output_dir_name = output_dir_name + '_client' +else: + mode = 'standard' + +output_dir = create_output_dir(output_dir_name, options.outputdir) + +# create the README.TXT file +create_readme() # transfer the LICENSE.txt file copy_file(os.path.join(cef_dir, 'LICENSE.txt'), output_dir, options.quiet) @@ -243,7 +374,7 @@ cef_paths = cef_paths['variables'] cef_paths2 = eval_file(os.path.join(cef_dir, 'cef_paths2.gypi')) cef_paths2 = cef_paths2['variables'] -if not options.minimal: +if mode == 'standard': # create the include directory include_dir = os.path.join(output_dir, 'include') make_dir(include_dir, options.quiet) @@ -294,11 +425,71 @@ if not options.minimal: output_dir, options.quiet) if platform == 'windows': - # create the README.TXT file - create_readme(os.path.join(script_dir, 'distrib/win/README.txt'), output_dir, cef_url, \ - cef_rev, cef_ver, chromium_url, chromium_rev, chromium_ver, date) + if options.ninjabuild: + out_dir = os.path.join(src_dir, 'out') + libcef_dll_file = 'libcef.dll.lib' + else: + out_dir = os.path.join(src_dir, 'build') + libcef_dll_file = 'lib/libcef.lib' - if not options.minimal: + valid_build_dir = None + + if mode == 'standard': + # transfer Debug files + build_dir = os.path.join(out_dir, 'Debug'); + if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient.exe')): + valid_build_dir = build_dir + dst_dir = os.path.join(output_dir, 'Debug') + make_dir(dst_dir, options.quiet) + copy_files(os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet) + copy_files(os.path.join(build_dir, '*.dll'), dst_dir, options.quiet) + copy_file(os.path.join(build_dir, libcef_dll_file), os.path.join(dst_dir, 'libcef.lib'), \ + options.quiet) + + if not options.nosymbols: + # create the symbol output directory + symbol_output_dir = create_output_dir(output_dir_name + '_debug_symbols', options.outputdir) + # transfer contents + copy_file(os.path.join(build_dir, 'libcef.dll.pdb'), symbol_output_dir, options.quiet) + else: + sys.stderr.write("No Debug build files.\n") + + # transfer Release files + build_dir = os.path.join(out_dir, 'Release'); + if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient.exe')): + valid_build_dir = build_dir + dst_dir = os.path.join(output_dir, 'Release') + make_dir(dst_dir, options.quiet) + copy_files(os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet) + copy_files(os.path.join(build_dir, '*.dll'), dst_dir, options.quiet) + + if mode != 'client': + copy_file(os.path.join(build_dir, libcef_dll_file), os.path.join(dst_dir, 'libcef.lib'), \ + options.quiet) + else: + copy_file(os.path.join(build_dir, 'cefclient.exe'), dst_dir, options.quiet) + + if not options.nosymbols: + # create the symbol output directory + symbol_output_dir = create_output_dir(output_dir_name + '_release_symbols', options.outputdir) + # transfer contents + copy_file(os.path.join(build_dir, 'libcef.dll.pdb'), symbol_output_dir, options.quiet) + else: + sys.stderr.write("No Release build files.\n") + + if not valid_build_dir is None: + # transfer resource files + build_dir = valid_build_dir + if mode == 'client': + dst_dir = os.path.join(output_dir, 'Release') + else: + 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, 'devtools_resources.pak'), dst_dir, options.quiet) + copy_dir(os.path.join(build_dir, 'locales'), os.path.join(dst_dir, 'locales'), options.quiet) + + if mode == 'standard': # transfer include files transfer_gypi_files(cef_dir, cef_paths2['includes_win'], \ 'include/', include_dir, options.quiet) @@ -307,87 +498,74 @@ if platform == 'windows': transfer_gypi_files(cef_dir, cef_paths2['cefclient_sources_win'], \ 'tests/cefclient/', cefclient_dir, options.quiet) - if options.ninjabuild: - out_dir = os.path.join(src_dir, 'out') - libcef_dll_file = 'libcef.dll.lib' - else: - out_dir = os.path.join(src_dir, 'build') - libcef_dll_file = 'lib/libcef.lib' - - if not options.minimal: - # transfer build/Debug files - build_dir = os.path.join(out_dir, 'Debug'); - if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient.exe')): - dst_dir = os.path.join(output_dir, 'Debug') - make_dir(dst_dir, options.quiet) - copy_files(os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet) - copy_files(os.path.join(build_dir, '*.dll'), dst_dir, options.quiet) - copy_file(os.path.join(build_dir, 'cefclient.exe'), 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) - - # transfer lib/Debug files - dst_dir = os.path.join(output_dir, 'lib/Debug') - make_dir(dst_dir, options.quiet) - copy_file(os.path.join(build_dir, libcef_dll_file), os.path.join(dst_dir, 'libcef.lib'), \ - options.quiet) - else: - sys.stderr.write("No Debug build files.\n") - - # transfer build/Release files - build_dir = os.path.join(out_dir, 'Release'); - if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient.exe')): - dst_dir = os.path.join(output_dir, 'Release') - make_dir(dst_dir, options.quiet) - copy_files(os.path.join(script_dir, 'distrib/win/*.dll'), dst_dir, options.quiet) - copy_files(os.path.join(build_dir, '*.dll'), dst_dir, options.quiet) - if not options.minimal: - copy_file(os.path.join(build_dir, 'cefclient.exe'), 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) - - # transfer lib/Release files - dst_dir = os.path.join(output_dir, 'lib/Release') - make_dir(dst_dir, options.quiet) - copy_file(os.path.join(build_dir, libcef_dll_file), os.path.join(dst_dir, 'libcef.lib'), \ - options.quiet) - - if not options.nosymbols: - # transfer symbols - copy_file(os.path.join(build_dir, 'libcef.dll.pdb'), symbol_dir, options.quiet) - else: - sys.stderr.write("No Release build files.\n") - - if not options.minimal: - # generate doc files - os.popen('make_cppdocs.bat '+cef_rev) - - # transfer docs files - dst_dir = os.path.join(output_dir, 'docs') - src_dir = os.path.join(cef_dir, 'docs') - if path_exists(src_dir): - copy_dir(src_dir, dst_dir, options.quiet) - # transfer additional files, if any transfer_files(cef_dir, script_dir, os.path.join(script_dir, 'distrib/win/transfer.cfg'), \ output_dir, options.quiet) - # generate the project files - generate_msvs_projects('2005'); - generate_msvs_projects('2008'); - generate_msvs_projects('2010'); - fix_msvs_projects(); + create_msvs_projects() + + if not options.nodocs: + # generate doc files + os.popen('make_cppdocs.bat '+cef_rev) + + src_dir = os.path.join(cef_dir, 'docs') + if path_exists(src_dir): + # create the docs output directory + docs_output_dir = create_output_dir(output_dir_base + '_docs', options.outputdir) + # transfer contents + copy_dir(src_dir, docs_output_dir, options.quiet) elif platform == 'macosx': - # create the README.TXT file - create_readme(os.path.join(script_dir, 'distrib/mac/README.txt'), output_dir, cef_url, \ - cef_rev, cef_ver, chromium_url, chromium_rev, chromium_ver, date) + if options.ninjabuild: + out_dir = os.path.join(src_dir, 'out') + else: + out_dir = os.path.join(src_dir, 'xcodebuild') - if not options.minimal: + valid_build_dir = None + + if mode == 'standard': + # transfer Debug files + build_dir = os.path.join(out_dir, 'Debug') + if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient.app')): + valid_build_dir = build_dir + dst_dir = os.path.join(output_dir, 'Debug') + make_dir(dst_dir, options.quiet) + copy_file(os.path.join(build_dir, 'ffmpegsumo.so'), dst_dir, options.quiet) + copy_file(os.path.join(build_dir, 'libcef.dylib'), dst_dir, options.quiet) + copy_file(os.path.join(build_dir, 'libplugin_carbon_interpose.dylib'), dst_dir, options.quiet) + + # transfer Release files + build_dir = os.path.join(out_dir, 'Release') + if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient.app')): + valid_build_dir = build_dir + dst_dir = os.path.join(output_dir, 'Release') + make_dir(dst_dir, options.quiet) + if mode != 'client': + copy_file(os.path.join(build_dir, 'ffmpegsumo.so'), dst_dir, options.quiet) + copy_file(os.path.join(build_dir, 'libcef.dylib'), dst_dir, options.quiet) + copy_file(os.path.join(build_dir, 'libplugin_carbon_interpose.dylib'), dst_dir, options.quiet) + else: + copy_dir(os.path.join(build_dir, 'cefclient.app'), os.path.join(dst_dir, 'cefclient.app'), options.quiet) + + if not options.nosymbols: + # create the symbol output directory + symbol_output_dir = create_output_dir(output_dir_name + '_release_symbols', options.outputdir) + + # create the real dSYM file from the "fake" dSYM file + sys.stdout.write("Creating the real dSYM file...\n") + src_path = os.path.join(build_dir, 'libcef.dylib.dSYM/Contents/Resources/DWARF/libcef.dylib') + dst_path = os.path.join(symbol_output_dir, 'libcef.dylib.dSYM') + run('dsymutil '+src_path+' -o '+dst_path, cef_dir) + + if not valid_build_dir is None and mode != 'client': + # transfer resource files + build_dir = valid_build_dir + dst_dir = os.path.join(output_dir, 'Resources') + make_dir(dst_dir, options.quiet) + copy_files(os.path.join(build_dir, 'cefclient.app/Contents/Frameworks/Chromium Embedded Framework.framework/Resources/*.*'), \ + dst_dir, options.quiet) + + if mode == 'standard': # transfer include files transfer_gypi_files(cef_dir, cef_paths2['includes_mac'], \ 'include/', include_dir, options.quiet) @@ -404,73 +582,13 @@ elif platform == 'macosx': copy_dir(os.path.join(cef_dir, 'tests/cefclient/mac/'), os.path.join(output_dir, 'cefclient/mac/'), \ options.quiet) - if options.ninjabuild: - out_dir = os.path.join(src_dir, 'out') - else: - out_dir = os.path.join(src_dir, 'xcodebuild') - - valid_build_dir = None - - if not options.minimal: - # transfer xcodebuild/Debug files - build_dir = os.path.join(out_dir, 'Debug') - if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient.app')): - valid_build_dir = build_dir - dst_dir = os.path.join(output_dir, 'Debug') - make_dir(dst_dir, options.quiet) - copy_file(os.path.join(build_dir, 'ffmpegsumo.so'), dst_dir, options.quiet) - copy_file(os.path.join(build_dir, 'libcef.dylib'), dst_dir, options.quiet) - copy_file(os.path.join(build_dir, 'libplugin_carbon_interpose.dylib'), dst_dir, options.quiet) - - # transfer xcodebuild/Release files - build_dir = os.path.join(out_dir, 'Release') - if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient.app')): - valid_build_dir = build_dir - dst_dir = os.path.join(output_dir, 'Release') - make_dir(dst_dir, options.quiet) - copy_file(os.path.join(build_dir, 'ffmpegsumo.so'), dst_dir, options.quiet) - copy_file(os.path.join(build_dir, 'libcef.dylib'), dst_dir, options.quiet) - copy_file(os.path.join(build_dir, 'libplugin_carbon_interpose.dylib'), dst_dir, options.quiet) - - if not options.nosymbols: - # create the real dSYM file from the "fake" dSYM file - sys.stdout.write("Creating the real dSYM file...\n") - src_path = os.path.join(build_dir, 'libcef.dylib.dSYM/Contents/Resources/DWARF/libcef.dylib') - dst_path = os.path.join(symbol_dir, 'libcef.dylib.dSYM') - run('dsymutil '+src_path+' -o '+dst_path, cef_dir) - - if not valid_build_dir is None: - # transfer resource files - build_dir = valid_build_dir - dst_dir = os.path.join(output_dir, 'Resources') - make_dir(dst_dir, options.quiet) - copy_files(os.path.join(build_dir, 'cefclient.app/Contents/Frameworks/Chromium Embedded Framework.framework/Resources/*.*'), \ - dst_dir, options.quiet) - - if not options.minimal: # transfer additional files, if any transfer_files(cef_dir, script_dir, os.path.join(script_dir, 'distrib/mac/transfer.cfg'), \ output_dir, options.quiet) - # Generate Xcode project files - sys.stdout.write('Generating Xcode project files...') - os.environ['GYP_GENERATORS'] = 'xcode' - gyper = [ 'python', 'tools/gyp_cef', os.path.relpath(os.path.join(output_dir, 'cefclient.gyp'), cef_dir) ] - RunAction(cef_dir, gyper); - - # Post-process the Xcode project to fix file paths - src_file = os.path.join(output_dir, 'cefclient.xcodeproj/project.pbxproj') - data = read_file(src_file) - data = data.replace('../../../build/mac/', 'tools/') - data = data.replace('../../../build', 'build') - data = data.replace('../../../xcodebuild', 'xcodebuild') - write_file(src_file, data) + create_xcode_projects() elif platform == 'linux': - # create the README.TXT file - create_readme(os.path.join(script_dir, 'distrib/linux/README.txt'), output_dir, cef_url, \ - cef_rev, cef_ver, chromium_url, chromium_rev, chromium_ver, date) - out_dir = os.path.join(src_dir, 'out') if options.ninjabuild: lib_dir_name = 'lib' @@ -479,8 +597,8 @@ elif platform == 'linux': valid_build_dir = None - if not options.minimal: - # transfer out/Debug files + if mode == 'standard': + # transfer Debug files build_dir = os.path.join(out_dir, 'Debug'); if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient')): valid_build_dir = build_dir @@ -490,26 +608,32 @@ elif platform == 'linux': else: sys.stderr.write("No Debug build files.\n") - # transfer out/Release files + # transfer Release files build_dir = os.path.join(out_dir, 'Release'); if not options.allowpartial or path_exists(os.path.join(build_dir, 'cefclient')): valid_build_dir = build_dir dst_dir = os.path.join(output_dir, 'Release') make_dir(dst_dir, options.quiet) copy_file(os.path.join(build_dir, lib_dir_name, 'libcef.so'), dst_dir, options.quiet) + + if mode == 'client': + copy_file(os.path.join(build_dir, 'cefclient'), dst_dir, options.quiet) else: sys.stderr.write("No Release build files.\n") if not valid_build_dir is None: # transfer resource files build_dir = valid_build_dir - dst_dir = os.path.join(output_dir, 'Resources') + if mode == 'client': + dst_dir = os.path.join(output_dir, 'Release') + else: + 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, 'devtools_resources.pak'), dst_dir, options.quiet) copy_dir(os.path.join(build_dir, 'locales'), os.path.join(dst_dir, 'locales'), options.quiet) - if not options.minimal: + if mode == 'standard': # transfer include files transfer_gypi_files(cef_dir, cef_paths2['includes_linux'], \ 'include/', include_dir, options.quiet) @@ -525,39 +649,12 @@ elif platform == 'linux': transfer_files(cef_dir, script_dir, os.path.join(script_dir, 'distrib/linux/transfer.cfg'), \ output_dir, options.quiet) - makefile = os.path.join(src_dir, 'Makefile') - makefile_tmp = '' - if path_exists(makefile): - # Back up the existing Makefile - makefile_tmp = makefile + '.cef_bak' - copy_file(makefile, makefile_tmp, options.quiet) + create_make_projects() - # Generate make project files - sys.stdout.write('Generating make project files...') - os.environ['GYP_GENERATORS'] = 'make' - 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) - - remove_file(makefile, options.quiet) - if makefile_tmp != '': - # Restore the original Makefile - move_file(makefile_tmp, makefile, options.quiet) - - # Post-process the make files - fix_make_projects() - -# Create an archive of the output directory -zip_file = output_dir_name + '.zip' -if not options.quiet: - sys.stdout.write('Creating '+zip_file+"...\n") -create_archive(output_dir, os.path.join(output_dir, os.pardir, zip_file)) - -if not options.nosymbols: - # Create an archive of the symbol directory - zip_file = symbol_dir_name + '.zip' - if not options.quiet: - sys.stdout.write('Creating '+zip_file+"...\n") - create_archive(symbol_dir, os.path.join(symbol_dir, os.pardir, zip_file)) +if not options.noarchive: + # create an archive for each output directory + for dir in archive_dirs: + zip_file = os.path.split(dir)[1] + '.zip' + if not options.quiet: + sys.stdout.write('Creating '+zip_file+"...\n") + create_archive(dir, os.path.join(dir, os.pardir, zip_file))