16d528ed9Sopenharmony_ci# Copyright 2019 The Chromium Authors. All rights reserved. 26d528ed9Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be 36d528ed9Sopenharmony_ci# found in the LICENSE file. 46d528ed9Sopenharmony_ci 56d528ed9Sopenharmony_ciimport("//build/config/ios/deployment_target.gni") 66d528ed9Sopenharmony_ci 76d528ed9Sopenharmony_ciconfig("compiler") { 86d528ed9Sopenharmony_ci configs = [ 96d528ed9Sopenharmony_ci ":include_dirs", 106d528ed9Sopenharmony_ci ":cpp_standard", 116d528ed9Sopenharmony_ci ":objc_use_arc", 126d528ed9Sopenharmony_ci ":objc_abi_version", 136d528ed9Sopenharmony_ci ] 146d528ed9Sopenharmony_ci cflags = [ "-g" ] 156d528ed9Sopenharmony_ci swiftflags = [ "-g" ] 166d528ed9Sopenharmony_ci} 176d528ed9Sopenharmony_ci 186d528ed9Sopenharmony_ciconfig("shared_binary") { 196d528ed9Sopenharmony_ci if (current_os == "ios" || current_os == "mac") { 206d528ed9Sopenharmony_ci configs = [ 216d528ed9Sopenharmony_ci ":rpath_config", 226d528ed9Sopenharmony_ci ":swift_libdir", 236d528ed9Sopenharmony_ci ] 246d528ed9Sopenharmony_ci } 256d528ed9Sopenharmony_ci} 266d528ed9Sopenharmony_ci 276d528ed9Sopenharmony_ciconfig("objc_abi_version") { 286d528ed9Sopenharmony_ci cflags_objc = [ "-fobjc-abi-version=2" ] 296d528ed9Sopenharmony_ci cflags_objcc = cflags_objc 306d528ed9Sopenharmony_ci ldflags = [ 316d528ed9Sopenharmony_ci "-Xlinker", 326d528ed9Sopenharmony_ci "-objc_abi_version", 336d528ed9Sopenharmony_ci "-Xlinker", 346d528ed9Sopenharmony_ci "2", 356d528ed9Sopenharmony_ci ] 366d528ed9Sopenharmony_ci} 376d528ed9Sopenharmony_ci 386d528ed9Sopenharmony_ciconfig("include_dirs") { 396d528ed9Sopenharmony_ci include_dirs = [ 406d528ed9Sopenharmony_ci "//", 416d528ed9Sopenharmony_ci root_gen_dir, 426d528ed9Sopenharmony_ci ] 436d528ed9Sopenharmony_ci} 446d528ed9Sopenharmony_ci 456d528ed9Sopenharmony_ciconfig("objc_use_arc") { 466d528ed9Sopenharmony_ci cflags_objc = [ 476d528ed9Sopenharmony_ci "-fobjc-arc", 486d528ed9Sopenharmony_ci "-fobjc-weak", 496d528ed9Sopenharmony_ci ] 506d528ed9Sopenharmony_ci cflags_objcc = cflags_objc 516d528ed9Sopenharmony_ci} 526d528ed9Sopenharmony_ci 536d528ed9Sopenharmony_ciconfig("cpp_standard") { 546d528ed9Sopenharmony_ci cflags_c = [ "--std=c11" ] 556d528ed9Sopenharmony_ci cflags_cc = [ 566d528ed9Sopenharmony_ci "--std=c++17", 576d528ed9Sopenharmony_ci "--stdlib=libc++", 586d528ed9Sopenharmony_ci ] 596d528ed9Sopenharmony_ci ldflags = [ "--stdlib=libc++" ] 606d528ed9Sopenharmony_ci} 616d528ed9Sopenharmony_ci 626d528ed9Sopenharmony_ciif (current_os == "ios" || current_os == "mac") { 636d528ed9Sopenharmony_ci config("rpath_config") { 646d528ed9Sopenharmony_ci ldflags = [ 656d528ed9Sopenharmony_ci "-Xlinker", 666d528ed9Sopenharmony_ci "-rpath", 676d528ed9Sopenharmony_ci "-Xlinker", 686d528ed9Sopenharmony_ci "@executable_path/Frameworks", 696d528ed9Sopenharmony_ci "-Xlinker", 706d528ed9Sopenharmony_ci "-rpath", 716d528ed9Sopenharmony_ci "-Xlinker", 726d528ed9Sopenharmony_ci "@loader_path/Frameworks", 736d528ed9Sopenharmony_ci ] 746d528ed9Sopenharmony_ci } 756d528ed9Sopenharmony_ci 766d528ed9Sopenharmony_ci _sdk_info = exec_script("//build/config/ios/scripts/sdk_info.py", 776d528ed9Sopenharmony_ci [ 786d528ed9Sopenharmony_ci "--target-cpu", 796d528ed9Sopenharmony_ci current_cpu, 806d528ed9Sopenharmony_ci "--target-environment", 816d528ed9Sopenharmony_ci target_environment, 826d528ed9Sopenharmony_ci "--deployment-target", 836d528ed9Sopenharmony_ci ios_deployment_target, 846d528ed9Sopenharmony_ci ], 856d528ed9Sopenharmony_ci "json") 866d528ed9Sopenharmony_ci 876d528ed9Sopenharmony_ci _lib_swift_dir = "${_sdk_info.toolchain_path}/usr/lib/swift" 886d528ed9Sopenharmony_ci if (current_os == "ios") { 896d528ed9Sopenharmony_ci if (_sdk_info.is_simulator) { 906d528ed9Sopenharmony_ci _system_lib_swift_dir = "$_lib_swift_dir/iphonesimulator" 916d528ed9Sopenharmony_ci } else { 926d528ed9Sopenharmony_ci _system_lib_swift_dir = "$_lib_swift_dir/iphoneos" 936d528ed9Sopenharmony_ci } 946d528ed9Sopenharmony_ci } else { 956d528ed9Sopenharmony_ci _system_lib_swift_dir = "$_lib_swift_dir/macosx" 966d528ed9Sopenharmony_ci } 976d528ed9Sopenharmony_ci 986d528ed9Sopenharmony_ci config("swift_libdir") { 996d528ed9Sopenharmony_ci lib_dirs = [ 1006d528ed9Sopenharmony_ci "${_sdk_info.sdk_path}/usr/lib/swift", 1016d528ed9Sopenharmony_ci _system_lib_swift_dir, 1026d528ed9Sopenharmony_ci ] 1036d528ed9Sopenharmony_ci } 1046d528ed9Sopenharmony_ci} 105