Index: llvm/trunk/utils/gn/secondary/clang/tools/driver/BUILD.gn =================================================================== --- llvm/trunk/utils/gn/secondary/clang/tools/driver/BUILD.gn +++ llvm/trunk/utils/gn/secondary/clang/tools/driver/BUILD.gn @@ -1,4 +1,5 @@ import("//llvm/utils/gn/build/symlink_or_copy.gni") +import("//llvm/version.gni") symlinks = [ # target_name, symlink_target pairs: GN doesn't support '+' in rule names. @@ -33,6 +34,29 @@ } } +if (host_os == "mac") { + action("write_info_plist") { + script = "//llvm/utils/gn/build/write_cmake_config.py" + sources = [ + "Info.plist.in", + ] + outputs = [ + "$target_gen_dir/Info.plist", + ] + + args = [ + "-o", + rebase_path(outputs[0], root_out_dir), + rebase_path(sources[0], root_out_dir), + + "TOOL_INFO_BUILD_VERSION=$llvm_version_major.$llvm_version_minor", + "TOOL_INFO_NAME=clang", + "TOOL_INFO_UTI=org.llvm.clang", + "TOOL_INFO_VERSION=$llvm_version", + ] + } +} + executable("clang") { configs += [ "//llvm/utils/gn/build:clang_code" ] deps = [ @@ -61,12 +85,16 @@ "//llvm/lib/Transforms/Utils", "//llvm/lib/Transforms/Vectorize", ] + if (host_os == "mac") { + deps += [ ":write_info_plist" ] + plist = get_target_outputs(":write_info_plist") + ldflags = [ "-Wl,-sectcreate,__TEXT,__info_plist," + + rebase_path(plist[0], root_out_dir) ] + } sources = [ "cc1_main.cpp", "cc1as_main.cpp", "cc1gen_reproducer_main.cpp", "driver.cpp", ] - - # FIXME: Info.plist embedding for mac builds. }