summaryrefslogtreecommitdiff
path: root/xmake/plugins/project/cmake/cmakelists.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2020-05-26 22:44:47 +0800
committerruki <[email protected]>2020-05-26 10:28:43 +0800
commitd0e514bd414e58631223b9a3ddaf89ad9ab1723a (patch)
treef92c0ffffd8b48f340e2bab1051d84d6f167940c /xmake/plugins/project/cmake/cmakelists.lua
parentdccb6a252882804ac7b6156737c77967a8425af1 (diff)
support frameworks for cmakelists
Diffstat (limited to 'xmake/plugins/project/cmake/cmakelists.lua')
-rw-r--r--xmake/plugins/project/cmake/cmakelists.lua14
1 files changed, 14 insertions, 0 deletions
diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua
index 7196f3d4e..254a98f86 100644
--- a/xmake/plugins/project/cmake/cmakelists.lua
+++ b/xmake/plugins/project/cmake/cmakelists.lua
@@ -340,6 +340,20 @@ end
function _add_target_link_options(cmakelists, target)
local shflags = target:get("shflags")
local ldflags = target:get("ldflags")
+ local frameworks = target:get("frameworks")
+ if frameworks then
+ if target:targetkind() == "binary" then
+ ldflags = ldflags and table.copy(ldflags) or {}
+ for _, framework in ipairs(frameworks) do
+ table.insert(ldflags, "-framework " .. framework)
+ end
+ elseif target:targetkind() == "shared" then
+ shflags = shflags and table.copy(shflags) or {}
+ for _, framework in ipairs(frameworks) do
+ table.insert(shflags, "-framework " .. framework)
+ end
+ end
+ end
if ldflags or shflags then
cmakelists:print("target_link_options(%s PRIVATE", target:name())
for _, flag in ipairs(ldflags) do