diff options
| author | ruki <[email protected]> | 2022-05-22 20:43:40 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-05-22 20:43:40 +0800 |
| commit | 656d298a6a3cfe2baace28da2f74da4e090f3b16 (patch) | |
| tree | f4842494c9ed022ff68a7d0234975f9039abc90d /xmake/plugins/project/cmake | |
| parent | f72603fcc27a74339b4bd1df794cf1382504c2f5 (diff) | |
add frameworkdir to cmakelists
Diffstat (limited to 'xmake/plugins/project/cmake')
| -rw-r--r-- | xmake/plugins/project/cmake/cmakelists.lua | 31 |
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) |
