Skip to content

Instantly share code, notes, and snippets.

@Escapingbug
Created May 28, 2018 04:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Escapingbug/f89e58e4dd96f260498cb5a1c6921494 to your computer and use it in GitHub Desktop.
Save Escapingbug/f89e58e4dd96f260498cb5a1c6921494 to your computer and use it in GitHub Desktop.
修改过的build.ninja
#cc = /home/anciety/sources/v8/v8/third_party/llvm-build/Release+Asserts/bin/clang
#cxx = /home/anciety/sources/v8/v8/third_party/llvm-build/Release+Asserts/bin/clang++
cc = /bin/clang
cxx = /bin/clang++
ld = $cc
ldxx = $cxx
ar = ar
nm = nm
readelf = readelf
pool link_pool
depth = 1
rule cc
command = $cc -MMD -MF $out.d $defines $includes $cflags $cflags_c $cflags_pch_c -c $in -o $out
description = CC $out
depfile = $out.d
deps = gcc
rule cc_s
command = $cc $defines $includes $cflags $cflags_c $cflags_pch_c -c $in -o $out
description = CC $out
rule cxx
command = $cxx -MMD -MF $out.d $defines $includes $cflags $cflags_cc -Wno-unused-private-field -Wno-error=undefined-var-template $cflags_pch_cc -c $in -o $out
description = CXX $out
depfile = $out.d
deps = gcc
rule alink
command = rm -f $out && $ar rcs $arflags $out $in
description = AR $out
rule alink_thin
command = rm -f $out && $ar rcsT $arflags $out $in
description = AR $out
rule solink
command = if [ ! -e $lib -o ! -e $lib.TOC ]; then $ld -shared $ldflags -o $lib -Wl,-soname=$soname @$link_file_list $
&& { $readelf -d $lib | grep SONAME ; $nm -gD -f p $lib | cut -f1-2 -d' '; } > $lib.TOC; else $ld -shared $
$ldflags -o $lib -Wl,-soname=$soname @$link_file_list && { $readelf -d $lib | grep SONAME ; $nm -gD -f p $lib | $
cut -f1-2 -d' '; } > $lib.tmp && if ! cmp -s $lib.tmp $lib.TOC; then mv $lib.tmp $lib.TOC ; fi; fi
description = SOLINK $lib
pool = link_pool
restat = 1
rspfile = $link_file_list
rspfile_content = -Wl,--whole-archive $in $solibs -Wl,--no-whole-archive $libs
rule solink_module
command = if [ ! -e $lib -o ! -e $lib.TOC ]; then $ld -shared $ldflags -o $lib -Wl,-soname=$soname @$link_file_list $
&& { $readelf -d $lib | grep SONAME ; $nm -gD -f p $lib | cut -f1-2 -d' '; } > $lib.TOC; else $ld -shared $
$ldflags -o $lib -Wl,-soname=$soname @$link_file_list && { $readelf -d $lib | grep SONAME ; $nm -gD -f p $lib | $
cut -f1-2 -d' '; } > $lib.tmp && if ! cmp -s $lib.tmp $lib.TOC; then mv $lib.tmp $lib.TOC ; fi; fi
description = SOLINK(module) $lib
pool = link_pool
restat = 1
rspfile = $link_file_list
rspfile_content = -Wl,--start-group $in -Wl,--end-group $solibs $libs
rule link
command = $ld $ldflags -o $out -Wl,--start-group $in -Wl,--end-group $solibs $libs
description = LINK $out
pool = link_pool
rule stamp
command = ${postbuilds}touch $out
description = STAMP $out
rule copy
command = ln -f $in $out 2>/dev/null || (rm -rf $out && cp -af $in $out)
description = COPY $in $out
subninja obj/third_party/icu/copy_icudtl_dat.ninja
subninja obj/third_party/icu/icudata.ninja
subninja obj/third_party/icu/icuuc.ninja
subninja obj/src/d8_js2c.ninja
subninja obj/tools/gyp/js2c.ninja
subninja obj/tools/gyp/v8_libbase.ninja
subninja obj/test/cctest/resources.ninja
subninja obj/tools/gyp/postmortem-metadata.ninja
subninja obj/testing/gtest_prod.ninja
subninja obj/third_party/icu/icui18n.ninja
subninja obj/tools/gyp/v8_base.ninja
subninja obj/tools/gyp/natives_blob.ninja
subninja obj/testing/gtest.ninja
subninja obj/tools/gyp/v8_libplatform.ninja
subninja obj/testing/gmock.ninja
subninja obj/testing/gtest_main.ninja
subninja obj/tools/gyp/v8_nosnapshot.ninja
subninja obj/testing/gmock_main.ninja
subninja obj/tools/gyp/mksnapshot.ninja
subninja obj/tools/gyp/v8_snapshot.ninja
subninja obj/tools/gyp/v8_external_snapshot.ninja
subninja obj/tools/gyp/v8_maybe_snapshot.ninja
subninja obj/samples/process.ninja
subninja obj/test/cctest/cctest.ninja
subninja obj/samples/hello-world.ninja
subninja obj/test/unittests/unittests.ninja
subninja obj/samples/shell.ninja
subninja obj/src/d8.ninja
subninja obj/tools/parser-shell.ninja
subninja obj/src/d8_run.ninja
subninja obj/build/All.ninja
# Short names for targets.
build icui18n: phony obj/third_party/icu/libicui18n.a
build v8_maybe_snapshot: phony obj/tools/gyp/v8_maybe_snapshot.actions_depends.stamp
build gmock_main: phony obj/testing/libgmock_main.a
build js2c: phony obj/tools/gyp/js2c.actions_rules_copies.stamp
build v8_snapshot: phony obj/tools/gyp/libv8_snapshot.a
build v8_libplatform: phony obj/tools/gyp/libv8_libplatform.a
build v8_nosnapshot: phony obj/tools/gyp/libv8_nosnapshot.a
build v8_base: phony obj/tools/gyp/libv8_base.a
build d8_js2c: phony gen/d8-js.cc
build gtest: phony obj/testing/libgtest.a
build v8_libbase: phony obj/tools/gyp/libv8_libbase.a
build copy_icudtl_dat: phony icudtl.dat
build resources: phony gen/resources.cc
build d8_run: phony d8.isolated
build All: phony obj/build/All.actions_depends.stamp
build icudata: phony obj/third_party/icu/libicudata.a
build v8_external_snapshot: phony obj/tools/gyp/libv8_external_snapshot.a
build gtest_main: phony obj/testing/libgtest_main.a
build v8: phony obj/tools/gyp/v8_maybe_snapshot.actions_depends.stamp
build postmortem-metadata: phony gen/debug-support.cc
build icuuc: phony obj/third_party/icu/libicuuc.a
build natives_blob: phony natives_blob.bin
build gmock: phony obj/testing/libgmock.a
# Empty targets (output for completeness).
build gtest_prod: phony
build all: phony obj/third_party/icu/libicuuc.a process obj/third_party/icu/libicudata.a $
obj/tools/gyp/v8_maybe_snapshot.actions_depends.stamp cctest d8 gen/resources.cc hello-world gen/d8-js.cc $
obj/third_party/icu/libicui18n.a natives_blob.bin obj/tools/gyp/js2c.actions_rules_copies.stamp $
obj/build/All.actions_depends.stamp mksnapshot obj/tools/gyp/libv8_external_snapshot.a shell $
obj/tools/gyp/libv8_libbase.a obj/testing/libgtest.a parser-shell obj/tools/gyp/libv8_base.a $
obj/tools/gyp/libv8_libplatform.a unittests obj/tools/gyp/libv8_nosnapshot.a obj/testing/libgmock.a
default all
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment