Created
July 9, 2012 14:56
-
-
Save pcperini/3077005 to your computer and use it in GitHub Desktop.
Get Up and Running with eero - get_eero to install, eeroc to compile/build
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
import os | |
import sys | |
import subprocess | |
from optparse import OptionParser | |
# Superglobal Variables | |
TERMINAL_FORMATTERS = { | |
"BOLD": "\033[1m", | |
"END": "\033[0m" | |
} | |
# Global Variables | |
ENVIRONMENT_FLAGS = { | |
"OS X": ["Cocoa", "Foundation", "AppKit"], | |
"iOS": ["Foundation", "UIKit"] | |
} | |
EERO_DEFAULT_CLANG = "/usr/local/eerolanguage/bin/clang" | |
if __name__ == "__main__": | |
parser = OptionParser( | |
usage = "usage: %prog input_filename [options]" | |
) | |
# Frameworks | |
parser.add_option( | |
"-X", | |
dest = "environment", | |
action = "store_const", | |
const = ENVIRONMENT_FLAGS["OS X"], | |
help = "specifies default frameworks for OS X" | |
) | |
parser.add_option( | |
"-i", | |
dest = "environment", | |
action = "store_const", | |
const = ENVIRONMENT_FLAGS["iOS"], | |
help = "specifies default frameworks for iOS" | |
) | |
parser.add_option( | |
"-f", | |
dest = "framework", | |
action = "append", | |
help = "specify a framework to build with" | |
) | |
parser.add_option( | |
"--autoframework", | |
dest = "autoframework", | |
action = "store_true", | |
help = "if set, automatically handles %s#import%s statements for all included frameworks" % ( | |
TERMINAL_FORMATTERS['BOLD'], | |
TERMINAL_FORMATTERS['END'] | |
) | |
) | |
# Files | |
parser.add_option( | |
"-o", | |
dest = "output_filename", | |
help = "write output to file" | |
) | |
parser.add_option( | |
"-c", | |
dest = "compiler", | |
help = "specify a custom compiler location" | |
) | |
(options, args) = parser.parse_args() | |
if (not args): | |
sys.exit(1) | |
clang = options.compiler or EERO_DEFAULT_CLANG | |
frameworks = options.environment or [] | |
if (options.framework): | |
frameworks.extend(options.framework) | |
input_filename = args[0] | |
if (options.output_filename): | |
output_filename = options.output_filename | |
else: | |
output_filename = os.path.splitext(input_filename)[0] | |
if (options.autoframework): | |
input_file = open(input_filename, 'r') | |
input_contents = input_file.read() | |
framework_contents = "" | |
for framework in frameworks: | |
framework_content = "#import <" + framework + "/" + framework + ".h>" | |
if (framework_content not in input_contents): | |
framework_contents += (framework_content + "\n") | |
input_contents = framework_contents + input_contents | |
input_filename = input_filename + '.tmp.ero' | |
input_file = open(input_filename, 'w') | |
input_file.write(input_contents) | |
input_file.close() | |
clang_call = [ | |
clang, | |
input_filename, | |
"-o", output_filename | |
] | |
for framework in frameworks: | |
clang_call.extend(["-framework", framework]) | |
subprocess.call(clang_call) | |
if (options.autoframework): | |
os.remove(input_filename) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
cd ~/Downloads | |
git clone git://github.com/eerolanguage/llvm-trunk.git llvm | |
cd llvm/tools | |
git clone git://github.com/eerolanguage/clang-trunk.git clang | |
cd ../.. | |
cd llvm/projects | |
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt | |
cd ../.. | |
mkdir build | |
cd build | |
../llvm/configure --prefix /usr/local/eerolanguage | |
make | |
sudo make install |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment