Skip to content

Commit bfbef40

Browse files
mbektchievKristian D. Dimitrov
authored andcommitted
fix: Add C++ Source files to the Sources group
They were wrongly being added to Resources.
1 parent 490024f commit bfbef40

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

lib/pbxFile.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ var DEFAULT_SOURCETREE = '"<group>"',
2222
DEFAULT_PRODUCT_SOURCETREE = 'BUILT_PRODUCTS_DIR',
2323
DEFAULT_FILEENCODING = 4,
2424
DEFAULT_GROUP = 'Resources',
25-
DEFAULT_FILETYPE = 'unknown';
25+
DEFAULT_FILETYPE = 'unknown',
26+
HEADER_FILE_TYPE_SUFFIX = ".h",
27+
SOURCE_CODE_FILE_TYPE_PREFIX = "sourcecode.";
2628

2729
var FILETYPE_BY_EXTENSION = {
2830
a: 'archive.ar',
@@ -99,6 +101,13 @@ var FILETYPE_BY_EXTENSION = {
99101
'text.plist.strings': 4
100102
};
101103

104+
function isSourceOrHeaderFileType(fileType) {
105+
return fileType.startsWith(SOURCE_CODE_FILE_TYPE_PREFIX);
106+
}
107+
108+
function isHeaderFileType(fileType) {
109+
return fileType.endsWith(HEADER_FILE_TYPE_SUFFIX);
110+
}
102111

103112
function unquoted(text){
104113
return text == null ? '' : text.replace (/(^")|("$)/g, '')
@@ -250,5 +259,6 @@ function pbxFile(filepath, opt) {
250259

251260
module.exports = {
252261
pbxFile: pbxFile,
253-
fileTypes: fileTypes
262+
isSourceOrHeaderFileType,
263+
isHeaderFileType
254264
}

lib/pbxProject.js

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ var util = require('util'),
2323
fork = require('child_process').fork,
2424
pbxWriter = require('./pbxWriter'),
2525
pbxFile = require('./pbxFile').pbxFile,
26-
pbxFileTypes = require('./pbxFile').fileTypes,
26+
isSourceOrHeaderFileType = require('./pbxFile').isSourceOrHeaderFileType,
27+
isHeaderFileType = require('./pbxFile').isHeaderFileType,
2728
fs = require('fs'),
2829
parser = require('./parser/pbxproj'),
2930
plist = require('simple-plist'),
3031
COMMENT_KEY = /_comment$/,
31-
NO_SPECIAL_SYMBOLS = /^[a-zA-Z0-9_\.\$]+\.[a-zA-Z]+$/,
32-
HEADER_FILE_TYPE_SUFFIX = ".h",
33-
SOURCE_CODE_FILE_TYPE_PREFIX = "sourcecode.";
32+
NO_SPECIAL_SYMBOLS = /^[a-zA-Z0-9_\.\$]+\.[a-zA-Z]+$/;
3433

3534
function pbxProject(filename) {
3635
if (!(this instanceof pbxProject))
@@ -560,12 +559,12 @@ pbxProject.prototype.addPbxGroup = function (filePathsArray, name, path, sourceT
560559
pbxGroup.children.push(pbxGroupChild(file));
561560
var files = fs.readdirSync(filePath).map(p => $path.join(filePath, p));
562561
this.addPbxGroup(files, $path.basename(filePath), filePath, null, {uuid: file.uuid});
563-
}else if (file.lastType.startsWith(SOURCE_CODE_FILE_TYPE_PREFIX)) {
562+
}else if (isSourceOrHeaderFileType(file.lastType)) {
564563
file.uuid = this.generateUuid();
565564
file.fileRef = this.generateUuid();
566565
this.addToPbxFileReferenceSection(file); // PBXFileReference
567566
this.addToPbxBuildFileSection(file); // PBXBuildFile
568-
if (!file.lastType.endsWith(HEADER_FILE_TYPE_SUFFIX)) {
567+
if (!isHeaderFileType(file.lastType)) {
569568
this.addToPbxSourcesBuildPhase(file);
570569
}
571570
pbxGroup.children.push(pbxGroupChild(file));
@@ -1605,11 +1604,11 @@ function pbxFileReferenceObj(file) {
16051604
fileObject.name = fileObject.name.replace(/\"/g, "\\\"");
16061605
fileObject.path = fileObject.path.replace(/\"/g, "\\\"");
16071606
}
1608-
1607+
16091608
if(!file.basename.match(NO_SPECIAL_SYMBOLS)) {
16101609
fileObject.name = "\"" + fileObject.name + "\"";
16111610
}
1612-
1611+
16131612
if(!file.path.match(NO_SPECIAL_SYMBOLS)) {
16141613
fileObject.path = "\"" + fileObject.path + "\"";
16151614
}

0 commit comments

Comments
 (0)