@@ -85,11 +85,11 @@ package = {
8585 " src/cocoa_time.c" ,
8686 " src/posix_thread.c" ,
8787 " src/posix_module.c" ,
88- " src/cocoa_init.m " ,
89- " src/cocoa_joystick.m " ,
90- " src/cocoa_monitor.m " ,
91- " src/cocoa_window.m " ,
92- " src/nsgl_context.m " ,
88+ " src/cocoa_init_objc.cpp " ,
89+ " src/cocoa_joystick_objc.cpp " ,
90+ " src/cocoa_monitor_objc.cpp " ,
91+ " src/cocoa_window_objc.cpp " ,
92+ " src/nsgl_context_objc.cpp " ,
9393 },
9494 ldflags = {
9595 " -framework" , " Cocoa" ,
@@ -116,6 +116,14 @@ package = {
116116
117117import (" xim.libxpkg.pkginfo" )
118118
119+ local objc_sources = {
120+ " cocoa_init" ,
121+ " cocoa_joystick" ,
122+ " cocoa_monitor" ,
123+ " cocoa_window" ,
124+ " nsgl_context" ,
125+ }
126+
119127local function patch_x11_loader_names (root )
120128 local file = path .join (root , " src" , " x11_init.c" )
121129 local data = io .readfile (file )
@@ -135,6 +143,17 @@ local function patch_x11_loader_names(root)
135143 io .writefile (file , data )
136144end
137145
146+ local function copy_objc_sources_as_cpp (root )
147+ local srcdir = path .join (root , " src" )
148+ for _ , name in ipairs (objc_sources ) do
149+ local from = path .join (srcdir , name .. " .m" )
150+ local to = path .join (srcdir , name .. " _objc.cpp" )
151+ if os .isfile (from ) then
152+ os .cp (from , to )
153+ end
154+ end
155+ end
156+
138157function install ()
139158 local srcdir = pkginfo .install_file ():replace (" .tar.gz" , " " )
140159 if not os .isdir (srcdir ) then
@@ -143,6 +162,7 @@ function install()
143162
144163 os .tryrm (pkginfo .install_dir ())
145164 os .mv (srcdir , pkginfo .install_dir ())
165+ copy_objc_sources_as_cpp (pkginfo .install_dir ())
146166 patch_x11_loader_names (pkginfo .install_dir ())
147167 return true
148168end
0 commit comments