0

I have a c++ project that builds shared libraries, it also has a few binaries for packing resources into single files and trans-compiling few things into files easier for the library to process during runtime. To test the project I have a few tests. Earlier I used to use handwritten makefiles to build the following structure:

build/
  lib/
  bin/
  tests/
src/
  graphics/
  ui/
  util/
  network

As the names suggest, the source files are in src/, .so files go in build/lib/, the helper binaries go in build/bin/ and the tests go in build/tests.

I have managed to get meson to build everything, however it builds everything in build/. How do I specify the output paths in the targets?

Thanks!

tusharkant15
  • 137
  • 1
  • 5

1 Answers1

2

You can check official documentation for installation here. You need to provide install and install_dir

executable('prog', 'prog.c', install : true, install_dir : 'my/special/dir')

What I usually do for tests is to make meson.build in tests directory and then call subdir('tests') from top level meson.build. Here is the structure:

── meson.build

└── test
    ├── meson.build

    ├── component_tests

    │   └── meson.build

    └── unit_tests

        └── meson.build
Elvis Oric
  • 1,289
  • 8
  • 22