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]

Reply via email to