Filled meson.build a bit more, so I can ask questions about it.

This commit is contained in:
Pietro Gagliardi 2019-03-21 11:23:30 -04:00
parent f8543fc641
commit 355b5d05d3
1 changed files with 42 additions and 4 deletions

View File

@ -42,13 +42,15 @@ if libui_OS == 'windows' and libui_mode == 'shared' and not libui_MSVC
endif
libui_deps = []
libui_libversion = ''
libui_soversion = ''
libui_rpath = ''
if libui_OS == 'windows'
# TODO c_winlibs and cpp_winlibs are the windows libraries
# user32 kernel32 gdi32 comctl32 uxtheme msimg32 comdlg32 d2d1 dwrite ole32 oleaut32 oleacc uuid windowscodecs
elif libui_OS == 'darwin'
# TODO libraries
libui_libversion = 'A'
# "-framework Foundation" "-framework AppKit"
libui_soversion = 'A'
# the / is required by some older versions of OS X
libui_rpath = '@executable_path/'
# TODO min version 10.8
@ -57,10 +59,45 @@ else
version: '>=3.10.0',
required: true)
libui_deps += [gtk]
libui_libversion = '0'
libui_soversion = '0'
libui_rpath = '$ORIGIN'
endif
if libui_MSVC
# TODO subsystem version
# TODO -Wno-switch equivalent
# TODO /sdl turns C4996 into an ERROR
# don't use /analyze; that requires us to write annotations everywhere
# TODO undecided flags from qo?
# the RTC flags are only supplied in debug builds because they are only supposed to be used by debug builds (see "This is because run-time error checks are not valid in a release (optimized) build." in https://docs.microsoft.com/cpp/build/reference/rtc-run-time-error-checks)
# /RTCc is not supplied because it's discouraged as of VS2015; see https://www.reddit.com/r/cpp/comments/46mhne/rtcc_rejects_conformant_code_with_visual_c_2015/d06auq5
# /EHsc is to shut the compiler up in some cases
# TODO add these compiler flags (assuming meson doesn't provide an alternate method for these, which I know it does for EHsc):
# /wd4100 (equivalent of -Wno-unused-parameter)
# /bigobj /nologo
# $<$<CONFIG:Debug>:/RTC1 /RTCs /RTCu>
# /EHsc
# TODO add these linker flags (for each: maybe? depends on whether meson does this itself)
# /LARGEADDRESSAWARE
# /NOLOGO
# /INCREMENTAL:NO
# /MANIFEST:NO
else
# TODO add these C/C++ compiler options
# -Wno-unused-parameter
# -Wno-switch
if libui_OS == 'windows'
# don't require shipping the MinGW-w64 DLLs
# TODO add these to the linker options
# -static
# -static-libgcc
# -static-libstdc++
endif
endif
libui_sources = []
libui_extra_libs = []
subdir('common')
@ -79,7 +116,8 @@ libui_libui = library('ui', libui_sources,
build_rpath: libui_rpath,
install_rpath: libui_rpath,
install: true,
gnu_symbol_visibility: 'hidden')
gnu_symbol_visibility: 'hidden',
soversion: libui_soversion)
install_headers('ui.h')
# TODO test