Skip to content

Commit e87dd69

Browse files
committed
Use Objective-C++ copies for GLFW Cocoa sources
1 parent d0a6c12 commit e87dd69

1 file changed

Lines changed: 25 additions & 5 deletions

File tree

pkgs/c/compat.glfw.lua

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

117117
import("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+
119127
local 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)
136144
end
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+
138157
function 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
148168
end

0 commit comments

Comments
 (0)