diff options
| author | ruki <[email protected]> | 2021-10-12 00:32:11 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-10-12 00:32:11 +0800 |
| commit | b76924dfdc305e865244e6fa7460767b5cbbc794 (patch) | |
| tree | 16eaa886c37258701609516a8fe92e2aa9f9360b | |
| parent | 732ac08c207edf9baca28424a428e26d24f0032f (diff) | |
add defines to cmake/find_package
| -rw-r--r-- | xmake/modules/package/manager/cmake/find_package.lua | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/xmake/modules/package/manager/cmake/find_package.lua b/xmake/modules/package/manager/cmake/find_package.lua index 653f69f16..a8eb067b3 100644 --- a/xmake/modules/package/manager/cmake/find_package.lua +++ b/xmake/modules/package/manager/cmake/find_package.lua @@ -82,10 +82,11 @@ function _find_package(cmake, name, opt) -- run cmake try {function() return os.vrunv(cmake.program, {workdir}, {curdir = workdir}) end} - -- pares includedirs + -- pares defines and includedirs local links local linkdirs local libfiles + local defines local includedirs local flagsfile = path.join(workdir, "CMakeFiles", name .. ".dir", "flags.make") if os.isfile(flagsfile) then @@ -110,6 +111,17 @@ function _find_package(cmake, name, opt) has_include = true end end + elseif line:find("CXX_DEFINES =", 1, true) then + local flags = os.argv(line:split("=", {plain = true})[2]:trim()) + for _, flag in ipairs(flags) do + if flag:startswith("-D") and #flag > 2 then + local define = flag:sub(3) + if define then + defines = defines or {} + table.insert(defines, define) + end + end + end end end end @@ -165,9 +177,10 @@ function _find_package(cmake, name, opt) -- get results if links or includedirs then local results = {} - results.links = table.reverse_unique(links) - results.linkdirs = table.unique(linkdirs) - results.libfiles = table.unique(libfiles) + results.links = table.reverse_unique(links) + results.linkdirs = table.unique(linkdirs) + results.defines = table.unique(defines) + results.libfiles = table.unique(libfiles) results.includedirs = table.unique(includedirs) return results end |
