File meson.build of Package lodepng

project('lodepng', 'cpp', version: '0.0.1')
ver = meson.project_version()

pkgconfig = import('pkgconfig')

cc = meson.get_compiler('cpp')
sdl2 = cc.find_library('SDL2', required : true)


# Define the static and shared libraries for lodepng
liblodepng_static = static_library('lodepng', 'lodepng.cpp',
    dependencies: [],
    install: true,
)

liblodepng_shared = shared_library('lodepng', 'lodepng.cpp',
    version: ver,
    install: true,
)

# Define pkg-config files for the shared libraries
pkgconfig.generate(
    name: 'lodepng',
    description: 'PNG encoder and decoder in C and C++',
    version: ver,
    libraries: [liblodepng_shared],
)

# Define the static and shared libraries for lodepng_util
liblodepng_util_static = static_library('lodepng_util', 'lodepng_util.cpp',
    dependencies: [],
    link_with: [liblodepng_static],
    install: true,
)

liblodepng_util_shared = shared_library('lodepng_util', 'lodepng_util.cpp',
    version: ver,
    link_with: [liblodepng_shared],
    install: true,
)

# Define pkg-config files for the shared libraries
pkgconfig.generate(
    name: 'lodepng_util',
    description: 'PNG encoder and decoder in C and C++',
    version: ver,
    libraries: [liblodepng_util_shared],
)

# Install header files in the same directory as meson.build
install_headers('lodepng.h')
install_headers('lodepng_util.h')

# Define the test executable
test_executable = executable(
    'unittest', 'lodepng_unittest.cpp',
    dependencies: [],
    install: false,
    link_with: [liblodepng_static, liblodepng_util_static]
)

pngdetail_executable = executable(
    'pngdetail', 'pngdetail.cpp',
    dependencies: [],
    install: true,
    link_with: [liblodepng_shared, liblodepng_util_shared]
)

showpng_executable = executable(
    'showpng', 'examples/example_sdl.cpp',
    dependencies: [sdl2],
    install: true,
    link_with: [liblodepng_shared]
)

benchmark_executable = executable(
    'lodepng_benchmark', 'lodepng_benchmark.cpp',
    dependencies: [sdl2],
    install: false,
    link_with: [liblodepng_shared]
)
openSUSE Build Service is sponsored by