标签: meson-build

在介子中,您可以测试项目中是否存在目录吗?

使用介子构建,是否可以测试我的项目中是否存在目录?

例如,我通常将验收测试放在单元测试旁边,放在这样的文件夹结构中:

library/
        header.hp
        src/
            lib.cpp
        tests/
              acceptance_test/
              unit_test/ 
Run Code Online (Sandbox Code Playgroud)

我并不总是进行验收测试,如果没有必要,我希望避免在那里有 meson.build 文件。subdir('acceptance_test')如果目录存在,我宁愿有一个条件acceptance_test/

build build-system meson-build

4
推荐指数
2
解决办法
2473
查看次数

将静态库链接到共享库或二进制文件

我有一个来自项目的静态库A(我们称之为它liba.so),我想在我的项目中编译一个共享库B(我们称之为它libb.so)并嵌入liba.so其中。

另外,我在该项目中有一个二进制文件B,它也依赖于liba.so,所以我想将它嵌入到二进制文件中。

那可能吗?如何?

meson-build

4
推荐指数
1
解决办法
1万
查看次数

在 Meson 中为所有源添加 src/ 前缀

相对于我的项目根目录meson.build所在的位置,我的所有源文件都位于src/.

是否可以在 meson.build 中指定这些源文件,而不会强迫我在它们全部加上前缀src/,因为这有点多余?

meson-build

4
推荐指数
1
解决办法
3426
查看次数

include_directories 中的介子绝对路径

在 Meson 中,是否可以从调用创建的对象中获取字符串绝对路径include_directories

我的用例:

    include_dirs = include_directories('include')
    lib = library(
        'mylib',
        source_files,
        include_directories: include_dirs
    )
    run_target('analyze',
        command: ['static_analysis',
            source_files,
            '-I', include_dirs.to_abs_path(),
        ]
    )
Run Code Online (Sandbox Code Playgroud)

include_dirs.to_abs_path()不存在,但我想知道类似的事情是否可能。或者,files()存在(如此处所用source_files);有没有directories()

meson-build

4
推荐指数
1
解决办法
3454
查看次数

`meson.source_root()` 是项目根目录吗?

meson.source_root() 返回的目录是项目根目录(带有根级别的 meson.build 文件)还是当前正在处理的 meson.build 文件的路径?

build build-system meson-build

3
推荐指数
1
解决办法
3581
查看次数

为介子构建运行特定测试

使用介子构建,如果我在中定义了多个测试meson.build(如此处所示),是否可以构建并运行特定的单个测试?假设我正在开发一个特定的模块,并且想使用命令提示符运行该模块的测试?

meson-build

3
推荐指数
1
解决办法
1813
查看次数

如何在Windows上运行介子构建系统?

我想在Windows上使用meson构建系统.我是python noob.看起来我安装了它,但我不知道如何运行它.

我已经安装了python 3.6.我从'cmd'安装了meson:

C:\>python -m pip install meson
Collecting meson
  Downloading meson-0.39.0.tar.gz (558kB)
    100% |????????????????????????????????| 563kB 866kB/s
Installing collected packages: meson
  Running setup.py install for meson ... done
Successfully installed meson-0.39.0
Run Code Online (Sandbox Code Playgroud)

我试着运行介子:

C:\>python -m meson
C:\Users\user\AppData\Local\Programs\Python\Python36-32\python.exe: No module named meson


C:\>meson
'meson' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我该如何使用/运行这个东西?

python windows python-3.x meson-build

3
推荐指数
1
解决办法
3706
查看次数

如何从 Meson 脚本运行 shell 命令?

如何cp从 Meson 构建脚本运行 shell 命令(例如,复制)?

我尝试使用以下代码:

r = run_command('cp', 'test.txt', 'test2.txt')

if r.returncode() != 0
  warning('Command failed')
endif
Run Code Online (Sandbox Code Playgroud)

但它什么也没做。
run_command运行成功(返回 0),但未复制文件。
如果我cp用替换cp3,我会从 Meson 收到一条错误消息,进程终止,甚至不会到达下一行。
如果我替换test.txttest0.txt,我会从脚本中收到一条错误消息。

因此该脚本行为正确,但该命令在文件系统上没有留下任何痕迹。

run_command从 Meson 运行 shell 命令的唯一方法吗?我究竟做错了什么?


参考: https: //mesonbuild.com/External-commands.html

shell command file-copying meson-build

3
推荐指数
1
解决办法
4097
查看次数

如何使用介子设置 googletest?

我有一个带有一些 C++ 测试代码的 git 存储库,我想使用Googletest编写一些测试。我曾经git submodule把它作为上述存储库的一部分。我想使用介子作为构建引擎。到现在为止还挺好。

但是,我无法理解如何让介子构建和链接我的测试与 googletest 子模块......我应该使用包装吗?外部依赖?什么?

请注意,介子支持对打包版本的 gtest/gmock 的依赖,但这不是我想要的,因为 gtest/gmock 的开发人员建议反对它。另外,我想要最前沿的,因为我疯了?

此外,我不认为忍者在这里起作用,但我提到我使用它以防万一。

linux clang googletest ninja meson-build

3
推荐指数
2
解决办法
1669
查看次数

如何将内置库的介子链接依赖性设置为“-lm -lrt”

在介子构建上,依赖关系由 pkg-config/cmake 解决...

但对于系统库,没有文档。我只找到其中​​2个:

  • zlib代表 -lz
  • 线程代表-lpthread

那么我如何链接 -lm -lrt ?

  • “米”
  • “数学”
  • “libm”
  • 运行

一切猜测都失败了。

meson-build

3
推荐指数
1
解决办法
2943
查看次数