commit faa694516527b1da7c1dc2e4943994f41920899f
parent 5bace8d17f1a1e7375d289f2fcb6c0db020b0d37
Author: Florian Dold <florian@dold.me>
Date: Tue, 20 Dec 2022 14:52:24 +0100
build system
Diffstat:
3 files changed, 150 insertions(+), 0 deletions(-)
diff --git a/meson.build b/meson.build
@@ -0,0 +1,46 @@
+project('quickjs-tart', 'c',
+ version : '0.0.1')
+
+add_project_arguments('-D_GNU_SOURCE', language : 'c')
+add_project_arguments('-DCONFIG_VERSION="0.0.1"', language : 'c')
+
+cc = meson.get_compiler('c')
+m_dep = cc.find_library('m', required : true)
+mbedcrypto_dep = cc.find_library('mbedcrypto', required : true)
+curl_dep = cc.find_library('curl', required : true)
+
+sodium_proj = subproject('libsodium', required : true)
+
+#sodium_dep = cc.find_library('sodium', required : true)
+
+sodium_dep = sodium_proj.get_variable('sodium_dep')
+
+qjsc_exe = executable('qjsc', [
+ 'qjsc.c',
+ 'libbf.c',
+ 'libregexp.c',
+ 'libunicode.c',
+ 'cutils.c',
+ 'quickjs-libc.c',
+ 'quickjs.c',
+ ],
+ dependencies: [m_dep, mbedcrypto_dep, curl_dep, sodium_dep])
+
+repl_c = custom_target('gen-output',
+ input : ['repl.js'],
+ output : ['repl.c'],
+ command : [qjsc_exe, '-c', '-m',
+ '-o', '@OUTPUT@',
+ '@INPUT@'])
+
+qjs_exe = executable('qjs', [
+ 'qjs.c',
+ 'libbf.c',
+ 'libregexp.c',
+ 'libunicode.c',
+ 'cutils.c',
+ 'quickjs-libc.c',
+ 'quickjs.c',
+ repl_c,
+ ],
+ dependencies: [m_dep, mbedcrypto_dep, curl_dep, sodium_dep])
diff --git a/subprojects/libsodium/meson.build b/subprojects/libsodium/meson.build
@@ -0,0 +1,98 @@
+project('libsodium', 'c',
+ default_options : [
+ 'warning_level=0']
+)
+
+add_project_arguments('-D_GNU_SOURCE', language: 'c')
+
+if host_machine.endian() == 'little'
+ add_project_arguments('-DNATIVE_LITTLE_ENDIAN', language: 'c')
+else
+ add_project_arguments('-DNATIVE_BIG_ENDIAN', language: 'c')
+endif
+
+add_project_arguments('-DCONFIGURED', language: 'c')
+
+conf_data = configuration_data()
+conf_data.set('VERSION', '1.0.18')
+conf_data.set('SODIUM_LIBRARY_VERSION_MAJOR', 10)
+conf_data.set('SODIUM_LIBRARY_VERSION_MINOR', 3)
+conf_data.set('SODIUM_LIBRARY_MINIMAL_DEF', '')
+subdir('src/libsodium/include/sodium')
+
+libsodium = static_library('sodium', [
+ 'src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c',
+ 'src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.c',
+ 'src/libsodium/crypto_auth/crypto_auth.c',
+ 'src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.c',
+ 'src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.c',
+ 'src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.c',
+ 'src/libsodium/crypto_box/crypto_box.c',
+ 'src/libsodium/crypto_box/crypto_box_easy.c',
+ 'src/libsodium/crypto_box/crypto_box_seal.c',
+ 'src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.c',
+ 'src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.c',
+ 'src/libsodium/crypto_core/hchacha20/core_hchacha20.c',
+ 'src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.c',
+ 'src/libsodium/crypto_core/hsalsa20/core_hsalsa20.c',
+ 'src/libsodium/crypto_core/salsa/ref/core_salsa_ref.c',
+ 'src/libsodium/crypto_generichash/crypto_generichash.c',
+ 'src/libsodium/crypto_generichash/blake2b/generichash_blake2.c',
+ 'src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.c',
+ 'src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.c',
+ 'src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.c',
+ 'src/libsodium/crypto_hash/crypto_hash.c',
+ 'src/libsodium/crypto_hash/sha256/hash_sha256.c',
+ 'src/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.c',
+ 'src/libsodium/crypto_hash/sha512/hash_sha512.c',
+ 'src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.c',
+ 'src/libsodium/crypto_kdf/blake2b/kdf_blake2b.c',
+ 'src/libsodium/crypto_kdf/crypto_kdf.c',
+ 'src/libsodium/crypto_kx/crypto_kx.c',
+ 'src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c',
+ 'src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c',
+ 'src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c',
+ 'src/libsodium/crypto_pwhash/argon2/argon2-core.c',
+ 'src/libsodium/crypto_pwhash/argon2/argon2-encoding.c',
+ 'src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.c',
+ 'src/libsodium/crypto_pwhash/argon2/argon2.c',
+ 'src/libsodium/crypto_pwhash/argon2/blake2b-long.c',
+ 'src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.c',
+ 'src/libsodium/crypto_pwhash/argon2/pwhash_argon2id.c',
+ 'src/libsodium/crypto_pwhash/crypto_pwhash.c',
+ 'src/libsodium/crypto_scalarmult/crypto_scalarmult.c',
+ 'src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.c',
+ 'src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c',
+ 'src/libsodium/crypto_secretbox/crypto_secretbox.c',
+ 'src/libsodium/crypto_secretbox/crypto_secretbox_easy.c',
+ 'src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.c',
+ 'src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.c',
+ 'src/libsodium/crypto_shorthash/crypto_shorthash.c',
+ 'src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.c',
+ 'src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.c',
+ 'src/libsodium/crypto_sign/crypto_sign.c',
+ 'src/libsodium/crypto_sign/ed25519/sign_ed25519.c',
+ 'src/libsodium/crypto_sign/ed25519/ref10/keypair.c',
+ 'src/libsodium/crypto_sign/ed25519/ref10/open.c',
+ 'src/libsodium/crypto_sign/ed25519/ref10/sign.c',
+ 'src/libsodium/crypto_stream/chacha20/stream_chacha20.c',
+ 'src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.c',
+ 'src/libsodium/crypto_stream/crypto_stream.c',
+ 'src/libsodium/crypto_stream/salsa20/stream_salsa20.c',
+ 'src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.c',
+ 'src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.c',
+ 'src/libsodium/crypto_verify/sodium/verify.c',
+ 'src/libsodium/randombytes/randombytes.c',
+ 'src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c',
+ 'src/libsodium/sodium/codecs.c',
+ 'src/libsodium/sodium/core.c',
+ 'src/libsodium/sodium/runtime.c',
+ 'src/libsodium/sodium/utils.c',
+ 'src/libsodium/sodium/version.c',
+ ],
+ include_directories:['src/libsodium/include/sodium'])
+
+sodium_dep = declare_dependency(
+ include_directories : ['src/libsodium/include'],
+ link_with : [libsodium],
+)
diff --git a/subprojects/libsodium/src/libsodium/include/sodium/meson.build b/subprojects/libsodium/src/libsodium/include/sodium/meson.build
@@ -0,0 +1,6 @@
+
+config_h = configure_file(
+ input : 'version.h.in',
+ output : 'version.h',
+ configuration : conf_data)
+