| 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\"); " + |
| 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; }' $(<) > $(@)"), |
| ) |