123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = headerSearchPathIter;
- /**
- * Copyright (c) Facebook, Inc. and its affiliates.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- *
- */
- /**
- * Given Xcode project and path, iterate over all build configurations
- * and execute func with HEADER_SEARCH_PATHS from current section
- *
- * We cannot use builtin addToHeaderSearchPaths method since react-native init does not
- * use $(TARGET_NAME) for PRODUCT_NAME, but sets it manually so that method will skip
- * that target.
- *
- * To workaround that issue and make it more bullet-proof for different names,
- * we iterate over all configurations and look for `lc++` linker flag to detect
- * React Native target.
- *
- * Important: That function mutates `buildSettings` and it's not pure thus you should
- * not rely on its return value
- */
- const defaultHeaderPaths = ['"$(inherited)"'];
- function headerSearchPathIter(project, func) {
- const config = project.pbxXCBuildConfigurationSection();
- Object.keys(config).filter(ref => ref.indexOf('_comment') === -1).forEach(ref => {
- const {
- buildSettings
- } = config[ref];
- const shouldVisitBuildSettings = (Array.isArray(buildSettings.OTHER_LDFLAGS) ? buildSettings.OTHER_LDFLAGS : []).indexOf('"-lc++"') >= 0;
- if (shouldVisitBuildSettings) {
- const searchPaths = buildSettings.HEADER_SEARCH_PATHS ? [].concat(buildSettings.HEADER_SEARCH_PATHS) : defaultHeaderPaths;
- buildSettings.HEADER_SEARCH_PATHS = func(searchPaths);
- }
- });
- }
- //# sourceMappingURL=mapHeaderSearchPaths.js.map
|