Skip to content
This repository has been archived by the owner on Sep 2, 2021. It is now read-only.

Commit

Permalink
Initial commit.
Browse files Browse the repository at this point in the history
  • Loading branch information
gruehle committed Jun 8, 2012
0 parents commit ac6aee1
Show file tree
Hide file tree
Showing 10 changed files with 2,339 additions and 0 deletions.
27 changes: 27 additions & 0 deletions .gitignore
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,27 @@
# Start by ignoring all
*
# Add appshell source
!appshell/*

# Add gyp/gypi
!appshell.gyp
!appshell_paths.gypi

# Add .gitignore
!.gitignore

# Add project build scripts
!make_appshell_project.sh
!make_appshell_project.bat

# Add project files
!appshell.xcodeproj
!appshell.xcodeproj/project.pbxproj
!appshell.sln
!Brackets.vcxproj
!libcef_dll_wrapper.vcxproj

# Add README
!README.md

# That's all!
1 change: 1 addition & 0 deletions Brackets.vcxproj

Large diffs are not rendered by default.

50 changes: 50 additions & 0 deletions README.md
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,50 @@
## Overview

This is the beginnings of a new CEF3-based application shell for Brackets. It is **not** ready for use yet, so please continue to use the existing [brackets-app](https://github.com/adobe/brackets-app) shell until further notice.

If you are interested in contributing to this shell, let us know on the [brackets-dev Google Group](http://groups.google.com/group/brackets-dev), or on the [#brackets channel on freenode](http://webchat.freenode.net/?channels=brackets).

## Building

This project requires a CEF3 binary distribution in order to build.

### Mac
####Prerequisites

* XCode 3.2.6 or later required to build the project
* CEF3 binary distribution version 3.1157.677 or newer
* To modify the project files, you will also need:
* python
* chromium source code (at least the src/build and src/tools directories). Hopefully this is a short-term requirement.

####Setup and Building
Copy all of the contents of the CEF3 binary distribution into the same directory as this file. Open appshell.pbxproj in XCode. NOTE: If you are using XCode 4, do **not** select "Project Modernization" or you will get compile errors.

####Generating Projects
This is only required if you are changing the project files. **NOTE:** Don't change the xcode project files directly. Any changes should be done to the .gyp files, and new xcode projects should be generated.

* Add a <code>CHROMIUM\_SRC\_PATH</code> environment variable that points to your chromium 'src' folder (without a final '/').
* Open a terminal window on this directory and run <code>make\_appshell\_project.sh</code> (Note: while not required, it is a good idea to delete the old appshell.xcodeproj before generating a new one.)

### Windows

####Prerequisites

* Visual Studio 2010 or later required to build the project. The free Visual Studio Express works fine.
* CEF3 binary distribution version 3.1142.654 or newer
* To modify the project files, you will also need:
* python
* chromium source code (at least the src/build and src/tools directories). Hopefully this is a short-term requirement.

####Setup and Building
Copy all of the contents of the CEF3 binary distribution into the same directory as this file. Open appshell.sln in Visual Studio. NOTE: If you are using Visual Studio Express, you may get warnings that say some of the projects couldn't be loaded. These can be ignored.

####Generating Projects
This is only required if you are changing the project files. **NOTE:** Don't change the Visual Studio project files directly. Any changes should be done to the .gyp files, and new Visual Studio projects should be generated.

* Add a <code>CHROMIUM\_SRC\_PATH</code> environment variable that points to your chromium 'src' folder (without a final '/').
* Open a command prompt on this directory and run <code>make\_appshell\_project.bat</code>

### Linux

Not available yet. Please let us know if you'd like to help with the Linux version.
267 changes: 267 additions & 0 deletions appshell.gyp
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,267 @@
# Copyright (c) 2011 The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that
# can be found in the LICENSE file.

{
'variables': {
'appname': 'Brackets',
'mac_sdk': '10.6',
'chromium_code': 1,
'conditions': [
[ 'OS=="mac"', {
# Don't use clang with CEF binary releases due to Chromium tree structure dependency.
'clang': 0,
}]
]
},
'includes': [
# Bring in the source file lists for appshell.
'appshell_paths.gypi',
],
'targets': [
{
'target_name': '<(appname)',
'type': 'executable',
'mac_bundle': 1,
'msvs_guid': '6617FED9-C5D4-4907-BF55-A90062A6683F',
'dependencies': [
'libcef_dll_wrapper',
],
'defines': [
'USING_CEF_SHARED',
],
'include_dirs': [
'.',
],
'sources': [
'<@(includes_common)',
'<@(includes_wrapper)',
'<@(appshell_sources_common)',
],
'mac_bundle_resources': [
'<@(appshell_bundle_resources_mac)',
],
'mac_bundle_resources!': [
# TODO(mark): Come up with a fancier way to do this (mac_info_plist?)
# that automatically sets the correct INFOPLIST_FILE setting and adds
# the file to a source group.
'appshell/mac/Info.plist',
],
'xcode_settings': {
'INFOPLIST_FILE': 'appshell/mac/Info.plist',
# Necessary to avoid an "install_name_tool: changing install names or
# rpaths can't be redone" error.
'OTHER_LDFLAGS': ['-Wl,-headerpad_max_install_names'], 'SYMROOT': 'xcodebuild',
# Target build path.
'SYMROOT': 'xcodebuild',
},
'conditions': [
['OS=="win"', {
'configurations': {
'Common_Base': {
'msvs_configuration_attributes': {
'OutputDirectory': '$(ConfigurationName)',
},
},
},
'msvs_settings': {
'VCLinkerTool': {
# Set /SUBSYSTEM:WINDOWS.
'SubSystem': '2',
'EntryPointSymbol' : 'wWinMainCRTStartup',
},
},
'link_settings': {
'libraries': [
'-lcomctl32.lib',
'-lshlwapi.lib',
'-lrpcrt4.lib',
'-lopengl32.lib',
'-lglu32.lib',
'-llib/$(ConfigurationName)/libcef.lib'
],
},
'sources': [
'<@(includes_win)',
'<@(appshell_sources_win)',
],
}],
[ 'OS=="mac"', {
'product_name': '<(appname)',
'dependencies': [
'appshell_helper_app',
],
'copies': [
{
# Add library dependencies to the bundle.
'destination': '<(PRODUCT_DIR)/<(appname).app/Contents/Frameworks/Chromium Embedded Framework.framework/Libraries/',
'files': [
'$(CONFIGURATION)/libcef.dylib',
'$(CONFIGURATION)/ffmpegsumo.so',
],
},
{
# Add other resources to the bundle.
'destination': '<(PRODUCT_DIR)/<(appname).app/Contents/Frameworks/Chromium Embedded Framework.framework/',
'files': [
'Resources/',
],
},
{
# Add the helper app.
'destination': '<(PRODUCT_DIR)/<(appname).app/Contents/Frameworks',
'files': [
'<(PRODUCT_DIR)/<(appname) Helper.app',
],
},
],
'postbuilds': [
{
'postbuild_name': 'Fix Framework Link',
'action': [
'install_name_tool',
'-change',
'@executable_path/libcef.dylib',
'@executable_path/../Frameworks/Chromium Embedded Framework.framework/Libraries/libcef.dylib',
'${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
],
},
{
# This postbuid step is responsible for creating the following
# helpers:
#
# <(appname) Helper EH.app and <(appname) Helper NP.app are created
# from <(appname) Helper.app.
#
# The EH helper is marked for an executable heap. The NP helper
# is marked for no PIE (ASLR).
'postbuild_name': 'Make More Helpers',
'action': [
'tools/make_more_helpers.sh',
'Frameworks',
'<(appname)',
],
},
],
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
'$(CONFIGURATION)/libcef.dylib',
],
},
'sources': [
'<@(includes_mac)',
'<@(appshell_sources_mac)',
],
}],
[ 'OS=="linux" or OS=="freebsd" or OS=="openbsd"', {
'copies': [
{
'destination': '<(PRODUCT_DIR)/files',
'files': [
'<@(appshell_bundle_resources_linux)',
],
},
],
'sources': [
'<@(includes_linux)',
'<@(appshell_sources_linux)',
],
}],
],
},
{
'target_name': 'libcef_dll_wrapper',
'type': 'static_library',
'msvs_guid': 'A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9',
'defines': [
'USING_CEF_SHARED',
],
'configurations': {
'Common_Base': {
'msvs_configuration_attributes': {
'OutputDirectory': '$(ConfigurationName)',
},
},
},
'include_dirs': [
'.',
],
'sources': [
'<@(includes_common)',
'<@(includes_capi)',
'<@(includes_wrapper)',
'<@(libcef_dll_wrapper_sources_common)',
],
'xcode_settings': {
# Target build path.
'SYMROOT': 'xcodebuild',
},
},
],
'conditions': [
['OS=="mac"', {
'targets': [
{
'target_name': 'appshell_helper_app',
'type': 'executable',
'variables': { 'enable_wexit_time_destructors': 1, },
'product_name': '<(appname) Helper',
'mac_bundle': 1,
'dependencies': [
'libcef_dll_wrapper',
],
'defines': [
'USING_CEF_SHARED',
],
'include_dirs': [
'.',
],
'link_settings': {
'libraries': [
'$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
'$(CONFIGURATION)/libcef.dylib',
],
},
'sources': [
'<@(appshell_sources_mac_helper)',
],
# TODO(mark): Come up with a fancier way to do this. It should only
# be necessary to list helper-Info.plist once, not the three times it
# is listed here.
'mac_bundle_resources!': [
'appshell/mac/helper-Info.plist',
],
# TODO(mark): For now, don't put any resources into this app. Its
# resources directory will be a symbolic link to the browser app's
# resources directory.
'mac_bundle_resources/': [
['exclude', '.*'],
],
'xcode_settings': {
'INFOPLIST_FILE': 'appshell/mac/helper-Info.plist',
# Necessary to avoid an "install_name_tool: changing install names or
# rpaths can't be redone" error.
'OTHER_LDFLAGS': ['-Wl,-headerpad_max_install_names'], 'SYMROOT': 'xcodebuild',
},
'postbuilds': [
{
# The framework defines its load-time path
# (DYLIB_INSTALL_NAME_BASE) relative to the main executable
# (chrome). A different relative path needs to be used in
# appshell_helper_app.
'postbuild_name': 'Fix Framework Link',
'action': [
'install_name_tool',
'-change',
'@executable_path/libcef.dylib',
'@executable_path/../../../../Frameworks/Chromium Embedded Framework.framework/Libraries/libcef.dylib',
'${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}'
],
},
],
}, # target appshell_helper_app
],
}], # OS=="mac"
],
}
40 changes: 40 additions & 0 deletions appshell.sln
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1,40 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Brackets", "Brackets.vcxproj", "{6617FED9-C5D4-4907-BF55-A90062A6683F}"
ProjectSection(ProjectDependencies) = postProject
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9} = {A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcef_dll_wrapper", "libcef_dll_wrapper.vcxproj", "{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|x64 = Release|x64
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Release|x64.ActiveCfg = Release|x64
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Release|x64.Build.0 = Release|x64
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Debug|Win32.ActiveCfg = Debug|Win32
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Debug|Win32.Build.0 = Debug|Win32
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Debug|x64.ActiveCfg = Debug|x64
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Debug|x64.Build.0 = Debug|x64
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Release|Win32.ActiveCfg = Release|Win32
{6617FED9-C5D4-4907-BF55-A90062A6683F}.Release|Win32.Build.0 = Release|Win32
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}.Release|x64.ActiveCfg = Release|x64
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}.Release|x64.Build.0 = Release|x64
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}.Debug|Win32.ActiveCfg = Debug|Win32
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}.Debug|Win32.Build.0 = Debug|Win32
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}.Debug|x64.ActiveCfg = Debug|x64
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}.Debug|x64.Build.0 = Debug|x64
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}.Release|Win32.ActiveCfg = Release|Win32
{A9D6DC71-C0DC-4549-AEA0-3B15B44E86A9}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
EndGlobalSection
EndGlobal
Loading

0 comments on commit ac6aee1

Please sign in to comment.