meson.build (3163B)
1 # This file is in the public domain 2 3 install_data('challenger_db_postgres.conf', install_dir: pkgcfgdir) 4 5 6 sqldir = get_option('datadir') / 'challenger' / 'sql' 7 8 procedures_sql = [ 9 'procedures-prelude.sql', 10 'do_challenge_address.sql', 11 'do_solve_challenge.sql', 12 'commit.sql', 13 ] 14 15 generated_sql = [ 16 ['versioning.sql', ['versioning.sql']], 17 ['drop.sql', ['drop.sql']], 18 ['procedures.sql', procedures_sql], 19 ['challenger-0001.sql', ['challenger-0001.sql']], 20 ['challenger-0002.sql', ['challenger-0002.sql']], 21 ['challenger-0003.sql', ['challenger-0003.sql']], 22 ['challenger-0004.sql', ['challenger-0004.sql']], 23 ['challenger-0005.sql', ['challenger-0005.sql']], 24 ['challenger-0006.sql', ['challenger-0006.sql']], 25 ] 26 27 foreach g : generated_sql 28 custom_target( 29 'gen-challengerdb-' + g[0], 30 input: g[1], 31 output: g[0], 32 capture: true, 33 command: ['./amalgamate-sql.sh', '@INPUT@'], 34 install: true, 35 install_dir: sqldir, 36 ) 37 endforeach 38 39 libchallengerdb_SOURCES = [ 40 'get_validation_address.c', 41 'insert_client.c', 42 'update_client.c', 43 'delete_client.c', 44 'get_client.c', 45 'get_client_by_uri.c', 46 'create_tables.c', 47 'drop_tables.c', 48 'gc.c', 49 'get_token.c', 50 'do_insert_token.c', 51 'do_insert_validation.c', 52 'preflight.c', 53 'pg.c', 54 'update_validation.c', 55 'do_challenge_address.c', 56 'do_solve_challenge.c', 57 'get_validation.c', 58 'get_validation_pkce.c', 59 ] 60 libchallengerdb = library( 61 'challengerdb', 62 libchallengerdb_SOURCES, 63 soversion: solibversions['libchallengerdb']['soversion'], 64 version: solibversions['libchallengerdb']['soversion'], 65 install_rpath: rpath_option, 66 dependencies: [ 67 libchallengerutil_dep, 68 talerpq_dep, 69 gnunetutil_dep, 70 gnunetpq_dep, 71 pq_dep, 72 ], 73 include_directories: [incdir, configuration_inc], 74 install: true, 75 install_dir: get_option('libdir'), 76 ) 77 78 libchallengerdb_dep = declare_dependency(link_with: libchallengerdb) 79 pkg.generate( 80 libchallengerdb, 81 url: 'https://taler.net', 82 description: 'GNU Taler challenger DB library', 83 ) 84 85 executable( 86 'challenger-dbinit', 87 ['challenger-dbinit.c'], 88 dependencies: [ 89 libchallengerutil_dep, 90 libchallengerdb_dep, 91 gnunetutil_dep, 92 talerutil_dep, 93 ], 94 include_directories: [incdir, configuration_inc], 95 install: true, 96 ) 97 98 configure_file( 99 input: 'test_challenger_db_postgres.conf', 100 output: 'test_challenger_db_postgres.conf', 101 copy: true, 102 ) 103 104 test_challenger_db_postgres = executable( 105 'test_challenger_db-postgres', 106 ['test_challenger_db.c'], 107 dependencies: [ 108 gnunetutil_dep, 109 libchallengerutil_dep, 110 libchallengerdb_dep, 111 gnunetpq_dep, 112 pq_dep, 113 talerutil_dep, 114 pq_dep, 115 json_dep, 116 ], 117 include_directories: [incdir, configuration_inc], 118 build_by_default: false, 119 install: false, 120 ) 121 test( 122 'test_challenger_db-postgres', 123 test_challenger_db_postgres, 124 workdir: meson.current_build_dir(), 125 suite: ['challengerdb'], 126 is_parallel: false, 127 )