xmake.lua 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. option("dl", {default = nil, type = "string", values = {"ltdl", "dlfcn"}})
  2. option("gmp", {default = false})
  3. option("mysql", {default = false})
  4. option("odbc", {default = false})
  5. add_rules("mode.debug", "mode.release")
  6. add_requires("zlib")
  7. local dl = get_config("dl")
  8. if dl == "ltdl" then
  9. add_requires("libtool", {kind = "library"})
  10. add_packages("libtool")
  11. add_defines("HAVE_LTDL")
  12. elseif dl == "dlfcn" then
  13. if is_plat("linux", "bsd") then
  14. add_syslinks("dl")
  15. end
  16. add_defines("HAVE_DLFCN")
  17. end
  18. if has_config("gmp") then
  19. add_requires("gmp")
  20. add_packages("gmp")
  21. add_defines("HAVE_GMP")
  22. end
  23. if has_config("mysql") then
  24. add_requires("mysql")
  25. -- TODO
  26. -- add_defines("MYSQL_DLNAME=" .. mysql shared link name)
  27. end
  28. includes("@builtin/check")
  29. configvar_check_cincludes("HAVE_SYS_TIME_H", "sys/time.h")
  30. configvar_check_cfuncs("HAVE_GETTIMEOFDAY", "gettimeofday", {includes = "time.h"})
  31. target("glpk")
  32. set_kind("$(kind)")
  33. add_files("src/**.c|zlib/*.c")
  34. add_includedirs("src", {public = true})
  35. add_includedirs(
  36. "src/amd",
  37. "src/api",
  38. "src/bflib",
  39. "src/colamd",
  40. "src/draft",
  41. "src/env",
  42. "src/intopt",
  43. "src/minisat",
  44. "src/misc",
  45. "src/mpl",
  46. "src/npp",
  47. "src/simplex"
  48. )
  49. if is_kind("shared") then
  50. add_files("*.def")
  51. end
  52. if is_plat("windows", "mingw", "msys") then
  53. add_defines("__WOE__=1", "TLS=__declspec(thread)")
  54. end
  55. add_packages("zlib")
  56. add_headerfiles("src/glpk.h")
  57. target("glpsol")
  58. set_kind("binary")
  59. add_files("examples/glpsol.c")
  60. add_deps("glpk")