blob: 4a3badb8a9c423ed6bb4f8d79e278682b0966304 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
import os
import nimterop/[cimport, build]
const
baseDir = getProjectCacheDir("nimterop" / "tests" / "pcre")
pcreH = baseDir/"pcre.h.in"
static:
if not pcreH.fileExists():
downloadUrl("https://github.com/svn2github/pcre/raw/master/pcre.h.in", baseDir)
cDisableCaching()
const
dynpcre =
when defined(Windows):
when defined(cpu64):
"pcre64.dll"
else:
"pcre32.dll"
elif hostOS == "macosx":
"libpcre(.3|.1|).dylib"
else:
"libpcre.so(.3|.1|)"
cPlugin:
import strutils
proc onSymbol*(sym: var Symbol) {.exportc, dynlib.} =
sym.name = sym.name.replace("pcre_", "")
if sym.name.startsWith("pcre16_") or sym.name.startsWith("pcre32_"):
sym.name = ""
const FLAGS {.strdefine.} = ""
cImport(pcreH, dynlib="dynpcre", flags="--mode=c " & FLAGS)
echo version()
when FLAGS.len != 0:
# Legacy algorithm is broken - does not convert void * return to pointer
proc my_malloc(a1: uint): pointer {.cdecl.} =
discard
malloc = my_malloc
|