12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- option("ver", {default = "2.1.0"})
- add_rules("mode.debug", "mode.release")
- local export_file = "miniz_export.h"
- target("miniz")
- set_kind("$(kind)")
- add_files("miniz.c", "miniz_zip.c", "miniz_tinfl.c", "miniz_tdef.c")
- add_headerfiles("miniz.h", "miniz_common.h", "miniz_zip.h", "miniz_tinfl.h", "miniz_tdef.h", {prefixdir = "miniz"})
- on_load(function (target)
- import("core.base.semver")
- import("core.project.rule")
- local version = import("core.base.semver").new(get_config("ver"))
- target:set("version", version, {soname = true})
- if version:lt("2.2.0") then
- if target:is_plat("windows") and target:is_shared() then
- local rule = rule.rule("utils.symbols.export_all")
- target:rule_add(rule)
- target:extraconf_set("rules", "utils.symbols.export_all")
- end
- else
- local string = "#define MINIZ_EXPORT"
- if target:is_plat("windows") and target:is_shared() then
- string = string .. " __declspec(dllexport)"
- end
-
- io.writefile(export_file, string)
- target:add("headerfiles", export_file, {prefixdir = "miniz"})
- end
- end)
- after_build(function (target)
- if target:is_plat("windows") then
- if target:is_shared() then
- io.writefile(export_file, "#define MINIZ_EXPORT __declspec(dllimport)")
- elseif target:is_static() then
- io.writefile(export_file, "#define MINIZ_EXPORT")
- end
- end
- end)
|