Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix meson-build global_arguments #4698

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions .github/subproject_test/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
project('subpoj_tester', 'c')

rz_deps = [
dependency('rz_core'),
dependency('rz_reg'),
dependency('rz_flag'),
dependency('rz_hash'),
dependency('rz_bin'),
dependency('rz_bp'),
dependency('rz_io'),
dependency('rz_search'),
dependency('rz_sign'),
dependency('rz_cons'),
dependency('rz_lang'),
dependency('rz_socket'),
dependency('rz_type'),
dependency('rz_debug'),
dependency('rz_il'),
dependency('rz_demangler'),
dependency('rz_util'),
dependency('rz_main'),
dependency('rz_crypto'),
dependency('rz_config'),
dependency('rz_egg'),
dependency('rz_syscall'),
dependency('rz_magic'),
]

# TODO: extend to perform actually linking test as well!
tester_source = custom_target('main.c',
command: ['echo', '''
#include <stdio.h>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe add rz_core.h instead of stdio.h and call rz_cons_printf

int main(void) {
printf("hello world\n");
return 0;
}
'''],
output: 'main.c',
capture: true,
)


subproj_tester = executable('subproj_tester',
tester_source,
dependencies: rz_deps,
pie: true,
)

test('basic', subproj_tester)


36 changes: 36 additions & 0 deletions .github/subproject_test/subprojects/rizin.wrap
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
[wrap-git]

url=${REPOSITORY}
revision=${BRANCH}

depth = 1

[provide]
rz_core = rz_core_dep
rz_reg = rz_reg_dep
rz_flag = rz_flag_dep
rz_hash = rz_hash_dep
rz_bin = rz_bin_dep
rz_bp = rz_bp_dep
rz_io = rz_io_dep
rz_search = rz_search_dep
rz_sign = rz_sign_dep
rz_cons = rz_cons_dep
rz_lang = rz_lang_dep
rz_socket = rz_socket_dep
rz_type = rz_type_dep
rz_debug = rz_debug_dep
#rz_ghidra = rz_ghidra_dep
rz_il = rz_il_dep
rz_demangler = rz_demangler_dep
rz_util = rz_util_dep
rz_main = rz_main_dep
rz_asm = rz_asm_dep
rz_crypto = rz_crypto_dep
rz_config = rz_config_dep
rz_egg = rz_egg_dep
rz_syscall = rz_syscall_dep
rz_magic = rz_magic_dep
rz_parse = rz_parse_dep
rz_analysis = rz_analysis_dep

69 changes: 69 additions & 0 deletions .github/workflows/subproject.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Subproject build

on:
push:
paths:
- '**.c'
- '**.h'
- '**.in'
- '**.inc'
- '**/meson.build'
- 'subprojects/**'
- 'test/**'
- '.github/workflows/subproject.yml'
- '.github/subproject_test/**'
branches:
- 'dev'
- 'stable'
- 'container-*'
pull_request:
paths:
- '**.c'
- '**.h'
- '**.in'
- '**.inc'
- '**/meson.build'
- 'subprojects/**'
- '.github/workflows/subproject.yml'
- '.github/subproject_test/**'
branches:
- 'dev'
- 'stable'
- 'release-*'

# Automatically cancel any previous workflow on new push.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
cancel-in-progress: true

jobs:
build:
name: meson-subproject
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get --assume-yes update
sudo apt-get --assume-yes install python3-wheel python3-setuptools pkgconf libcurl4-openssl-dev libpkgconf-dev libarchive-dev
sudo python3 -m pip install ninja meson
- name: Replace branch in wrap-file
run: |
# NOTE: This is a workaround, as meson wrap files cannot be used on remote tracking
git checkout -b "${{ github.ref_name }}"
sed -i 's@\${REPOSITORY}@file://'"$PWD"'@' .github/subproject_test/subprojects/rizin.wrap
sed -i 's@\${BRANCH}@'"${{ github.ref_name }}"'@' .github/subproject_test/subprojects/rizin.wrap
- name: Meson setup
run: meson setup build .github/subproject_test/
- name: Checkout our Testsuite Binaries
uses: actions/checkout@v4
with:
repository: rizinorg/rizin-testbins
path: .github/subproject_teyt/subprojects/rizin/test/bins
- name: Ninja compile and install
run: ninja -C build && sudo meson install -C build

- name: Run unit tests
run: meson test -C build
4 changes: 2 additions & 2 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,10 @@ endif
# Hence, we have to disable them for the newer once.
# Older compilers don't have these warnings and should not be included with #pragma
if cc.has_argument('-Wenum-conversion')
add_global_arguments('-DCC_SUPPORTS_W_ENUM_CONVERION', language: ['c', 'cpp'])
add_project_arguments('-DCC_SUPPORTS_W_ENUM_CONVERION', language: ['c', 'cpp'])
endif
if cc.has_argument('-Wenum-compare')
add_global_arguments('-DCC_SUPPORTS_W_ENUM_COMPARE', language: ['c', 'cpp'])
add_project_arguments('-DCC_SUPPORTS_W_ENUM_COMPARE', language: ['c', 'cpp'])
endif

if cc.has_argument('--std=gnu99')
Expand Down
8 changes: 2 additions & 6 deletions test/integration/meson.build
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
if get_option('enable_tests')
if get_option('enable_tests') and cli_enabled
test_conf_data = configuration_data()
if cli_enabled
test_conf_data.set_quoted('RIZIN_BUILD_PATH', rizin_exe.full_path())
else
test_conf_data.set_quoted('RIZIN_BUILD_PATH', meson.current_build_dir())
endif
test_conf_data.set_quoted('RIZIN_BUILD_PATH', rizin_exe.full_path())
test_conf_data.set_quoted('TEST_BUILD_TYPES_DIR', fs.as_posix(types_build_dir))
test_config_h = configure_file(
input: 'test_config.h.in',
Expand Down
Loading