electron-archive / brightray_example

An example application using Brightray
MIT License
27 stars 15 forks source link

Get a basic Linux build working #13

Closed aroben closed 10 years ago

aroben commented 11 years ago

This PR attempts to get brightray_example building on Linux. A lot of things will probably not work once the basic build is working, but those can be handled later.

/cc @peff

aroben commented 11 years ago

Cool we broke Clang:

  CXX(target) out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o
0  libLLVM-3.0.so.1 0x00002b20824e6fcf
1  libLLVM-3.0.so.1 0x00002b20824e7591
2  libpthread.so.0  0x00002b2082e09cb0
3  clang            0x000000000093d168 clang::Sema::MaybeConvertParenListExprToParenExpr(clang::Scope*, clang::Expr*) + 40
4  clang            0x000000000094983c clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, clang::ASTMultiPtr<clang::Expr*>, clang::SourceLocation, clang::Expr*, bool) + 76
5  clang            0x0000000000812d09 clang::Parser::ParsePostfixExpressionSuffix(clang::ActionResult<clang::Expr*, true>) + 3145
6  clang            0x000000000080cd3b clang::Parser::ParseCastExpression(bool, bool, bool&, bool) + 203
7  clang            0x000000000080f59e clang::Parser::ParseCastExpression(bool, bool, bool) + 30
8  clang            0x000000000080fe8f clang::Parser::ParseAssignmentExpression() + 31
9  clang            0x00000000007f0ffd clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&, clang::Parser::ParsedTemplateInfo const&) + 525
10 clang            0x00000000007f4c9a clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int, bool, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 1210
11 clang            0x00000000007f9764 clang::Parser::ParseSimpleDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, bool, clang::Parser::ForRangeInit*) + 740
12 clang            0x00000000007f9933 clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 163
13 clang            0x00000000007cf54c clang::Parser::ParseStatementOrDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, bool) + 364
14 clang            0x00000000007cca11 clang::Parser::ParseCompoundStatementBody(bool) + 417
15 clang            0x00000000007cd6fa clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) + 138
16 clang            0x00000000007e708c clang::Parser::ParseFunctionDefinition(clang::Parser::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&) + 1116
17 clang            0x00000000007f4a42 clang::Parser::ParseDeclGroup(clang::Parser::ParsingDeclSpec&, unsigned int, bool, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 610
18 clang            0x00000000007e2c75 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsingDeclSpec&, clang::AccessSpecifier) + 149
19 clang            0x00000000007e32e6 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::AccessSpecifier) + 678
20 clang            0x00000000007e4ead clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::Parser::ParsingDeclSpec*) + 2685
21 clang            0x00000000008032ef clang::Parser::ParseInnerNamespace(std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, std::vector<clang::IdentifierInfo*, std::allocator<clang::IdentifierInfo*> >&, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::Parser::BalancedDelimiterTracker&) + 367
22 clang            0x000000000080403e clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&, clang::SourceLocation) + 1854
23 clang            0x00000000007f9b11 clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 641
24 clang            0x00000000007e483d clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::Parser::ParsingDeclSpec*) + 1037
25 clang            0x00000000008032ef clang::Parser::ParseInnerNamespace(std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, std::vector<clang::IdentifierInfo*, std::allocator<clang::IdentifierInfo*> >&, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::Parser::BalancedDelimiterTracker&) + 367
26 clang            0x000000000080403e clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&, clang::SourceLocation) + 1854
27 clang            0x00000000007f9b11 clang::Parser::ParseDeclaration(clang::ASTOwningVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 641
28 clang            0x00000000007e483d clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::Parser::ParsingDeclSpec*) + 1037
29 clang            0x00000000007e5417 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 167
30 clang            0x00000000007bcbfd clang::ParseAST(clang::Sema&, bool) + 269
31 clang            0x00000000006a6253 clang::CodeGenAction::ExecuteAction() + 51
32 clang            0x00000000005adc7f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 319
33 clang            0x000000000059653a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1114
34 clang            0x000000000058e1c4 cc1_main(char const**, char const**, char const*, void*) + 820
35 clang            0x000000000058cb3c main + 620
36 libc.so.6        0x00002b208354f76d __libc_start_main + 237
37 clang            0x000000000058dd39
Stack dump:
0.  Program arguments: /usr/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name render_view_observer.cc -mrelocation-model static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-linker-version 2.22 -momit-leaf-frame-pointer -coverage-file out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o -resource-dir /usr/bin/../lib/clang/3.0 -dependency-file out/Debug/.deps/out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o.d.raw -MT out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o -D COMPONENT_BUILD -D GURL_DLL -D SKIA_DLL -D NDEBUG -D USING_V8_SHARED -D WEBKIT_DLL -D USE_X11 -I . -I vendor -I vendor/brightray/vendor/download/libchromiumcontent/src -I vendor/brightray/vendor/download/libchromiumcontent/src/third_party/skia/include/config -I vendor/brightray/vendor/download/libchromiumcontent/src/third_party/skia/include/core -I vendor/brightray/vendor/download/libchromiumcontent/src/third_party/icu/public/common -fmodule-cache-path /var/tmp/clang-module-cache -internal-isystem /usr/include/c++/4.6 -internal-isystem /usr/include/c++/4.6/x86_64-linux-gnu -internal-isystem /usr/include/c++/4.6/backward -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /usr/include -std=gnu++11 -fdeprecated-macro -ferror-limit 19 -fmessage-length 0 -fgnu-runtime -fobjc-runtime-has-arc -fobjc-runtime-has-weak -fobjc-fragile-abi -fcxx-exceptions -fexceptions -fdiagnostics-show-option -o out/Debug/obj.target/brightray_example_lib/renderer/render_view_observer.o -x c++ renderer/render_view_observer.cc 
1.  renderer/render_view_observer.cc:22:5: current parser token ')'
2.  renderer/render_view_observer.cc:9:1: parsing namespace 'brightray_example'
3.  renderer/render_view_observer.cc:11:1: parsing namespace
4.  renderer/render_view_observer.cc:17:58: parsing function body 'ConstructorTemplate'
5.  renderer/render_view_observer.cc:17:58: in compound statement ('{}')
aroben commented 11 years ago

Ah, looks like C++11 lambdas aren't available until Clang 3.1. We're using Clang 3.0.

piki commented 10 years ago
piki commented 10 years ago

@aroben I merged from master, which took care of the lambda/closure/scoping comment. The other two comments you made, I've addressed with the two previous commits.

The build is now broken, because the most recent libchromium wants (but does not build) its vendored version of tcmalloc. Click the failed build to see the missing symbols.

aroben commented 10 years ago

@piki I believe we turn off TCMalloc in libchromiumcontent because using it would require embedding apps to use it as well. Is there some macro we need to define to tell the Chromium headers that we aren't using it?

piki commented 10 years ago

@aroben This PR is in reasonable shape to merge, I think. It builds and it runs.

aroben commented 10 years ago

:sparkles::sparkles::sparkles: