aboutsummaryrefslogtreecommitdiffhomepage
path: root/meson.build
diff options
context:
space:
mode:
authorCalvin Rose <calsrose@gmail.com>2023-09-23 08:50:44 -0700
committerCalvin Rose <calsrose@gmail.com>2023-09-23 08:53:37 -0700
commit2f4a6214a27d0eac040b9f6e23c4086e1588950a (patch)
treed7fdf493dc11ec58c5f867b2d5116273642ec08b /meson.build
parentAdd optional buffer-size to file/open. (diff)
Make meson build work on windows.
By default, use more traditional linking pattern with meson. The janet.exe will now link to janet-x.x.dll on windows (and similar for linux/posix) when built with meson. This is slightly less efficient and means that janet.exe built this way is no longer standalone (you would need to move the dll along with the exe), but plays better with most build systems.
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build13
1 files changed, 10 insertions, 3 deletions
diff --git a/meson.build b/meson.build
index 807f4d97..84fe4da9 100644
--- a/meson.build
+++ b/meson.build
@@ -182,23 +182,30 @@ if not get_option('single_threaded')
janet_dependencies += thread_dep
endif
+if cc.has_argument('-fvisibility=hidden')
+ lib_cflags = ['-fvisibility=hidden']
+else
+ lib_cflags = []
+endif
libjanet = library('janet', janetc,
include_directories : incdir,
dependencies : janet_dependencies,
version: meson.project_version(),
soversion: version_parts[0] + '.' + version_parts[1],
+ c_args : lib_cflags,
install : true)
# Extra c flags - adding -fvisibility=hidden matches the Makefile and
# shaves off about 10k on linux x64, likely similar on other platforms.
if cc.has_argument('-fvisibility=hidden')
- extra_cflags = ['-fvisibility=hidden']
+ extra_cflags = ['-fvisibility=hidden', '-DJANET_DLL_IMPORT']
else
- extra_cflags = []
+ extra_cflags = ['-DJANET_DLL_IMPORT']
endif
-janet_mainclient = executable('janet', janetc, mainclient_src,
+janet_mainclient = executable('janet', mainclient_src,
include_directories : incdir,
dependencies : janet_dependencies,
+ link_with: [libjanet],
c_args : extra_cflags,
install : true)