binding.gyp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. {
  2. "variables": {
  3. "os_linux_compiler%": "gcc",
  4. "use_robust%": "true",
  5. "use_data_v1%": "false",
  6. "enable_v8%": "true",
  7. "enable_fast_api_calls%": "true",
  8. "enable_pointer_compression%": "false",
  9. "openssl_fips": "X",
  10. "target%": "",
  11. "build_v8_with_gn": "false",
  12. "runtime%": "node"
  13. },
  14. "conditions": [
  15. ['OS=="win"', {
  16. "variables": {
  17. "enable_fast_api_calls%": "<!(echo %ENABLE_FAST_API_CALLS%)",
  18. "enable_v8%": "<!(echo %ENABLE_V8_FUNCTIONS%)",
  19. "use_data_v1%": "<!(echo %LMDB_DATA_V1%)",
  20. }
  21. }],
  22. ['OS!="win"', {
  23. "variables": {
  24. "enable_fast_api_calls%": "<!(echo $ENABLE_FAST_API_CALLS)",
  25. "enable_v8%": "<!(echo $ENABLE_V8_FUNCTIONS)",
  26. "use_data_v1%": "<!(echo $LMDB_DATA_V1)",
  27. }
  28. }]
  29. ],
  30. "targets": [
  31. {
  32. "target_name": "lmdb",
  33. "sources": [
  34. "src/lmdb-js.cpp",
  35. "dependencies/lmdb/libraries/liblmdb/chacha8.c",
  36. "dependencies/lz4/lib/lz4.h",
  37. "dependencies/lz4/lib/lz4.c",
  38. "src/writer.cpp",
  39. "src/env.cpp",
  40. "src/compression.cpp",
  41. "src/ordered-binary.cpp",
  42. "src/misc.cpp",
  43. "src/txn.cpp",
  44. "src/dbi.cpp",
  45. "src/cursor.cpp",
  46. "src/v8-functions.cpp"
  47. ],
  48. "include_dirs": [
  49. "<!(node -p \"require('node-addon-api').include_dir\")",
  50. "dependencies/lz4/lib"
  51. ],
  52. "defines": ["MDB_MAXKEYSIZE=0", "NAPI_DISABLE_CPP_EXCEPTIONS" ],
  53. "conditions": [
  54. ["OS=='linux'", {
  55. "variables": {
  56. "gcc_version" : "<!(<(os_linux_compiler) -dumpversion | cut -d '.' -f 1)",
  57. },
  58. "cflags_cc": [
  59. "-fPIC",
  60. "-Wno-strict-aliasing",
  61. "-Wno-unused-result",
  62. "-Wno-cast-function-type",
  63. "-fvisibility=hidden",
  64. "-fvisibility-inlines-hidden",
  65. ],
  66. "ldflags": [
  67. "-fPIC",
  68. "-fvisibility=hidden"
  69. ],
  70. "cflags": [
  71. "-fPIC",
  72. "-fvisibility=hidden",
  73. "-O3"
  74. ],
  75. }],
  76. ["OS=='win'", {
  77. "libraries": ["ntdll.lib", "synchronization.lib"]
  78. }],
  79. ["use_data_v1=='true'", {
  80. "sources": [
  81. "dependencies/lmdb-data-v1/libraries/liblmdb/mdb.c",
  82. "dependencies/lmdb-data-v1/libraries/liblmdb/midl.c"
  83. ],
  84. "include_dirs": [
  85. "dependencies/lmdb-data-v1/libraries/liblmdb",
  86. ],
  87. }, {
  88. "sources": [
  89. "dependencies/lmdb/libraries/liblmdb/mdb.c",
  90. "dependencies/lmdb/libraries/liblmdb/midl.c"
  91. ],
  92. "include_dirs": [
  93. "dependencies/lmdb/libraries/liblmdb",
  94. ],
  95. }],
  96. ["enable_pointer_compression=='true'", {
  97. "defines": ["V8_COMPRESS_POINTERS", "V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE"],
  98. }],
  99. ['runtime=="electron"', {
  100. "defines": ["NODE_RUNTIME_ELECTRON=1"]
  101. }],
  102. ["enable_v8!='false'", {
  103. "defines": ["ENABLE_V8_API=1"],
  104. }],
  105. ["enable_fast_api_calls=='true'", {
  106. "defines": ["ENABLE_FAST_API_CALLS=1"],
  107. }],
  108. ["use_robust=='true'", {
  109. "defines": ["MDB_USE_ROBUST"],
  110. }],
  111. ],
  112. }
  113. ]
  114. }