看一个目录里面的target所有的宏定义。比如看chrome编译时的所有宏定义。chrome在BUILD.gn文件中是个group,找到它的依赖:
gn desc out\Default //chrome:chrome_initial defines --blame From //build/config:feature_flags (Added by //build/config/BUILDCONFIG.gn:422) USE_AURA=1 From //build/config/compiler:compiler (Added by //build/config/BUILDCONFIG.gn:425) CR_CLANG_REVISION="n356902-4e813bbd-1" From //build/config/compiler:chromium_code (Added by //build/config/BUILDCONFIG.gn:428) _HAS_NODISCARD From //build/config/compiler:runtime_library (Added by //build/config/BUILDCONFIG.gn:436) COMPONENT_BUILD _LIBCPP_ABI_UNSTABLE _LIBCPP_ENABLE_NODISCARD _LIBCPP_NO_AUTO_LINK __STD_C _CRT_RAND_S _CRT_SECURE_NO_DEPRECATE _SCL_SECURE_NO_DEPRECATE _ATL_NO_OPENGL _WINDOWS CERT_CHAIN_PARA_HAS_EXTRA_FIELDS PSAPI_VERSION=2 WIN32 _SECURE_ATL WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP From //build/config/win:lean_and_mean (Added by //build/config/BUILDCONFIG.gn:447) WIN32_LEAN_AND_MEAN From //build/config/win:nominmax (Added by //build/config/BUILDCONFIG.gn:448) NOMINMAX From //build/config/win:unicode (Added by //build/config/BUILDCONFIG.gn:449) _UNICODE UNICODE From //build/config/win:winver (Added by //build/config/BUILDCONFIG.gn:450) NTDDI_VERSION=NTDDI_WIN10_RS2 _WIN32_WINNT=0x0A00 WINVER=0x0A00 From //build/config:debug (Added by //build/config/BUILDCONFIG.gn:484) _DEBUG DYNAMIC_ANNOTATIONS_ENABLED=1 From //third_party/libwebp:libwebp_config (Added by //third_party/libwebp/BUILD.gn:80) WEBP_EXTERN=extern From //third_party/vulkan_headers:vulkan_headers_config (Added by //gpu/ipc/common/BUILD.gn:194) VK_USE_PLATFORM_WIN32_KHR From //ui/gl:gl_config (Added by //ui/gl/BUILD.gn:169) USE_EGL From //ui/views:flags (Added by //ui/views/BUILD.gn:63) TOOLKIT_VIEWS=1 From //third_party/wtl:wtl_includes (Added by //third_party/wtl/BUILD.gn:17) _WTL_NO_AUTOMATIC_NAMESPACE From //components/password_manager/core/browser:password_reuse_detection_config (Added by //components/password_manager/core/browser/BUILD.gn:237) SYNC_PASSWORD_REUSE_DETECTION_ENABLED SYNC_PASSWORD_REUSE_WARNING_ENABLED ON_FOCUS_PING_ENABLED From //third_party/libjingle_xmpp:libjingle_xmpp_common_config (Added by //third_party/libjingle_xmpp/BUILD.gn:56) EXPAT_RELATIVE_PATH From //third_party/boringssl:external_config (Added by //third_party/boringssl/BUILD.gn:121) BORINGSSL_SHARED_LIBRARY From //third_party/icu:icu_config (Added by //third_party/icu/BUILD.gn:641) U_USING_ICU_NAMESPACE=0 U_ENABLE_DYLOAD=0 USE_CHROMIUM_ICU=1 U_ENABLE_TRACING=1 U_ENABLE_RESOURCE_TRACING=0 ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE UCHAR_TYPE=wchar_t From //skia:skia_config (Added by //skia/BUILD.gn:503) SK_CODEC_DECODES_PNG SK_CODEC_DECODES_WEBP SK_ENCODE_PNG SK_ENCODE_WEBP SK_USER_CONFIG_HEADER="../../skia/config/SkUserConfig.h" SK_GL SK_CODEC_DECODES_JPEG SK_ENCODE_JPEG SK_USE_LIBGIFCODEC SK_VULKAN_HEADER="../../skia/config/SkVulkanConfig.h" SK_VULKAN=1 SKIA_DLL SKCMS_API=__declspec(dllexport) SK_SUPPORT_GPU=1 SK_GPU_WORKAROUNDS_HEADER="gpu/config/gpu_driver_bug_workaround_autogen.h" GR_GL_FUNCTION_TYPE=__stdcall VK_USE_PLATFORM_WIN32_KHR From //content/public/common:static_switches_defines (Added by //content/public/common/BUILD.gn:68) COMPILE_CONTENT_STATICALLY From //third_party/crashpad/crashpad/third_party/zlib:zlib_config (Added by //third_party/crashpad/crashpad/third_party/zlib/BUILD.gn:38) CRASHPAD_ZLIB_SOURCE_EXTERNAL
electron的为
gn desc out\Testing //electron:electron_app defines DCHECK_ALWAYS_ON=1 USE_AURA=1 CR_CLANG_REVISION="n346557-4e0d9925-2" _HAS_NODISCARD _LIBCPP_ABI_UNSTABLE _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS _LIBCPP_ENABLE_NODISCARD _LIBCPP_DEBUG=0 _LIBCPP_NO_AUTO_LINK __STD_C _CRT_RAND_S _CRT_SECURE_NO_DEPRECATE _SCL_SECURE_NO_DEPRECATE _ATL_NO_OPENGL _WINDOWS CERT_CHAIN_PARA_HAS_EXTRA_FIELDS PSAPI_VERSION=2 WIN32 _SECURE_ATL WINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP WIN32_LEAN_AND_MEAN NOMINMAX _UNICODE UNICODE NTDDI_VERSION=NTDDI_WIN10_RS2 _WIN32_WINNT=0x0A00 WINVER=0x0A00 _DEBUG DYNAMIC_ANNOTATIONS_ENABLED=1 ENABLE_IPC_FUZZER WEBP_EXTERN=extern VK_NO_PROTOTYPES USE_EGL _WTL_NO_AUTOMATIC_NAMESPACE TOOLKIT_VIEWS=1 ELECTRON_PRODUCT_NAME="Electron" ELECTRON_PROJECT_NAME="electron" U_USING_ICU_NAMESPACE=0 U_ENABLE_DYLOAD=0 USE_CHROMIUM_ICU=1 U_ENABLE_TRACING=1 U_ENABLE_RESOURCE_TRACING=0 U_STATIC_IMPLEMENTATION ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE UCHAR_TYPE=wchar_t CRASHPAD_ZLIB_SOURCE_EXTERNAL