Index: .fossil-settings/ignore-glob ================================================================== --- .fossil-settings/ignore-glob +++ .fossil-settings/ignore-glob @@ -1,2 +1,1 @@ build -ObjSQLite3.oc Index: meson.build ================================================================== --- meson.build +++ meson.build @@ -6,25 +6,34 @@ }) objfw_dep = dependency('objfw') sqlite3_dep = dependency('sqlite3') -incdir = include_directories(['src', 'src/exceptions']) +incdir = include_directories('src', 'src/exceptions') + +subdir('src') +subdir('tests') # Meson unfortunately does not allow access to the flags of sqlite3_dep. pkgconfig = find_program('pkg-config') -sqlite3_cflags = run_command([pkgconfig, '--cflags', 'sqlite3'], check: true) -sqlite3_libs = run_command([pkgconfig, '--libs', 'sqlite3'], check: true) +sqlite3_cflags = run_command( + [pkgconfig, '--cflags', 'sqlite3'], + check: true).stdout().strip() +sqlite3_libs = run_command( + [pkgconfig, '--libs', 'sqlite3'], + check: true).stdout().strip() + +objfwconfig = find_program('objfw-config') +packages_dir = run_command( + [objfwconfig, '--packages-dir'], + check: true).stdout().strip() configure_file( input: 'ObjSQLite3.oc.in', output: 'ObjSQLite3.oc', configuration: { 'libdir': get_option('prefix') / get_option('libdir'), - 'SQLITE3_CPPFLAGS': sqlite3_cflags.stdout().strip(), - 'SQLITE3_LIBS': sqlite3_libs.stdout().strip(), + 'SQLITE3_CPPFLAGS': sqlite3_cflags, + 'SQLITE3_LIBS': sqlite3_libs, }, install: true, - install_dir: get_option('libdir') / 'objfw-config') - -subdir('src') -subdir('tests') + install_dir: packages_dir) ADDED src/exceptions/meson.build Index: src/exceptions/meson.build ================================================================== --- /dev/null +++ src/exceptions/meson.build @@ -0,0 +1,9 @@ +exceptions_sources = files( + 'SL3BindObjectFailedException.m', + 'SL3ClearBindingsFailedException.m', + 'SL3Exception.m', + 'SL3ExecuteStatementFailedException.m', + 'SL3OpenFailedException.m', + 'SL3PrepareStatementFailedException.m', + 'SL3ResetStatementFailedException.m', +) Index: src/meson.build ================================================================== --- src/meson.build +++ src/meson.build @@ -1,31 +1,22 @@ +fs = import('fs') + +subdir('exceptions') + +sources = files( + 'SL3Connection.m', + 'SL3PreparedStatement.m', +) + objsqlite3 = library('objsqlite3', - [ - 'SL3Connection.m', - 'SL3PreparedStatement.m', - 'exceptions/SL3BindObjectFailedException.m', - 'exceptions/SL3ClearBindingsFailedException.m', - 'exceptions/SL3Exception.m', - 'exceptions/SL3ExecuteStatementFailedException.m', - 'exceptions/SL3OpenFailedException.m', - 'exceptions/SL3PrepareStatementFailedException.m', - 'exceptions/SL3ResetStatementFailedException.m', - ], + sources + exceptions_sources, include_directories: incdir, objc_args: ['-DSL3_PUBLIC_IVARS'], dependencies: [objfw_dep, sqlite3_dep], install: true) -install_headers( - [ - 'ObjSQLite3.h', - 'SL3Connection.h', - 'SL3PreparedStatement.h', - 'exceptions/SL3BindObjectFailedException.h', - 'exceptions/SL3ClearBindingsFailedException.h', - 'exceptions/SL3Exception.h', - 'exceptions/SL3ExecuteStatementFailedException.h', - 'exceptions/SL3OpenFailedException.h', - 'exceptions/SL3PrepareStatementFailedException.h', - 'exceptions/SL3ResetStatementFailedException.h', - ], - subdir: 'ObjSQLite3') +headers = ['ObjSQLite3.h'] +foreach source: sources + exceptions_sources + headers += fs.replace_suffix(source.full_path(), '.h') +endforeach + +install_headers(headers, subdir: 'ObjSQLite3') Index: tests/meson.build ================================================================== --- tests/meson.build +++ tests/meson.build @@ -1,5 +1,5 @@ testexe = executable('tests', 'Tests.m', - dependencies: [objfw_dep], + dependencies: objfw_dep, link_with: objsqlite3, include_directories: incdir) test('ObjSQLite3 tests', testexe)