From 2a608dba5bfc484ff54153ee18e7b00c8ffb8f90 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 27 Jun 2025 09:26:04 -0300 Subject: [PATCH 1/4] Adjustments for better use as subproject. --- meson.build | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/meson.build b/meson.build index 4005ff8..5e3180e 100644 --- a/meson.build +++ b/meson.build @@ -43,7 +43,6 @@ endif compiler_flags = [ '-ggdb3', - '-ffat-lto-objects', '-fvisibility=hidden', '-pthread', '-fPIC', @@ -434,6 +433,19 @@ if host_machine.system() == 'windows' include_directories: includes_dir, ) +elif host_machine.system() == 'darwin' + + dynamic = shared_library( + 'v3270', + config_src + lib_src, + install: true, + version : libversion, + soversion : libversion, + gnu_symbol_visibility: 'hidden', + dependencies: lib_deps + extra_deps, + include_directories: includes_dir + ) + else dynamic = shared_library( @@ -441,6 +453,7 @@ else config_src + lib_src, install: true, version : libversion, + c_args: [ '-ffat-lto-objects' ], soversion : libversion, gnu_symbol_visibility: 'hidden', dependencies: lib_deps + extra_deps, @@ -461,18 +474,22 @@ else endif -libv3270_dep = declare_dependency( +dynamic_library = declare_dependency( link_with : dynamic, include_directories : includes_dir, ) -#static_library( -# 'v3270', -# config_src + lib_src, -# install: true, -# dependencies: lib_deps + extra_deps, -# include_directories: includes_dir -#) +dynamic_library = declare_dependency( + link_with: static_library( + 'v3270', + config_src + lib_src, + install: true, + c_args: [ '-DSTATIC_LIBRARY', '-fno-lto' ], + dependencies: lib_deps + extra_deps, + include_directories: includes_dir + ), + include_directories : includes_dir, +) executable( meson.project_name(), From ccf7e99fee9bf1211a09c98e29e59b84e6882f36 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 27 Jun 2025 10:13:30 -0300 Subject: [PATCH 2/4] Better usage as submodule. --- meson.build | 94 ++++++++++++++++++++++------------------------------- 1 file changed, 39 insertions(+), 55 deletions(-) diff --git a/meson.build b/meson.build index 4005ff8..a080af1 100644 --- a/meson.build +++ b/meson.build @@ -43,7 +43,6 @@ endif compiler_flags = [ '-ggdb3', - '-ffat-lto-objects', '-fvisibility=hidden', '-pthread', '-fPIC', @@ -83,19 +82,15 @@ subdir('po') # Dependencies # lib3270 = dependency('lib3270', required:true) +m_dep = cc.find_library('m', required: false) lib_deps = [ - lib3270, - dependency('glib-2.0'), - dependency('gtk+-3.0'), - dependency('gmodule-2.0'), - dependency('gdk-3.0'), -] - -m_dep = cc.find_library('m', required:false) - -extra_deps = [ - m_dep + lib3270, + dependency('glib-2.0'), + dependency('gtk+-3.0'), + dependency('gmodule-2.0'), + dependency('gdk-3.0'), + m_dep, ] # @@ -345,22 +340,6 @@ if host_machine.system() == 'windows' libraries: [ '-lv3270.dll' ] ) -# pkg.generate( -# name: meson.project_name() + '-static', -# description: project_description, -# variables: pkg_variables, -# requires: [ -# 'lib3270-static', -# 'glib-2.0', -# 'gtk+-3.0', -# 'gmodule-2.0', -# 'gdk-3.0', -# ], -# libraries: [ -# '-lv3270', -# ] -# ) - else pkg.generate( @@ -371,20 +350,6 @@ else libraries: [ '-lv3270' ] ) -# pkg.generate( -# name: meson.project_name() + '-static', -# description: project_description, -# variables: pkg_variables, -# requires: [ -# 'lib3270-static', -# 'glib-2.0', -# 'gtk+-3.0', -# 'gmodule-2.0', -# 'gdk-3.0', -# ], -# libraries: [ '-l:libv3270.a' ] -# ) - endif # Check for OSs @@ -425,7 +390,7 @@ if host_machine.system() == 'windows' config_src + lib_src + resources, install: true, gnu_symbol_visibility: 'hidden', - dependencies: lib_deps + extra_deps, + dependencies: lib_deps, link_args: [ '-lws2_32', '-lwtsapi32', @@ -434,6 +399,19 @@ if host_machine.system() == 'windows' include_directories: includes_dir, ) +elif host_machine.system() == 'darwin' + + dynamic = shared_library( + 'v3270', + config_src + lib_src, + install: true, + version : libversion, + soversion : libversion, + gnu_symbol_visibility: 'hidden', + dependencies: lib_deps, + include_directories: includes_dir + ) + else dynamic = shared_library( @@ -441,9 +419,10 @@ else config_src + lib_src, install: true, version : libversion, + c_args: [ '-ffat-lto-objects' ], soversion : libversion, gnu_symbol_visibility: 'hidden', - dependencies: lib_deps + extra_deps, + dependencies: lib_deps, include_directories: includes_dir ) @@ -461,18 +440,23 @@ else endif -libv3270_dep = declare_dependency( - link_with : dynamic, - include_directories : includes_dir, +dynamic_library = declare_dependency( + link_with : dynamic, + include_directories : includes_dir, ) -#static_library( -# 'v3270', -# config_src + lib_src, -# install: true, -# dependencies: lib_deps + extra_deps, -# include_directories: includes_dir -#) +static_library = declare_dependency( + link_with : static_library( + 'v3270', + config_src + lib_src, + pic: true, + c_args: [ '-DSTATIC_LIBRARY', '-fno-lto' ], + install: true, + include_directories: includes_dir, + dependencies: lib_deps, + ), + include_directories : includes_dir, +) executable( meson.project_name(), @@ -482,7 +466,7 @@ executable( ], install: false, link_with : [ dynamic ], - dependencies: lib_deps + extra_deps, + dependencies: lib_deps, include_directories: includes_dir ) From ab66ca876a8de27d151f5b466b4861bbfab27e1f Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 27 Jun 2025 10:15:27 -0300 Subject: [PATCH 3/4] Fixing merge. --- meson.build | 4 ---- 1 file changed, 4 deletions(-) diff --git a/meson.build b/meson.build index 765e435..a080af1 100644 --- a/meson.build +++ b/meson.build @@ -408,11 +408,7 @@ elif host_machine.system() == 'darwin' version : libversion, soversion : libversion, gnu_symbol_visibility: 'hidden', -<<<<<<< HEAD dependencies: lib_deps, -======= - dependencies: lib_deps + extra_deps, ->>>>>>> 2a608dba5bfc484ff54153ee18e7b00c8ffb8f90 include_directories: includes_dir ) From b6c57de3a9e0db881215a40542d9a24c9ef6891d Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 27 Jun 2025 10:51:45 -0300 Subject: [PATCH 4/4] Using lib3270 as subproject. --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index a080af1..7ed2a1d 100644 --- a/meson.build +++ b/meson.build @@ -81,7 +81,7 @@ subdir('po') # # Dependencies # -lib3270 = dependency('lib3270', required:true) +lib3270 = dependency('lib3270', fallback: [ 'lib3270', 'dynamic_library' ]) m_dep = cc.find_library('m', required: false) lib_deps = [