-
-
Notifications
You must be signed in to change notification settings - Fork 398
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
msgpack-cxx: make headeronly and boost optional #4648
Changes from 1 commit
5871a9f
69d0fb6
9a08d69
ff44321
311850d
89d02e3
6361a9f
32fb42d
33bc7cc
8803174
ef09292
a31aa01
600e362
db0f2b8
58470df
528efea
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,5 @@ | ||
package("msgpack-cxx") | ||
|
||
set_kind("library", {headeronly = true}) | ||
set_homepage("https://msgpack.org/") | ||
set_description("MessagePack implementation for C++") | ||
set_license("BSL-1.0") | ||
|
@@ -9,8 +9,6 @@ package("msgpack-cxx") | |
add_versions("6.1.0", "23ede7e93c8efee343ad8c6514c28f3708207e5106af3b3e4969b3a9ed7039e7") | ||
add_versions("4.1.1", "8115c5edcf20bc1408c798a6bdaec16c1e52b1c34859d4982a0fb03300438f0b") | ||
|
||
add_configs("std", {description = "Choose C++ standard version.", default = "cxx17", type = "string", values = {"cxx98", "cxx11", "cxx14", "cxx17", "cxx20"}}) | ||
|
||
add_configs("boost", {description = "Use Boost", default = false, type = "boolean"}) | ||
|
||
add_deps("cmake") | ||
|
@@ -24,21 +22,7 @@ package("msgpack-cxx") | |
end) | ||
|
||
on_install(function (package) | ||
local configs = {"-DMSGPACK_BUILD_EXAMPLES=OFF", "-DMSGPACK_BUILD_TESTS=OFF", "-DMSGPACK_BUILD_DOCS=OFF", "-DMSGPACK_USE_STATIC_BOOST=ON"} | ||
table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release")) | ||
table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF")) | ||
if package:config("std") ~= "cxx98" then | ||
table.insert(configs, "-DMSGPACK_" .. package:config("std"):upper() .. "=ON") | ||
end | ||
if package:config("boost") then | ||
table.insert(configs, "-DMSGPACK_USE_BOOST=ON") | ||
if is_plat("windows") then | ||
table.insert(configs, "-DBoost_USE_STATIC_RUNTIME=" .. (package:config("vs_runtime"):startswith("MT") and "ON" or "OFF")) | ||
end | ||
else | ||
table.insert(configs, "-DMSGPACK_USE_BOOST=OFF") | ||
end | ||
import("package.tools.cmake").install(package, configs) | ||
os.cp("include", package:installdir()) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Whenever possible, use cmake even if it is headeronly, as There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I get There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. you need only add |
||
end) | ||
|
||
on_test(function (package) | ||
|
@@ -49,5 +33,5 @@ package("msgpack-cxx") | |
std::stringstream buffer; | ||
msgpack::pack(buffer, src); | ||
} | ||
]], {configs = {languages = package:config("std")}, includes = "msgpack.hpp"})) | ||
]], {configs = {languages = "cxx11"}, includes = "msgpack.hpp"})) | ||
end) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should set it dynamicaly in on_load. use
package:config("header_only")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
setting it dynamically in on_load would not work as the cmake file does not generate a .lib file if it is not linked with boost, it only generates a lib file when linking with boost
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
package:config("header_only") should be consistent with the state of set_kind("library", {headeronly = true}), otherwise there is no point in adding
header_only config
.If the library is always headeronly, we shouldn't add add_configs("header_only")