GN: Xcode project generated do not allow running mac app with Xcode 8 |
||||||
Issue descriptionThe Xcode project generated with "gn gen --ide=xcode" do not allow to run the mac applications (iOS application do work fine) with Xcode 8 beta 4.
,
Aug 9 2016
The following revision refers to this bug: https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/b264f346409587dc3096dc34f646373ac3ff5568 commit b264f346409587dc3096dc34f646373ac3ff5568 Author: Sylvain Defresne <sdefresne@google.com> Date: Tue Aug 09 04:37:29 2016
,
Aug 9 2016
Ooops, wrong issue.
,
Aug 12 2016
,
Aug 12 2016
don't know what labs can do for you here..
,
Aug 12 2016
,
Aug 12 2016
,
Nov 30 2016
,
Nov 30 2016
https://codereview.chromium.org/2542613002/ fixes the first issue, but the compilation fails when initiated from Xcode. This is because when building from Xcode, some environment variables are set that override the SDK selection made in the command-line and the build tries to use 10.12 version of the SDK which is not available in the hermetic build. The script that takes DEVELOPER_DIR parameter also need to cleanup those environment variables. Variables found to be set by Xcode and causing failure are: SDK_VERSION_MINOR SDK_NAME MACOSX_DEPLOYMENT_TARGET SDK_VERSION_ACTUAL MAC_OS_X_VERSION_MAJOR SDKROOT SDK_DIR SDK_DIR_macosx10_12 SDK_NAMES SDK_VERSION_MAJOR MAC_OS_X_VERSION_MINOR SDK_VERSION MAC_OS_X_VERSION_ACTUAL There are probably others. As there are a bunch of variables, I think the best option is to add a python module to look for the --developer-dir parameter argument, export DEVELOPER_DIR variable and clean environment from Xcode pollution and then use that module in every scripts.
,
Nov 30 2016
A better option is probably to clean the environment in the Xcode script that invokes ninja, that way no tool has to be fixed.
,
Dec 1 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5d7f4cee65382c428e9d08112354a8a9bd496aa9 commit 5d7f4cee65382c428e9d08112354a8a9bd496aa9 Author: sdefresne <sdefresne@chromium.org> Date: Wed Nov 30 23:58:40 2016 [GN] Fix generate Xcode project for macOS to work with Xcode 8. Overridding ARCHS prevents Xcode 8+ from running the compiled binary on macOS. In addition avoid hard-coding the version of the SDK to use (since we do not build with Xcode this value is unused) and instead mention that the version-less SDK. BUG= 634501 Review-Url: https://codereview.chromium.org/2542613002 Cr-Commit-Position: refs/heads/master@{#435483} [modify] https://crrev.com/5d7f4cee65382c428e9d08112354a8a9bd496aa9/tools/gn/xcode_writer.cc
,
Dec 1 2016
When trying to build for macOS with Xcode 8 using the hermetic build setting (default for Googlers), I get the following errors:
Showing All Messages
[176/335] LIBTOOL-STATIC obj/base/third_party/dynamic_annotations/libdynamic_annotations.a
FAILED: obj/base/third_party/dynamic_annotations/libdynamic_annotations.a
export DEVELOPER_DIR=/Users/sdefresne/Developer/chromium/src/build/mac_files/Xcode.app; rm -f obj/base/third_party/dynamic_annotations/libdynamic_annotations.a && TOOL_VERSION=1480514535 python ../../build/toolchain/mac/filter_libtool.py libtool -static -o obj/base/third_party/dynamic_annotations/libdynamic_annotations.a obj/base/third_party/dynamic_annotations/dynamic_annotations/dynamic_annotations.o
xcodebuild: error: SDK "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk" cannot be located.
libtool: error: unable to find utility "libtool", not a developer tool or in PATH
So, as can be seen in the command-line, ninja sets DEVELOPER_DIR to points to the hermetic build directory that only ships at the moment with SDK 10.10 and 10.11, but xcodebuild command looks for 10.12 SDK, fails and then fail to invoke the libtool command. When changing the project settings to log the environment variable sets by Xcode, we can see that there are a lot of them:
cd /Users/sdefresne/Developer/chromium/src/out/Default
export ACTION=build
export ALTERNATE_GROUP=eng
export ALTERNATE_MODE=u+w,go-w,a+rX
export ALTERNATE_OWNER=sdefresne
export ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO
export ALWAYS_SEARCH_USER_PATHS=YES
export ALWAYS_USE_SEPARATE_HEADERMAPS=NO
export APPLE_INTERNAL_DEVELOPER_DIR=/AppleInternal/Developer
export APPLE_INTERNAL_DIR=/AppleInternal
export APPLE_INTERNAL_DOCUMENTATION_DIR=/AppleInternal/Documentation
export APPLE_INTERNAL_LIBRARY_DIR=/AppleInternal/Library
export APPLE_INTERNAL_TOOLS=/AppleInternal/Developer/Tools
export APPLICATION_EXTENSION_API_ONLY=NO
export APPLY_RULES_IN_COPY_FILES=NO
export ARCHS=x86_64
export ARCHS_STANDARD=x86_64
export ARCHS_STANDARD_32_64_BIT="x86_64 i386"
export ARCHS_STANDARD_32_BIT=i386
export ARCHS_STANDARD_64_BIT=x86_64
export ARCHS_STANDARD_INCLUDING_64_BIT=x86_64
export AVAILABLE_PLATFORMS="appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator"
export BITCODE_GENERATION_MODE=marker
export BUILD_ACTIVE_RESOURCES_ONLY=NO
export BUILD_COMPONENTS="headers build"
export BUILD_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Products
export BUILD_ROOT=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Products
export BUILD_STYLE=
export BUILD_VARIANTS=normal
export BUILT_PRODUCTS_DIR=/Users/sdefresne/Developer/chromium/src/out/Default
export CACHE_ROOT=/var/folders/2t/_89yny6x3xs_sl_xpd4km2gr004bvw/C/com.apple.DeveloperTools/8.1-8B62/Xcode
export CCHROOT=/var/folders/2t/_89yny6x3xs_sl_xpd4km2gr004bvw/C/com.apple.DeveloperTools/8.1-8B62/Xcode
export CHMOD=/bin/chmod
export CHOWN=/usr/sbin/chown
export CLANG_MODULES_BUILD_SESSION_FILE=/Users/sdefresne/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation
export CLASS_FILE_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/JavaClasses
export CLEAN_PRECOMPS=YES
export CLONE_HEADERS=NO
export CODESIGNING_FOLDER_PATH=/Users/sdefresne/Developer/chromium/src/out/Default/gn
export CODE_SIGNING_ALLOWED=YES
export CODE_SIGNING_REQUIRED=NO
export COLOR_DIAGNOSTICS=NO
export COMBINE_HIDPI_IMAGES=NO
export COMMAND_MODE=legacy
export COMPOSITE_SDK_DIRS=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/CompositeSDKs
export COMPRESS_PNG_FILES=NO
export CONFIGURATION=Default
export CONFIGURATION_BUILD_DIR=/Users/sdefresne/Developer/chromium/src/out/Default
export CONFIGURATION_TEMP_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default
export COPYING_PRESERVES_HFS_DATA=NO
export COPY_HEADERS_RUN_UNIFDEF=NO
export COPY_PHASE_STRIP=YES
export COPY_RESOURCES_FROM_STATIC_FRAMEWORKS=YES
export CP=/bin/cp
export CREATE_INFOPLIST_SECTION_IN_BINARY=NO
export CURRENT_ARCH=x86_64
export CURRENT_VARIANT=normal
export DEAD_CODE_STRIPPING=NO
export DEBUGGING_SYMBOLS=YES
export DEBUG_INFORMATION_FORMAT=dwarf
export DEFAULT_COMPILER=com.apple.compilers.llvm.clang.1_0
export DEFAULT_KEXT_INSTALL_PATH=/Library/Extensions
export DEFINES_MODULE=NO
export DEPLOYMENT_LOCATION=NO
export DEPLOYMENT_POSTPROCESSING=NO
export DEPLOYMENT_TARGET_CLANG_ENV_NAME=MACOSX_DEPLOYMENT_TARGET
export DEPLOYMENT_TARGET_CLANG_FLAG_NAME=mmacosx-version-min
export DEPLOYMENT_TARGET_SETTING_NAME=MACOSX_DEPLOYMENT_TARGET
export DERIVED_FILES_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/DerivedSources
export DERIVED_FILE_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/DerivedSources
export DERIVED_SOURCES_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/DerivedSources
export DEVELOPER_APPLICATIONS_DIR=/Applications/Xcode.app/Contents/Developer/Applications
export DEVELOPER_BIN_DIR=/Applications/Xcode.app/Contents/Developer/usr/bin
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
export DEVELOPER_FRAMEWORKS_DIR=/Applications/Xcode.app/Contents/Developer/Library/Frameworks
export DEVELOPER_FRAMEWORKS_DIR_QUOTED=/Applications/Xcode.app/Contents/Developer/Library/Frameworks
export DEVELOPER_LIBRARY_DIR=/Applications/Xcode.app/Contents/Developer/Library
export DEVELOPER_SDK_DIR=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
export DEVELOPER_TOOLS_DIR=/Applications/Xcode.app/Contents/Developer/Tools
export DEVELOPER_USR_DIR=/Applications/Xcode.app/Contents/Developer/usr
export DEVELOPMENT_LANGUAGE=English
export DO_HEADER_SCANNING_IN_JAM=NO
export DSTROOT=/tmp/products.dst
export DT_TOOLCHAIN_DIR=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
export DWARF_DSYM_FILE_NAME=gn.dSYM
export DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT=NO
export DWARF_DSYM_FOLDER_PATH=/Users/sdefresne/Developer/chromium/src/out/Default
export EMBEDDED_CONTENT_CONTAINS_SWIFT=NO
export EMBEDDED_PROFILE_NAME=embedded.provisionprofile
export EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE=NO
export ENABLE_BITCODE=NO
export ENABLE_DEFAULT_HEADER_SEARCH_PATHS=YES
export ENABLE_HEADER_DEPENDENCIES=YES
export ENABLE_ON_DEMAND_RESOURCES=NO
export ENABLE_TESTABILITY=NO
export EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS=".DS_Store .svn .git .hg CVS"
export EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES="*.nib *.lproj *.framework *.gch *.xcode* *.xcassets (*) .DS_Store CVS .svn .git .hg *.pbproj *.pbxproj"
export EXECUTABLE_NAME=gn
export EXECUTABLE_PATH=gn
export EXPANDED_CODE_SIGN_IDENTITY=
export EXPANDED_CODE_SIGN_IDENTITY_NAME=
export EXPANDED_PROVISIONING_PROFILE=
export FILE_LIST=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/Objects/LinkFileList
export FIXED_FILES_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/FixedFiles
export FRAMEWORK_FLAG_PREFIX=-framework
export FRAMEWORK_SEARCH_PATHS="/Users/sdefresne/Developer/chromium/src/out/Default "
export FRAMEWORK_VERSION=A
export FULL_PRODUCT_NAME=gn
export GCC3_VERSION=3.3
export GCC_DYNAMIC_NO_PIC=NO
export GCC_INLINES_ARE_PRIVATE_EXTERN=YES
export GCC_PFE_FILE_C_DIALECTS="c objective-c c++ objective-c++"
export GCC_SYMBOLS_PRIVATE_EXTERN=YES
export GCC_TREAT_WARNINGS_AS_ERRORS=NO
export GCC_VERSION=com.apple.compilers.llvm.clang.1_0
export GCC_VERSION_IDENTIFIER=com_apple_compilers_llvm_clang_1_0
export GENERATE_MASTER_OBJECT_FILE=NO
export GENERATE_PKGINFO_FILE=NO
export GENERATE_PROFILING_CODE=NO
export GENERATE_TEXT_BASED_STUBS=NO
export GID=5000
export GROUP=eng
export HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=YES
export HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES=YES
export HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS=YES
export HEADERMAP_INCLUDES_PROJECT_HEADERS=YES
export HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES=YES
export HEADERMAP_USES_VFS=NO
export HEADER_SEARCH_PATHS="/Users/sdefresne/Developer/chromium/src/out/Default/include "
export HIDE_BITCODE_SYMBOLS=YES
export HOME=/Users/sdefresne
export ICONV=/usr/bin/iconv
export INFOPLIST_EXPAND_BUILD_SETTINGS=YES
export INFOPLIST_OUTPUT_FORMAT=same-as-input
export INFOPLIST_PREPROCESS=NO
export INLINE_PRIVATE_FRAMEWORKS=NO
export INSTALLHDRS_COPY_PHASE=NO
export INSTALLHDRS_SCRIPT_PHASE=NO
export INSTALL_DIR=/tmp/products.dst/usr/local/bin
export INSTALL_GROUP=eng
export INSTALL_MODE_FLAG=u+w,go-w,a+rX
export INSTALL_OWNER=sdefresne
export INSTALL_PATH=/usr/local/bin
export INSTALL_ROOT=/tmp/products.dst
export JAVAC_DEFAULT_FLAGS="-J-Xms64m -J-XX:NewSize=4M -J-Dfile.encoding=UTF8"
export JAVA_APP_STUB=/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub
export JAVA_ARCHIVE_CLASSES=YES
export JAVA_ARCHIVE_TYPE=JAR
export JAVA_COMPILER=/usr/bin/javac
export JAVA_FRAMEWORK_RESOURCES_DIRS=Resources
export JAVA_JAR_FLAGS=cv
export JAVA_SOURCE_SUBDIR=.
export JAVA_USE_DEPENDENCIES=YES
export JAVA_ZIP_FLAGS=-urg
export JIKES_DEFAULT_FLAGS="+E +OLDCSO"
export KEEP_PRIVATE_EXTERNS=NO
export LD_DEPENDENCY_INFO_FILE=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/Objects-normal/x86_64/gn_dependency_info.dat
export LD_GENERATE_MAP_FILE=NO
export LD_MAP_FILE_PATH=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/gn-LinkMap-normal-x86_64.txt
export LD_NO_PIE=NO
export LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER=YES
export LEGACY_DEVELOPER_DIR=/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer
export LEX=lex
export LIBRARY_FLAG_NOSPACE=YES
export LIBRARY_FLAG_PREFIX=-l
export LIBRARY_KEXT_INSTALL_PATH=/Library/Extensions
export LIBRARY_SEARCH_PATHS="/Users/sdefresne/Developer/chromium/src/out/Default "
export LINKER_DISPLAYS_MANGLED_NAMES=NO
export LINK_FILE_LIST_normal_x86_64=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/Objects-normal/x86_64/gn.LinkFileList
export LINK_WITH_STANDARD_LIBRARIES=YES
export LOCALIZABLE_CONTENT_DIR=
export LOCAL_ADMIN_APPS_DIR=/Applications/Utilities
export LOCAL_APPS_DIR=/Applications
export LOCAL_DEVELOPER_DIR=/Library/Developer
export LOCAL_LIBRARY_DIR=/Library
export LOCROOT=
export LOCSYMROOT=
export MACOSX_DEPLOYMENT_TARGET=10.12
export MAC_OS_X_PRODUCT_BUILD_VERSION=16B2555
export MAC_OS_X_VERSION_ACTUAL=101201
export MAC_OS_X_VERSION_MAJOR=101200
export MAC_OS_X_VERSION_MINOR=1201
export METAL_LIBRARY_FILE_BASE=default
export METAL_LIBRARY_OUTPUT_DIR=/Users/sdefresne/Developer/chromium/src/out/Default/
export MODULE_CACHE_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/ModuleCache
export NATIVE_ARCH=i386
export NATIVE_ARCH_32_BIT=i386
export NATIVE_ARCH_64_BIT=x86_64
export NATIVE_ARCH_ACTUAL=x86_64
export NO_COMMON=YES
export OBJECT_FILE_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/Objects
export OBJECT_FILE_DIR_normal=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/Objects-normal
export OBJROOT=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates
export ONLY_ACTIVE_ARCH=NO
export OS=MACOS
export OSAC=/usr/bin/osacompile
export PACKAGE_TYPE=com.apple.package-type.mach-o-executable
export PASCAL_STRINGS=YES
export PATH="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/usr/local/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Tools:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
export PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES="/usr/include /usr/local/include /System/Library/Frameworks /System/Library/PrivateFrameworks /Applications/Xcode.app/Contents/Developer/Headers /Applications/Xcode.app/Contents/Developer/SDKs /Applications/Xcode.app/Contents/Developer/Platforms"
export PKGINFO_FILE_PATH=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/PkgInfo
export PLATFORM_DEVELOPER_APPLICATIONS_DIR=/Applications/Xcode.app/Contents/Developer/Applications
export PLATFORM_DEVELOPER_BIN_DIR=/Applications/Xcode.app/Contents/Developer/usr/bin
export PLATFORM_DEVELOPER_LIBRARY_DIR=/Applications/Xcode.app/Contents/Developer/Library
export PLATFORM_DEVELOPER_SDK_DIR=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
export PLATFORM_DEVELOPER_TOOLS_DIR=/Applications/Xcode.app/Contents/Developer/Tools
export PLATFORM_DEVELOPER_USR_DIR=/Applications/Xcode.app/Contents/Developer/usr
export PLATFORM_DIR=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform
export PLATFORM_DISPLAY_NAME=macOS
export PLATFORM_NAME=macosx
export PLATFORM_PREFERRED_ARCH=x86_64
export PLATFORM_PRODUCT_BUILD_VERSION=8B62
export PLIST_FILE_OUTPUT_FORMAT=same-as-input
export PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR=YES
export PRECOMP_DESTINATION_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/PrefixHeaders
export PRESERVE_DEAD_CODE_INITS_AND_TERMS=NO
export PRODUCT_MODULE_NAME=gn
export PRODUCT_NAME=gn
export PRODUCT_SETTINGS_PATH=
export PRODUCT_TYPE=com.apple.product-type.tool
export PROFILING_CODE=NO
export PROJECT=products
export PROJECT_DERIVED_FILE_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/DerivedSources
export PROJECT_DIR=/Users/sdefresne/Developer/chromium/src/out/Default
export PROJECT_FILE_PATH=/Users/sdefresne/Developer/chromium/src/out/Default/products.xcodeproj
export PROJECT_NAME=products
export PROJECT_TEMP_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build
export PROJECT_TEMP_ROOT=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates
export RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS=YES
export REMOVE_CVS_FROM_RESOURCES=YES
export REMOVE_GIT_FROM_RESOURCES=YES
export REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES=YES
export REMOVE_HG_FROM_RESOURCES=YES
export REMOVE_SVN_FROM_RESOURCES=YES
export REZ_COLLECTOR_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/ResourceManagerResources
export REZ_EXECUTABLE=YES
export REZ_OBJECTS_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/ResourceManagerResources/Objects
export REZ_SEARCH_PATHS="/Users/sdefresne/Developer/chromium/src/out/Default "
export SCAN_ALL_SOURCE_FILES_FOR_INCLUDES=NO
export SCRIPT_INPUT_FILE_COUNT=0
export SCRIPT_OUTPUT_FILE_COUNT=0
export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
export SDK_DIR=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
export SDK_DIR_macosx10_12=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk
export SDK_NAME=macosx10.12
export SDK_NAMES=macosx10.12
export SDK_PRODUCT_BUILD_VERSION=16B2649
export SDK_VERSION=10.12
export SDK_VERSION_ACTUAL=101200
export SDK_VERSION_MAJOR=101200
export SDK_VERSION_MINOR=1200
export SED=/usr/bin/sed
export SEPARATE_STRIP=NO
export SEPARATE_SYMBOL_EDIT=NO
export SET_DIR_MODE_OWNER_GROUP=YES
export SET_FILE_MODE_OWNER_GROUP=NO
export SHALLOW_BUNDLE=NO
export SHARED_DERIVED_FILE_DIR=/Users/sdefresne/Developer/chromium/src/out/Default/DerivedSources
export SHARED_PRECOMPS_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/PrecompiledHeaders
export SKIP_INSTALL=NO
export SOURCE_ROOT=/Users/sdefresne/Developer/chromium/src/out/Default
export SRCROOT=/Users/sdefresne/Developer/chromium/src/out/Default
export STRINGS_FILE_OUTPUT_ENCODING=UTF-16
export STRIP_BITCODE_FROM_COPIED_FILES=NO
export STRIP_INSTALLED_PRODUCT=YES
export STRIP_PNG_TEXT=NO
export STRIP_STYLE=all
export SUPPORTED_PLATFORMS=macosx
export SUPPORTS_TEXT_BASED_API=NO
export SWIFT_PLATFORM_TARGET_PREFIX=macosx
export SYMROOT=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Products
export SYSTEM_ADMIN_APPS_DIR=/Applications/Utilities
export SYSTEM_APPS_DIR=/Applications
export SYSTEM_CORE_SERVICES_DIR=/System/Library/CoreServices
export SYSTEM_DEMOS_DIR=/Applications/Extras
export SYSTEM_DEVELOPER_APPS_DIR=/Applications/Xcode.app/Contents/Developer/Applications
export SYSTEM_DEVELOPER_BIN_DIR=/Applications/Xcode.app/Contents/Developer/usr/bin
export SYSTEM_DEVELOPER_DEMOS_DIR="/Applications/Xcode.app/Contents/Developer/Applications/Utilities/Built Examples"
export SYSTEM_DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
export SYSTEM_DEVELOPER_DOC_DIR="/Applications/Xcode.app/Contents/Developer/ADC Reference Library"
export SYSTEM_DEVELOPER_GRAPHICS_TOOLS_DIR="/Applications/Xcode.app/Contents/Developer/Applications/Graphics Tools"
export SYSTEM_DEVELOPER_JAVA_TOOLS_DIR="/Applications/Xcode.app/Contents/Developer/Applications/Java Tools"
export SYSTEM_DEVELOPER_PERFORMANCE_TOOLS_DIR="/Applications/Xcode.app/Contents/Developer/Applications/Performance Tools"
export SYSTEM_DEVELOPER_RELEASENOTES_DIR="/Applications/Xcode.app/Contents/Developer/ADC Reference Library/releasenotes"
export SYSTEM_DEVELOPER_TOOLS=/Applications/Xcode.app/Contents/Developer/Tools
export SYSTEM_DEVELOPER_TOOLS_DOC_DIR="/Applications/Xcode.app/Contents/Developer/ADC Reference Library/documentation/DeveloperTools"
export SYSTEM_DEVELOPER_TOOLS_RELEASENOTES_DIR="/Applications/Xcode.app/Contents/Developer/ADC Reference Library/releasenotes/DeveloperTools"
export SYSTEM_DEVELOPER_USR_DIR=/Applications/Xcode.app/Contents/Developer/usr
export SYSTEM_DEVELOPER_UTILITIES_DIR=/Applications/Xcode.app/Contents/Developer/Applications/Utilities
export SYSTEM_DOCUMENTATION_DIR=/Library/Documentation
export SYSTEM_KEXT_INSTALL_PATH=/System/Library/Extensions
export SYSTEM_LIBRARY_DIR=/System/Library
export TAPI_VERIFY_MODE=ErrorsOnly
export TARGETNAME=gn
export TARGET_BUILD_DIR=/Users/sdefresne/Developer/chromium/src/out/Default
export TARGET_NAME=gn
export TARGET_TEMP_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build
export TEMP_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build
export TEMP_FILES_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build
export TEMP_FILE_DIR=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build
export TEMP_ROOT=/Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates
export TOOLCHAINS=com.apple.dt.toolchain.XcodeDefault
export TOOLCHAIN_DIR=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
export TREAT_MISSING_BASELINES_AS_TEST_FAILURES=NO
export UID=143228
export UNSTRIPPED_PRODUCT=NO
export USER=sdefresne
export USER_APPS_DIR=/Users/sdefresne/Applications
export USER_LIBRARY_DIR=/Users/sdefresne/Library
export USE_DYNAMIC_NO_PIC=YES
export USE_HEADERMAP=YES
export USE_HEADER_SYMLINKS=NO
export VALIDATE_PRODUCT=NO
export VALID_ARCHS="i386 x86_64"
export VERBOSE_PBXCP=NO
export VERSION_INFO_BUILDER=sdefresne
export VERSION_INFO_FILE=gn_vers.c
export VERSION_INFO_STRING="\"@(#)PROGRAM:gn PROJECT:products-\""
export WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES=NO
export XCODE_APP_SUPPORT_DIR=/Applications/Xcode.app/Contents/Developer/Library/Xcode
export XCODE_PRODUCT_BUILD_VERSION=8B62
export XCODE_VERSION_ACTUAL=0810
export XCODE_VERSION_MAJOR=0800
export XCODE_VERSION_MINOR=0810
export XPCSERVICES_FOLDER_PATH=/XPCServices
export YACC=yacc
export arch=x86_64
export variant=normal
/bin/sh -c /Users/sdefresne/Library/Developer/Xcode/DerivedData/all-gulsmlbykumutmgxftcopbocfvrl/Build/Intermediates/products.build/Default/gn.build/Script-3B2386F84A954CAA4C55CB71.sh
Since those environment variables are not set when the command is run from the command-line, then it is best to discard them when running via Xcode. This can be done by using "env -i" to invoke ninja and only exporting the variable that we expect to see when running from a shell. It appears that HOME, LANG, PATH, TMPDIR and USER are needed to have the build succeed (TMPDIR is required for goma, HOME and USER are required for access to the keychain, PATH is required to find the tools like ninja; LANG is not really required, but this allow for displaying localized compiler error message). The value of TMPDIR must not be captured when the "gn gen" command is run, the other may, except PATH that must be captured (as ninja comes from depot_tools that is expected to be in the PATH when user run "gn gen" but probably not in the PATH of Xcode run through the graphical UI).
,
Dec 1 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/84aac8fc963ba786889000c40bb5c5a7e95b1b3b commit 84aac8fc963ba786889000c40bb5c5a7e95b1b3b Author: sdefresne <sdefresne@chromium.org> Date: Thu Dec 01 20:58:26 2016 [GN] Sanitize environment variables when running ninja from Xcode. When invoking build script from Xcode, many environment variables are exported by Xcode based on the project settings. Sanitize the environment as those variable interact poorly with the hermetic build (see linked bug for detail of failure more). BUG= 634501 Review-Url: https://codereview.chromium.org/2544803002 Cr-Commit-Position: refs/heads/master@{#435707} [modify] https://crrev.com/84aac8fc963ba786889000c40bb5c5a7e95b1b3b/tools/gn/xcode_writer.cc
,
Dec 20 2016
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by rsesek@chromium.org
, Aug 8 2016Status: Available (was: Untriaged)