project('auth_service', 'c', default_options: ['c_std=gnu2x']) include_dirs = include_directories('src', 'src/lib') deps = [dependency('openssl')] extra_c_args = ['-ffunction-sections', '-fdata-sections'] extra_c_link_args = [] system = host_machine.system() if system == 'linux' extra_c_link_args += ['-Wl,--gc-sections'] endif sqlite3_dep = dependency('sqlite3', required: false) use_sqlite3 = get_option('use_sqlite3') use_werror = get_option('use_werror') sources = [ 'src/main.c', 'src/user.c', 'src/add_user.c', 'src/change_password.c', 'src/change_user.c', 'src/delete_user.c', 'src/get_all_users.c', 'src/get_token.c', 'src/get_user.c', 'src/register_user.c', 'src/verify_token.c', 'src/utils.c', 'src/jwt.c', 'src/lib/mongoose.c', 'src/lib/cJSON.c', 'src/database.c', 'src/db_get_all_users.c', 'src/db_get_user_by_username.c', 'src/db_get_users_from_file.c', 'src/file.c', 'src/db_insert_user.c', 'src/db_update_user.c', 'src/db_delete_user.c', 'src/db_get_user_by_id.c', 'src/ConfigManager.c', 'src/config.c', 'src/static.c', 'src/cors.c', 'src/db_get_user_field_by_id.c', 'src/db_update_user_field.c', ] with_filedb_sources = [ 'src/file_db/filedb.c', 'src/file_db/filedb_delete_user.c', 'src/file_db/filedb_get_all_users.c', 'src/file_db/filedb_get_user_by_id.c', 'src/file_db/filedb_get_user_by_username.c', 'src/file_db/filedb_get_user_field_by_id.c', 'src/file_db/filedb_insert_user.c', 'src/file_db/filedb_update_user.c', 'src/file_db/filedb_update_user_field.c', ] with_sqlite3_sources = [ 'src/sqlite_db/sqlite.c', 'src/sqlite_db/sqlite_delete_user.c', 'src/sqlite_db/sqlite_get_all_users.c', 'src/sqlite_db/sqlite_get_user_by_id.c', 'src/sqlite_db/sqlite_get_user_by_username.c', 'src/sqlite_db/sqlite_get_user_field_by_id.c', 'src/sqlite_db/sqlite_init_db.c', 'src/sqlite_db/sqlite_insert_user.c', 'src/sqlite_db/sqlite_migrate_db.c', 'src/sqlite_db/sqlite_update_user.c', 'src/sqlite_db/sqlite_update_user_field.c', ] if use_sqlite3 if not sqlite3_dep.found() error('SQLite3 requested but not found') endif deps += sqlite3_dep sources += with_sqlite3_sources add_project_arguments('-DUSE_SQLITE3', language: 'c') endif if use_werror add_project_arguments('-Werror', language: 'c') endif executable( 'auth_service', sources + with_filedb_sources, include_directories: include_dirs, dependencies: deps, c_args: extra_c_args, link_args: extra_c_link_args, )