summaryrefslogtreecommitdiff
path: root/xmake
diff options
context:
space:
mode:
Diffstat (limited to 'xmake')
-rw-r--r--xmake/plugins/project/cmake/cmakelists.lua31
1 files changed, 29 insertions, 2 deletions
diff --git a/xmake/plugins/project/cmake/cmakelists.lua b/xmake/plugins/project/cmake/cmakelists.lua
index a627e1f81..5c327a924 100644
--- a/xmake/plugins/project/cmake/cmakelists.lua
+++ b/xmake/plugins/project/cmake/cmakelists.lua
@@ -303,8 +303,6 @@ function _add_target_include_directories(cmakelists, target, outputdir)
end
cmakelists:print(")")
end
-
- -- TODO deprecated
local includedirs_interface = target:get("includedirs", {interface = true})
if includedirs_interface then
cmakelists:print("target_include_directories(%s INTERFACE", target:name())
@@ -343,6 +341,32 @@ function _add_target_sysinclude_directories(cmakelists, target, outputdir)
end
end
+-- add target framework directories
+function _add_target_framework_directories(cmakelists, target, outputdir)
+ local frameworkdirs = _get_configs_from_target(target, "frameworkdirs")
+ if #frameworkdirs > 0 then
+ cmakelists:print("target_compile_options(%s PRIVATE", target:name())
+ for _, frameworkdir in ipairs(frameworkdirs) do
+ cmakelists:print(" $<$<COMPILE_LANGUAGE:C>:-F" .. _get_unix_path(frameworkdir, outputdir) .. ">")
+ cmakelists:print(" $<$<COMPILE_LANGUAGE:CXX>:-F" .. _get_unix_path(frameworkdir, outputdir) .. ">")
+ cmakelists:print(" $<$<COMPILE_LANGUAGE:OBJC>:-F" .. _get_unix_path(frameworkdir, outputdir) .. ">")
+ cmakelists:print(" $<$<COMPILE_LANGUAGE:OBJCXX>:-F" .. _get_unix_path(frameworkdir, outputdir) .. ">")
+ end
+ cmakelists:print(")")
+ end
+ local frameworkdirs_interface = target:get("frameworkdirs", {interface = true})
+ if frameworkdirs_interface then
+ cmakelists:print("target_compile_options(%s PRIVATE", target:name())
+ for _, frameworkdir in ipairs(frameworkdirs_interface) do
+ cmakelists:print(" $<$<COMPILE_LANGUAGE:C>:-F" .. _get_unix_path(frameworkdir, outputdir) .. ">")
+ cmakelists:print(" $<$<COMPILE_LANGUAGE:CXX>:-F" .. _get_unix_path(frameworkdir, outputdir) .. ">")
+ cmakelists:print(" $<$<COMPILE_LANGUAGE:OBJC>:-F" .. _get_unix_path(frameworkdir, outputdir) .. ">")
+ cmakelists:print(" $<$<COMPILE_LANGUAGE:OBJCXX>:-F" .. _get_unix_path(frameworkdir, outputdir) .. ">")
+ end
+ cmakelists:print(")")
+ end
+end
+
-- add target compile definitions
function _add_target_compile_definitions(cmakelists, target)
local defines = _get_configs_from_target(target, "defines")
@@ -815,6 +839,9 @@ function _add_target(cmakelists, target, outputdir)
-- add target system include directories
_add_target_sysinclude_directories(cmakelists, target, outputdir)
+ -- add target framework directories
+ _add_target_framework_directories(cmakelists, target, outputdir)
+
-- add target compile definitions
_add_target_compile_definitions(cmakelists, target)