Index: tools/gn/ninja_target_writer.cc |
diff --git a/tools/gn/ninja_target_writer.cc b/tools/gn/ninja_target_writer.cc |
index d226e2b97204b3836d935019b4efbb20d09f1dd7..8361c9e23d6b0b8469b99813745dab7e832cf5c9 100644 |
--- a/tools/gn/ninja_target_writer.cc |
+++ b/tools/gn/ninja_target_writer.cc |
@@ -360,15 +360,18 @@ void NinjaTargetWriter::WriteCompilerVars() { |
out_ << std::endl; |
// C flags and friends. |
- out_ << "cflags ="; |
- RecursiveTargetConfigStringsToStream(target_, &ConfigValues::cflags, out_); |
- out_ << std::endl; |
- out_ << "cflags_c ="; |
- RecursiveTargetConfigStringsToStream(target_, &ConfigValues::cflags_c, out_); |
- out_ << std::endl; |
- out_ << "cflags_cc ="; |
- RecursiveTargetConfigStringsToStream(target_, &ConfigValues::cflags_cc, out_); |
- out_ << std::endl; |
+#define WRITE_FLAGS(name) \ |
+ out_ << #name " ="; \ |
+ RecursiveTargetConfigStringsToStream(target_, &ConfigValues::name, out_); \ |
+ out_ << std::endl; |
+ |
+ WRITE_FLAGS(cflags) |
+ WRITE_FLAGS(cflags_c) |
+ WRITE_FLAGS(cflags_cc) |
+ WRITE_FLAGS(cflags_objc) |
+ WRITE_FLAGS(cflags_objcc) |
+ |
+#undef WRITE_FLAGS |
out_ << std::endl; |
} |
@@ -429,7 +432,12 @@ void NinjaTargetWriter::WriteLinkerStuff( |
out_ << std::endl; |
// Libraries to link. |
- out_ << "libs =" << std::endl; |
+ out_ << "libs ="; |
+ if (settings_->IsMac()) { |
+ // TODO(brettw) fix this. |
+ out_ << " -framework AppKit -framework ApplicationServices -framework Carbon -framework CoreFoundation -framework Foundation -framework IOKit -framework Security"; |
+ } |
+ out_ << std::endl; |
// The external output file is the one that other libs depend on. |
OutputFile external_output_file = helper_.GetTargetOutputFile(target_); |
@@ -505,9 +513,12 @@ void NinjaTargetWriter::WriteLinkerStuff( |
path_output_.WriteFile(out_, external_output_file); |
out_ << std::endl; |
} |
+ |
+ // TODO(brettw) postbuild steps. |
+ if (settings_->IsMac()) |
+ out_ << " postbuilds = $ && (export BUILT_PRODUCTS_DIR=/Users/brettw/prj/src/out/gn; export CONFIGURATION=Debug; export DYLIB_INSTALL_NAME_BASE=@rpath; export EXECUTABLE_NAME=libbase.dylib; export EXECUTABLE_PATH=libbase.dylib; export FULL_PRODUCT_NAME=libbase.dylib; export LD_DYLIB_INSTALL_NAME=@rpath/libbase.dylib; export MACH_O_TYPE=mh_dylib; export PRODUCT_NAME=base; export PRODUCT_TYPE=com.apple.product-type.library.dynamic; export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk; export SRCROOT=/Users/brettw/prj/src/out/gn/../../base; export SOURCE_ROOT=\"$${SRCROOT}\"; export TARGET_BUILD_DIR=/Users/brettw/prj/src/out/gn; export TEMP_DIR=\"$${TMPDIR}\"; (cd ../../base && ../build/mac/strip_from_xcode); G=$$?; ((exit $$G) || rm -rf libbase.dylib) && exit $$G)"; |
} |
- // TODO(brettw) postbuild steps here. |
out_ << std::endl; |
} |