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
#
project('nethogs',
project(
'nethogs',
['c', 'cpp'],
default_options : ['warning_level=3',
'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')
version = run_command('./determineVersion.sh', check: true).stdout().strip()
#######################################
## Dependencies and flags definition ##
@@ -18,17 +18,12 @@ version = run_command('./determineVersion.sh', check: true).stdout().strip()
projectinc = [include_directories('.', 'src')]
# flags
c_args = [
'-DVERSION="' + version + '"'
]
c_args = ['-DVERSION="' + meson.project_version() + '"']
# dependencies
thread_dep = dependency('threads', required: true)
libpcap_dep = dependency('libpcap', required: true)
project_deps = [
thread_dep,
libpcap_dep
]
project_deps = [thread_dep, libpcap_dep]
#############################
## Code Compilation ##
@@ -38,9 +33,12 @@ subdir('src')
#############################
## Pkgconfig definition ##
#############################
pkgconfig = import('pkgconfig')
pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig')
pkgconfig.generate(libnethogs,
if get_option('enable-libnethogs').enabled()
pkgconfig = import('pkgconfig')
pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig')
pkgconfig.generate(
libnethogs,
requires: ['libpcap'],
version: version
version: meson.project_version(),
)
endif

View File

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