| package( | |
| default_visibility = ["//visibility:public"], | |
| ) | |
| cc_library( | |
| name = "libdivsufsort", | |
| srcs = [ | |
| "lib/divsufsort.c", | |
| "lib/sssort.c", | |
| "lib/trsort.c", | |
| "lib/utils.c", | |
| ], | |
| hdrs = [ | |
| "include/config.h", | |
| "include/divsufsort.h", | |
| "include/divsufsort_private.h", | |
| ], | |
| copts = [ | |
| "-DHAVE_CONFIG_H=1", | |
| ], | |
| includes = ["include"], | |
| include_prefix = "third_party/libdivsufsort", | |
| ) | |
| commom_awk_replaces = ( | |
| "gsub(/#cmakedefine/, \"#define\"); " + | |
| "gsub(/@DIVSUFSORT_EXPORT@/, \"\"); " + | |
| "gsub(/@DIVSUFSORT_IMPORT@/, \"\"); " + | |
| "gsub(/@INLINE@/, \"inline\"); " + | |
| "gsub(/@INCFILE@/, \"#include <inttypes.h>\"); " + | |
| "gsub(/@SAUCHAR_TYPE@/, \"uint8_t\"); " + | |
| "gsub(/@SAINT32_TYPE@/, \"int32_t\"); " + | |
| "gsub(/@SAINT_PRId@/, \"PRId32\"); " | |
| ) | |
| genrule( | |
| name = "config_h", | |
| srcs = ["include/config.h.cmake"], | |
| outs = ["include/config.h"], | |
| cmd = ("awk '{ " + | |
| "gsub(/HAVE_IO_H 1/, \"HAVE_IO_H 0\"); " + | |
| "gsub(/HAVE_STRINGS_H 1/, \"HAVE_STRINGS_H 0\"); " + | |
| commom_awk_replaces + | |
| "print; }' $(<) > $(@)"), | |
| ) | |
| genrule( | |
| name = "divsufsort_h", | |
| srcs = ["include/divsufsort.h.cmake"], | |
| outs = ["include/divsufsort.h"], | |
| cmd = ("awk '{ " + | |
| "gsub(/@W64BIT@/, \"\"); " + | |
| "gsub(/@SAINDEX_TYPE@/, \"int32_t\"); " + | |
| "gsub(/@SAINDEX_PRId@/, \"PRId32\"); " + | |
| commom_awk_replaces + | |
| "print; }' $(<) > $(@)"), | |
| ) |