summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-01-28 20:32:48 +0000
committerMichael Williamson <mike@zwobble.org>2016-01-28 20:32:48 +0000
commitbaebf75373301337ca8217e778d50b1d3d130f30 (patch)
tree889aa0d3e7a1931c93c8ae737fa580ac947297cd
parenta226d2a5f2b008692adc171b1152c5c87559937a (diff)
Build oniguruma during build
-rw-r--r--setup.py24
-rw-r--r--tests/jq_tests.py8
2 files changed, 30 insertions, 2 deletions
diff --git a/setup.py b/setup.py
index ab3a91a..371449a 100644
--- a/setup.py
+++ b/setup.py
@@ -31,11 +31,28 @@ def read(fname):
jq_lib_tarball_path = path_in_dir("_jq-lib-1.5.tar.gz")
jq_lib_dir = path_in_dir("jq-jq-1.5")
+oniguruma_lib_tarball_path = path_in_dir("_onig-5.9.6.tar.gz")
+oniguruma_lib_build_dir = path_in_dir("onig-5.9.6")
+oniguruma_lib_install_dir = path_in_dir("onig-install-5.9.6")
+
class jq_build_ext(build_ext):
def run(self):
+ self._build_oniguruma()
self._build_libjq()
build_ext.run(self)
+ def _build_oniguruma(self):
+ self._build_lib(
+ source_url="https://github.com/kkos/oniguruma/releases/download/v5.9.6/onig-5.9.6.tar.gz",
+ tarball_path=oniguruma_lib_tarball_path,
+ lib_dir=oniguruma_lib_build_dir,
+ commands=[
+ ["./configure", "CFLAGS=-fPIC", "--prefix=" + oniguruma_lib_install_dir],
+ ["make"],
+ ["make", "install"],
+ ])
+
+
def _build_libjq(self):
self._build_lib(
source_url="https://github.com/stedolan/jq/archive/jq-1.5.tar.gz",
@@ -43,7 +60,7 @@ class jq_build_ext(build_ext):
lib_dir=jq_lib_dir,
commands=[
["autoreconf", "-i"],
- ["./configure", "CFLAGS=-fPIC", "--disable-maintainer-mode"],
+ ["./configure", "CFLAGS=-fPIC", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir],
["make"],
])
@@ -75,7 +92,10 @@ jq_extension = Extension(
"jq",
sources=["jq.c"],
include_dirs=[jq_lib_dir],
- extra_objects=[os.path.join(jq_lib_dir, ".libs/libjq.a")],
+ extra_objects=[
+ os.path.join(jq_lib_dir, ".libs/libjq.a"),
+ os.path.join(oniguruma_lib_install_dir, "lib/libonig.a"),
+ ],
)
setup(
diff --git a/tests/jq_tests.py b/tests/jq_tests.py
index 6220511..6084d91 100644
--- a/tests/jq_tests.py
+++ b/tests/jq_tests.py
@@ -24,6 +24,14 @@ def can_add_one_to_each_element_of_an_array():
@istest
+def can_use_regexes():
+ assert_equal(
+ True,
+ jq('test(".*")').transform("42")
+ )
+
+
+@istest
def input_string_is_parsed_to_json_if_raw_input_is_true():
assert_equal(
42,