Merge pull request #285 from thesamesam/meson

meson: cleanup version detection
This commit is contained in:
Arnout Engelen
2025-01-26 12:39:39 +01:00
committed by GitHub
2 changed files with 54 additions and 65 deletions

View File

@@ -2,14 +2,14 @@
# See COPYING for more information about licensing # See COPYING for more information about licensing
# #
project('nethogs', project(
['c', 'cpp'], 'nethogs',
default_options : ['warning_level=3', ['c', 'cpp'],
'cpp_std=c++14'] default_options: ['warning_level=3', 'cpp_std=c++14'],
) version: run_command('./determineVersion.sh').stdout().strip(),
)
cc = meson.get_compiler('cpp') cc = meson.get_compiler('cpp')
version = run_command('./determineVersion.sh', check: true).stdout().strip()
####################################### #######################################
## Dependencies and flags definition ## ## Dependencies and flags definition ##
@@ -18,17 +18,12 @@ version = run_command('./determineVersion.sh', check: true).stdout().strip()
projectinc = [include_directories('.', 'src')] projectinc = [include_directories('.', 'src')]
# flags # flags
c_args = [ c_args = ['-DVERSION="' + meson.project_version() + '"']
'-DVERSION="' + version + '"'
]
# dependencies # dependencies
thread_dep = dependency('threads', required: true) thread_dep = dependency('threads', required: true)
libpcap_dep = dependency('libpcap', required: true) libpcap_dep = dependency('libpcap', required: true)
project_deps = [ project_deps = [thread_dep, libpcap_dep]
thread_dep,
libpcap_dep
]
############################# #############################
## Code Compilation ## ## Code Compilation ##
@@ -38,9 +33,12 @@ subdir('src')
############################# #############################
## Pkgconfig definition ## ## Pkgconfig definition ##
############################# #############################
pkgconfig = import('pkgconfig') if get_option('enable-libnethogs').enabled()
pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig') pkgconfig = import('pkgconfig')
pkgconfig.generate(libnethogs, pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig')
requires: ['libpcap'], pkgconfig.generate(
version: version libnethogs,
) requires: ['libpcap'],
version: meson.project_version(),
)
endif

View File

@@ -3,65 +3,56 @@
# #
sources = [ sources = [
files([ files(
'connection.cpp', 'connection.cpp',
'conninode.cpp', 'conninode.cpp',
'decpcap.c', 'decpcap.c',
'devices.cpp', 'devices.cpp',
'inode2prog.cpp', 'inode2prog.cpp',
'packet.cpp', 'packet.cpp',
'process.cpp', 'process.cpp',
]) ),
] ]
# --- Executable Compilation --- # --- Executable Compilation ---
if get_option('enable-nethogs-app').enabled() if get_option('enable-nethogs-app').enabled()
app_sources = [ app_sources = [files('cui.cpp', 'main.cpp')]
files([
'main.cpp',
'cui.cpp',
])
]
cursespp_dep = dependency('ncurses++', required: true) cursespp_dep = dependency('ncurses++', required: true)
curses_dep = dependency('ncurses', required: true) curses_dep = dependency('ncurses', required: true)
executable('nethogs', executable(
[app_sources + sources], 'nethogs',
include_directories: [projectinc], [app_sources + sources],
cpp_args: c_args, include_directories: [projectinc],
c_args: c_args, cpp_args: c_args,
install: true, c_args: c_args,
dependencies : [project_deps, cursespp_dep, curses_dep] install: true,
) dependencies: [project_deps, cursespp_dep, curses_dep],
)
endif endif
# --- Library Compilation --- # --- Library Compilation ---
if get_option('enable-libnethogs').enabled() if get_option('enable-libnethogs').enabled()
lib_sources = [ lib_sources = [files('libnethogs.cpp')]
files([
'libnethogs.cpp',
])
]
libnethogs = shared_library('libnethogs' , libnethogs = shared_library(
sources + lib_sources, 'libnethogs' ,
cpp_args: c_args, sources + lib_sources,
c_args: c_args, cpp_args: c_args,
install: true, c_args: c_args,
soversion: meson.project_version(), install: true,
include_directories: [projectinc], soversion: meson.project_version(),
dependencies: [project_deps] include_directories: [projectinc],
) dependencies: [project_deps],
)
libnethogs_dep = declare_dependency(link_with: libnethogs) libnethogs_dep = declare_dependency(link_with: libnethogs)
# --- Header Installation --- # --- Header Installation ---
lib_headers = [ lib_headers = [files('libnethogs.h')]
files('libnethogs.h'), install_headers(lib_headers, subdir: 'libnethogs')
]
install_headers(lib_headers, subdir : 'libnethogs')
endif endif