diff options
| author | 2023-09-23 08:50:44 -0700 | |
|---|---|---|
| committer | 2023-09-23 08:53:37 -0700 | |
| commit | 2f4a6214a27d0eac040b9f6e23c4086e1588950a (patch) | |
| tree | d7fdf493dc11ec58c5f867b2d5116273642ec08b | |
| parent | Add 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.
| -rw-r--r-- | build_win.bat | 6 | ||||
| -rw-r--r-- | meson.build | 13 | ||||
| -rw-r--r-- | tools/msi/janet.wxs | 6 |
3 files changed, 10 insertions, 15 deletions
diff --git a/build_win.bat b/build_win.bat index e491262c..d6c56e97 100644 --- a/build_win.bat +++ b/build_win.bat @@ -64,10 +64,6 @@ rc /nologo /fobuild\janet_win.res janet_win.rc %JANET_LINK% /out:janet.exe build\janet.obj build\shell.obj build\janet_win.res @if errorlevel 1 goto :BUILDFAIL -@rem Build dynamic library (dlljanet.dll) -%JANET_LINK% /DLL /out:build\dlljanet.dll build\janet.obj -@if errorlevel 1 goto :BUILDFAIL - @rem Build static library (libjanet.lib) %JANET_LINK_STATIC% /out:build\libjanet.lib build\janet.obj @if errorlevel 1 goto :BUILDFAIL @@ -126,8 +122,6 @@ copy janet.def dist\janet.def janet.exe tools\patch-header.janet src\include\janet.h src\conf\janetconf.h build\janet.h copy build\janet.h dist\janet.h copy build\libjanet.lib dist\libjanet.lib -copy build\dlljanet.dll dist\dlljanet.dll -copy build\dlljanet.lib dist\dlljanet.lib @rem Create installer janet.exe -e "(->> janet/version (peg/match ''(* :d+ `.` :d+ `.` :d+)) first print)" > build\version.txt 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) diff --git a/tools/msi/janet.wxs b/tools/msi/janet.wxs index 9cddd5a4..9ea2038d 100644 --- a/tools/msi/janet.wxs +++ b/tools/msi/janet.wxs @@ -132,12 +132,6 @@ <Component Directory="CDir"> <File Source="dist\libjanet.lib"/> </Component> - <Component Directory="CDir"> - <File Source="dist\dlljanet.dll"/> - </Component> - <Component Directory="CDir"> - <File Source="dist\dlljanet.lib"/> - </Component> <Component Id="LibraryComponent" Directory="LibraryDir" Guid="3860e981-5f94-4002-b5d5-2d9ec0d2792d" KeyPath="yes"> <RemoveFolder Id="RemoveLibraryDir" On="uninstall" /> |
