summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2021-10-12 00:20:11 +0800
committerruki <[email protected]>2021-10-12 00:20:11 +0800
commit9ae2f2130c571d4d7a3a2981de58112b03331b68 (patch)
tree8b316e4893ece70802438e4de2d4a7324a212af9
parentde3e0ce9c27b0d20384335e829dc9920f9b101a2 (diff)
add preset for cmake/find_package
-rw-r--r--xmake/modules/package/manager/cmake/find_package.lua18
1 files changed, 10 insertions, 8 deletions
diff --git a/xmake/modules/package/manager/cmake/find_package.lua b/xmake/modules/package/manager/cmake/find_package.lua
index 7d75c4b21..7e9fe1f2b 100644
--- a/xmake/modules/package/manager/cmake/find_package.lua
+++ b/xmake/modules/package/manager/cmake/find_package.lua
@@ -54,6 +54,13 @@ function _find_package(cmake, name, opt)
cmakefile:print("add_cmake_modules(%s)", moduledir)
end
end
+ if opt.presets then
+ for k, v in ipairs(opt.presets) do
+ if type(v) == "boolean" then
+ cmakefile:print("set(%s_%s %s)", name, k, v and "ON" or "OFF")
+ end
+ end
+ end
cmakefile:print("find_package(%s REQUIRED)", requirestr)
cmakefile:print("if(%s_FOUND)", name)
for _, macro_name in ipairs({name, name:upper()}) do
@@ -64,12 +71,6 @@ function _find_package(cmake, name, opt)
cmakefile:print(" message(STATUS \"%s_LIBRARY=\" \"${%s_LIBRARY}\")", macro_name, macro_name)
cmakefile:print(" message(STATUS \"%s_LIBRARIES=\" \"${%s_LIBRARIES}\")", macro_name, macro_name)
cmakefile:print(" message(STATUS \"%s_LIBS=\" \"${%s_LIBS}\")", macro_name, macro_name)
- --[[
- for _, component in ipairs(opt.components) do
- local component_name = component:upper()
- cmakefile:print(" message(STATUS \"%s_%s_LIBRARY_RELEASE=\" \"${%s_%s_LIBRARY_RELEASE}\")",
- macro_name, component_name, macro_name, component_name)
- end]]
end
cmakefile:print("endif(%s_FOUND)", name)
cmakefile:close()
@@ -174,13 +175,14 @@ end
--
-- find_package("cmake::ZLIB")
-- find_package("cmake::OpenCV", {required_version = "4.1.1"})
--- find_package("cmake::Boost", {components = {"regex", "system"}})
+-- find_package("cmake::Boost", {components = {"regex", "system"}, presets = {USE_STATIC_LIB = true}})
-- find_package("cmake::Foo", {moduledirs = "xxx"})
--
-- @param name the package name
-- @param opt the options, e.g. {verbose = true, required_version = "1.0",
-- components = {"regex", "system"},
--- moduledirs = "xxx")
+-- moduledirs = "xxx",
+-- presets = {USE_STATIC_LIB = true})
--
function main(name, opt)
opt = opt or {}