This is an automated email from the ASF dual-hosted git repository.
erisu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cordova-node-xcode.git
The following commit(s) were added to refs/heads/master by this push:
new 2dd8d31 feat: support 'c', 'cpp', 'cc', 'cxx', 'hpp' extensions (#201)
2dd8d31 is described below
commit 2dd8d3185ee685c4ad70ed38d5d966754cac761b
Author: エリス <[email protected]>
AuthorDate: Mon Nov 9 16:23:15 2026 +0900
feat: support 'c', 'cpp', 'cc', 'cxx', 'hpp' extensions (#201)
- Updated mappings 'FILETYPE_BY_EXTENSION', 'GROUP_BY_FILETYPE', and
'ENCODING_BY_FILETYPE'
- Added new 'addSourceFile' & 'addHeaderFile' test cases to confirm PBXFile
data.
---
lib/pbxFile.js | 11 +++++++++++
test/addHeaderFile.js | 9 +++++++++
test/addSourceFile.js | 36 ++++++++++++++++++++++++++++++++++++
3 files changed, 56 insertions(+)
diff --git a/lib/pbxFile.js b/lib/pbxFile.js
index 2ed90be..c12371a 100644
--- a/lib/pbxFile.js
+++ b/lib/pbxFile.js
@@ -30,9 +30,14 @@ const FILETYPE_BY_EXTENSION = {
app: 'wrapper.application',
appex: 'wrapper.app-extension',
bundle: 'wrapper.plug-in',
+ c: 'sourcecode.c.c',
+ cpp: 'sourcecode.cpp.cpp',
+ cc: 'sourcecode.cpp.cpp',
+ cxx: 'sourcecode.cpp.cpp',
dylib: 'compiled.mach-o.dylib',
framework: 'wrapper.framework',
h: 'sourcecode.c.h',
+ hpp: 'sourcecode.cpp.h',
m: 'sourcecode.c.objc',
mm: 'sourcecode.cpp.objcpp',
markdown: 'text',
@@ -57,8 +62,11 @@ const GROUP_BY_FILETYPE = {
'sourcecode.text-based-dylib-definition': 'Frameworks',
'wrapper.framework': 'Frameworks',
'embedded.framework': 'Embed Frameworks',
+ 'sourcecode.c.c': 'Sources',
'sourcecode.c.h': 'Resources',
'sourcecode.c.objc': 'Sources',
+ 'sourcecode.cpp.cpp': 'Sources',
+ 'sourcecode.cpp.h': 'Resources',
'sourcecode.cpp.objcpp': 'Sources',
'sourcecode.swift': 'Sources'
};
@@ -73,8 +81,11 @@ const SOURCETREE_BY_FILETYPE = {
'wrapper.framework': 'SDKROOT'
};
const ENCODING_BY_FILETYPE = {
+ 'sourcecode.c.c': 4,
'sourcecode.c.h': 4,
'sourcecode.c.objc': 4,
+ 'sourcecode.cpp.cpp': 4,
+ 'sourcecode.cpp.h': 4,
'sourcecode.cpp.objcpp': 4,
'sourcecode.swift': 4,
text: 4,
diff --git a/test/addHeaderFile.js b/test/addHeaderFile.js
index cc8e621..eb70762 100644
--- a/test/addHeaderFile.js
+++ b/test/addHeaderFile.js
@@ -110,4 +110,13 @@ describe('addHeaderFile', () => {
assert.equal(68, frsLength);
assert.equal(plugins.children.length, 1);
});
+
+ it('should add hpp header files and return pbxFile', () => {
+ const newFile = proj.addHeaderFile('file.hpp');
+ assert.strictEqual(newFile.constructor, PBXFile);
+ assert.strictEqual(newFile.lastKnownFileType, 'sourcecode.cpp.h');
+ assert.strictEqual(newFile.group, 'Resources');
+ assert.strictEqual(newFile.defaultEncoding, 4);
+ assert.strictEqual(newFile.fileEncoding, 4);
+ });
});
diff --git a/test/addSourceFile.js b/test/addSourceFile.js
index 053fae7..8e853dd 100644
--- a/test/addSourceFile.js
+++ b/test/addSourceFile.js
@@ -189,4 +189,40 @@ describe('addSourceFile', () => {
assert.strictEqual(newFile.defaultEncoding, 4);
assert.strictEqual(newFile.fileEncoding, 4);
});
+
+ it('should add c source files and return pbxFile', () => {
+ const newFile = proj.addSourceFile('file.c');
+ assert.strictEqual(newFile.constructor, PBXFile);
+ assert.strictEqual(newFile.lastKnownFileType, 'sourcecode.c.c');
+ assert.strictEqual(newFile.group, 'Sources');
+ assert.strictEqual(newFile.defaultEncoding, 4);
+ assert.strictEqual(newFile.fileEncoding, 4);
+ });
+
+ it('should add cc source files and return pbxFile', () => {
+ const newFile = proj.addSourceFile('file.cc');
+ assert.strictEqual(newFile.constructor, PBXFile);
+ assert.strictEqual(newFile.lastKnownFileType, 'sourcecode.cpp.cpp');
+ assert.strictEqual(newFile.group, 'Sources');
+ assert.strictEqual(newFile.defaultEncoding, 4);
+ assert.strictEqual(newFile.fileEncoding, 4);
+ });
+
+ it('should add cpp source files and return pbxFile', () => {
+ const newFile = proj.addSourceFile('file.cpp');
+ assert.strictEqual(newFile.constructor, PBXFile);
+ assert.strictEqual(newFile.lastKnownFileType, 'sourcecode.cpp.cpp');
+ assert.strictEqual(newFile.group, 'Sources');
+ assert.strictEqual(newFile.defaultEncoding, 4);
+ assert.strictEqual(newFile.fileEncoding, 4);
+ });
+
+ it('should add cxx source files and return pbxFile', () => {
+ const newFile = proj.addSourceFile('file.cxx');
+ assert.strictEqual(newFile.constructor, PBXFile);
+ assert.strictEqual(newFile.lastKnownFileType, 'sourcecode.cpp.cpp');
+ assert.strictEqual(newFile.group, 'Sources');
+ assert.strictEqual(newFile.defaultEncoding, 4);
+ assert.strictEqual(newFile.fileEncoding, 4);
+ });
});
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]