From f8543fc6413a595f740cab8eb6d8873c705dcb2c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 17 Mar 2019 21:26:52 -0400 Subject: [PATCH 001/210] Started a top-level meson.build file. This might actually work... maybe. --- meson.build | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 meson.build diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..92aa49f9 --- /dev/null +++ b/meson.build @@ -0,0 +1,86 @@ +# 17 march 2019 + +libui_OS = target_machine.system() +libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' + +libui_languages = ['c', 'c++'] +if libui_OS == 'darwin' + libui_languages += ['objc'] +endif + +libui_default_options = [ + 'default_library=shared', # build shared libraries by default +] +libui_forced_options = { + 'warning_level': '3', # always max warnings + 'b_pch': 'false', # we don't want precompiled headers + 'b_staticpic': 'true', # use PIC even for static libraries + 'c_std': 'c99', # strict C99 + 'cpp_std': 'c++11', # strict C++11 +} +foreach name, value : libui_forced_options + libui_default_options += [name + '=' + value] +endforeach + +project('libui', libui_languages, + default_options: libui_default_options, + license: 'MIT') + +foreach name, value : libui_forced_options + actual = '@0@'.format(get_option(name)) + if actual != value + error('sorry, but libui requires that option ' + name + ' has the default value ' + value) + endif +endforeach + +libui_mode = get_option('default_library') +if libui_mode == 'both' + error('sorry, but libui does not support building both shared and static libraries at the same time, because Windows resource file rules differ between the two') +endif +if libui_OS == 'windows' and libui_mode == 'shared' and not libui_MSVC + error('sorry, but libui currently does not support building a shared library with MinGW; use -Ddefault_library=static instead') +endif + +libui_deps = [] +libui_libversion = '' +libui_rpath = '' +if libui_OS == 'windows' + # TODO c_winlibs and cpp_winlibs are the windows libraries +elif libui_OS == 'darwin' + # TODO libraries + libui_libversion = 'A' + # the / is required by some older versions of OS X + libui_rpath = '@executable_path/' + # TODO min version 10.8 +else + gtk = dependency('gtk+-3.0', + version: '>=3.10.0', + required: true) + libui_deps += [gtk] + libui_libversion = '0' + libui_rpath = '$ORIGIN' +endif + +libui_sources = [] +libui_extra_libs = [] +subdir('common') +if libui_OS == 'windows' + subdir('windows') + install_headers('ui_windows.h') +elif libui_OS == 'darwin' + subdir('darwin') + install_headers('ui_darwin.h') +else + subdir('unix') + install_headers('ui_unix.h') +endif +libui_libui = library('ui', libui_sources, + dependencies: libui_deps, + build_rpath: libui_rpath, + install_rpath: libui_rpath, + install: true, + gnu_symbol_visibility: 'hidden') +install_headers('ui.h') + +# TODO test +# TODO examples From 355b5d05d39c0888156c4b18876d853e9183f375 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 21 Mar 2019 11:23:30 -0400 Subject: [PATCH 002/210] Filled meson.build a bit more, so I can ask questions about it. --- meson.build | 46 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 92aa49f9..31cf125f 100644 --- a/meson.build +++ b/meson.build @@ -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 + # $<$:/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 From 1a9b0881bc6737b30c75eb49d7615d4bb8c7241f Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 21 Mar 2019 23:21:30 -0400 Subject: [PATCH 003/210] Clean up meson.build slightly and add a section to the top to describe what I want to do so I can ask people. --- meson.build | 41 ++++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/meson.build b/meson.build index 31cf125f..18fe4382 100644 --- a/meson.build +++ b/meson.build @@ -1,30 +1,42 @@ # 17 march 2019 +# Here's the overall idea: the build syntax would be something like +# $ meson setup build \ +# [--buildtype=debug|release] \ (core option, default debug) +# [--default_library=static|shared] \ (core option, default shared) +# [--b_sanitize=whatever] +# It turns out that I wouldn't really need any custom options; go figure. +# I'm not sure how to allow building 32-bit instead of 64-bit with meson. +# I'd also like all the outputs to appear in a folder out/ in the build folder. +# I'd also like to be able to omit the library's dependency libraries in the executables if building a shared library, as those are not required in that case; I'd need to require them in a static library. +# And for Windows, the shared library (but not shared executables) needs an additional resource file, and the static executables (but not the static library) need a *different* resource file. (Windows static libraries can't contain resources anyway; the linkers will just ignore the resource objects.) + libui_OS = target_machine.system() libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' -libui_languages = ['c', 'c++'] -if libui_OS == 'darwin' - libui_languages += ['objc'] -endif - libui_default_options = [ + 'buildtype=debug', # build debug by default (TODO: disallow plain?) 'default_library=shared', # build shared libraries by default ] +# TODO switch to tabs; the spaces are just so I can share this file while I'm writing it libui_forced_options = { - 'warning_level': '3', # always max warnings - 'b_pch': 'false', # we don't want precompiled headers - 'b_staticpic': 'true', # use PIC even for static libraries - 'c_std': 'c99', # strict C99 - 'cpp_std': 'c++11', # strict C++11 + 'warning_level': '3', # always max warnings + 'b_pch': 'false', # we don't want precompiled headers + 'b_staticpic': 'true', # use PIC even for static libraries + 'c_std': 'c99', # strict C99 + 'cpp_std': 'c++11', # strict C++11 + 'cpp_eh': 'sc', # shut the compiler up in some cases } foreach name, value : libui_forced_options libui_default_options += [name + '=' + value] endforeach -project('libui', libui_languages, +project('libui', 'c', default_options: libui_default_options, license: 'MIT') +# TODO: +# - add add_language('c++') in windows/meson.build and examples/meson.build:cpp-multithread +# - add add_language('objc') in darwin/meson.build foreach name, value : libui_forced_options actual = '@0@'.format(get_option(name)) @@ -38,7 +50,7 @@ if libui_mode == 'both' error('sorry, but libui does not support building both shared and static libraries at the same time, because Windows resource file rules differ between the two') endif if libui_OS == 'windows' and libui_mode == 'shared' and not libui_MSVC - error('sorry, but libui currently does not support building a shared library with MinGW; use -Ddefault_library=static instead') + error('sorry, but libui currently does not support building a shared library with MinGW; use --default_library=static instead') endif libui_deps = [] @@ -57,6 +69,7 @@ elif libui_OS == 'darwin' else gtk = dependency('gtk+-3.0', version: '>=3.10.0', + method: 'pkg-config', required: true) libui_deps += [gtk] libui_soversion = '0' @@ -66,18 +79,16 @@ endif if libui_MSVC # TODO subsystem version - # TODO -Wno-switch equivalent + # TODO is there a -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 # $<$:/RTC1 /RTCs /RTCu> - # /EHsc # TODO add these linker flags (for each: maybe? depends on whether meson does this itself) # /LARGEADDRESSAWARE From 7063ed6e32510b74f9bcd9dd74405d4383326134 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 22 Mar 2019 22:00:19 -0400 Subject: [PATCH 004/210] Take some suggestions from the meson IRC channel: don't set unnecessary variables before project(); don't disallow plain builds since the options that meson doesn't apply aren't any of the ones I care about. --- meson.build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 18fe4382..4b0caefd 100644 --- a/meson.build +++ b/meson.build @@ -11,11 +11,8 @@ # I'd also like to be able to omit the library's dependency libraries in the executables if building a shared library, as those are not required in that case; I'd need to require them in a static library. # And for Windows, the shared library (but not shared executables) needs an additional resource file, and the static executables (but not the static library) need a *different* resource file. (Windows static libraries can't contain resources anyway; the linkers will just ignore the resource objects.) -libui_OS = target_machine.system() -libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' - libui_default_options = [ - 'buildtype=debug', # build debug by default (TODO: disallow plain?) + 'buildtype=debug', # build debug by default 'default_library=shared', # build shared libraries by default ] # TODO switch to tabs; the spaces are just so I can share this file while I'm writing it @@ -45,6 +42,9 @@ foreach name, value : libui_forced_options endif endforeach +libui_OS = target_machine.system() +libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' + libui_mode = get_option('default_library') if libui_mode == 'both' error('sorry, but libui does not support building both shared and static libraries at the same time, because Windows resource file rules differ between the two') From a440b174f7e890b6c02226a686c9600a1c26a8d9 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 22 Mar 2019 22:04:07 -0400 Subject: [PATCH 005/210] Use host_machine instead of target_machine. Confusingly, host_machine is not the build host, but rather the target machine that the binaries will run on. build_machine is the build host. It probably made sense to the person in the 1980s who came up with this, but meh. --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 4b0caefd..54f1c293 100644 --- a/meson.build +++ b/meson.build @@ -42,7 +42,7 @@ foreach name, value : libui_forced_options endif endforeach -libui_OS = target_machine.system() +libui_OS = host_machine.system() libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' libui_mode = get_option('default_library') From 035139a1e95d69fff1474f8827037b26afa47d38 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 22 Mar 2019 22:46:36 -0400 Subject: [PATCH 006/210] Set up the macOS dependencies; I found it by accident :V Also removed the independent temporary dependency variables. --- meson.build | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 54f1c293..8fdbd771 100644 --- a/meson.build +++ b/meson.build @@ -60,18 +60,18 @@ 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 - # "-framework Foundation" "-framework AppKit" + libui_deps += [dependency('appleframeworks', + modules: ['Foundation', 'AppKit'], + required: true)] libui_soversion = 'A' # the / is required by some older versions of OS X libui_rpath = '@executable_path/' # TODO min version 10.8 else - gtk = dependency('gtk+-3.0', + libui_deps += [dependency('gtk+-3.0', version: '>=3.10.0', method: 'pkg-config', - required: true) - libui_deps += [gtk] + required: true)] libui_soversion = '0' libui_rpath = '$ORIGIN' endif From 253ce9a3cc01200864ce1220df7dc836141893b5 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 23 Mar 2019 15:42:42 -0400 Subject: [PATCH 007/210] Decided to just use add_project_(link_)arguments() for now, and set up the macOS build for testing. --- common/meson.build | 19 +++++++++++++++ darwin/meson.build | 58 ++++++++++++++++++++++++++++++++++++++++++++++ meson.build | 49 +++++++++++++++++++++++++-------------- 3 files changed, 108 insertions(+), 18 deletions(-) create mode 100644 common/meson.build create mode 100644 darwin/meson.build diff --git a/common/meson.build b/common/meson.build new file mode 100644 index 00000000..df0fc182 --- /dev/null +++ b/common/meson.build @@ -0,0 +1,19 @@ +# 23 march 2019 + +libui_sources += [ + 'common/attribute.c', + 'common/attrlist.c', + 'common/attrstr.c', + 'common/areaevents.c', + 'common/control.c', + 'common/debug.c', + 'common/matrix.c', + 'common/opentype.c', + 'common/shouldquit.c', + 'common/tablemodel.c', + 'common/tablevalue.c', + 'common/userbugs.c', + 'common/utf.c', +] + +libui_include_directories += [include_directory('.')] diff --git a/darwin/meson.build b/darwin/meson.build new file mode 100644 index 00000000..2cafc9c0 --- /dev/null +++ b/darwin/meson.build @@ -0,0 +1,58 @@ +# 23 march 2019 + +add_languages('objc', + required: true) + +libui_sources += [ + 'darwin/aat.m', + 'darwin/alloc.m', + 'darwin/area.m', + 'darwin/areaevents.m', + 'darwin/attrstr.m', + 'darwin/autolayout.m', + 'darwin/box.m', + 'darwin/button.m', + 'darwin/checkbox.m', + 'darwin/colorbutton.m', + 'darwin/combobox.m', + 'darwin/control.m', + 'darwin/datetimepicker.m', + 'darwin/debug.m', + 'darwin/draw.m', + 'darwin/drawtext.m', + 'darwin/editablecombo.m', + 'darwin/entry.m', + 'darwin/fontbutton.m', + 'darwin/fontmatch.m', + 'darwin/fonttraits.m', + 'darwin/fontvariation.m', + 'darwin/form.m', + 'darwin/future.m', + 'darwin/graphemes.m', + 'darwin/grid.m', + 'darwin/group.m', + 'darwin/image.m', + 'darwin/label.m', + 'darwin/main.m', + 'darwin/map.m', + 'darwin/menu.m', + 'darwin/multilineentry.m', + 'darwin/opentype.m', + 'darwin/progressbar.m', + 'darwin/radiobuttons.m', + 'darwin/scrollview.m', + 'darwin/separator.m', + 'darwin/slider.m', + 'darwin/spinbox.m', + 'darwin/stddialogs.m', + 'darwin/tab.m', + 'darwin/table.m', + 'darwin/tablecolumn.m', + 'darwin/text.m', + 'darwin/undocumented.m', + 'darwin/util.m', + 'darwin/window.m', + 'darwin/winmoveresize.m', +] + +libui_include_directories += [include_directory('.')] diff --git a/meson.build b/meson.build index 8fdbd771..498387f4 100644 --- a/meson.build +++ b/meson.build @@ -32,8 +32,7 @@ project('libui', 'c', default_options: libui_default_options, license: 'MIT') # TODO: -# - add add_language('c++') in windows/meson.build and examples/meson.build:cpp-multithread -# - add add_language('objc') in darwin/meson.build +# - add add_languages('c++') in windows/meson.build and examples/meson.build:cpp-multithread foreach name, value : libui_forced_options actual = '@0@'.format(get_option(name)) @@ -53,6 +52,10 @@ if libui_OS == 'windows' and libui_mode == 'shared' and not libui_MSVC error('sorry, but libui currently does not support building a shared library with MinGW; use --default_library=static instead') endif +# TODO there has to be a better way to specify this +libui_buildtype = get_option('buildtype') +libui_is_debug = libui_buildtype == 'debug' or libui_buildtype == 'debugoptimized' + libui_deps = [] libui_soversion = '' libui_rpath = '' @@ -66,7 +69,11 @@ elif libui_OS == 'darwin' libui_soversion = 'A' # the / is required by some older versions of OS X libui_rpath = '@executable_path/' - # TODO min version 10.8 + + # TODO see if there's a more direct way to set this + libui_macosx_version_min = '-mmacosx-version-min=10.8' + add_project_arguments(libui_macosx_version_min) + add_project_link_arguments(libui_macosx_version_min) else libui_deps += [dependency('gtk+-3.0', version: '>=3.10.0', @@ -76,6 +83,7 @@ else libui_rpath = '$ORIGIN' endif +# TODO see if there's a more direct way to set any of these if libui_MSVC # TODO subsystem version @@ -86,30 +94,34 @@ if libui_MSVC # 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 # 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 - # $<$:/RTC1 /RTCs /RTCu> + add_project_arguments( + '/wd4100', + '/bigobj', '/nologo') + if libui_is_debug + add_project_arguments('/RTC1', '/RTCs', '/RTCu') + endif - # TODO add these linker flags (for each: maybe? depends on whether meson does this itself) - # /LARGEADDRESSAWARE - # /NOLOGO - # /INCREMENTAL:NO - # /MANIFEST:NO + add_project_link_arguments( + '/LARGEADDRESSAWARE', + '/NOLOGO', + '/INCREMENTAL:NO', + '/MANIFEST:NO') else - # TODO add these C/C++ compiler options - # -Wno-unused-parameter - # -Wno-switch + add_project_arguments( + '-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++ + add_project_link_arguments( + '-static', + '-static-libgcc', + '-static-libstdc++') endif endif libui_sources = [] +libui_include_directories = [include_directory('.')] libui_extra_libs = [] subdir('common') if libui_OS == 'windows' @@ -123,6 +135,7 @@ else install_headers('ui_unix.h') endif libui_libui = library('ui', libui_sources, + include_directories: libui_include_directories, dependencies: libui_deps, build_rpath: libui_rpath, install_rpath: libui_rpath, From 1deacb55aa00f7c2103e2365dcfb383601cfc46f Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 23 Mar 2019 16:18:13 -0400 Subject: [PATCH 008/210] And massaged things into a buildable state. Woo. NOW things are starting to get annoying, but at least it's not so much *voodoo* anymore? --- common/meson.build | 2 +- darwin/meson.build | 5 +--- meson.build | 71 ++++++++++++++++++++++++++++------------------ 3 files changed, 45 insertions(+), 33 deletions(-) diff --git a/common/meson.build b/common/meson.build index df0fc182..ec0c6ecf 100644 --- a/common/meson.build +++ b/common/meson.build @@ -16,4 +16,4 @@ libui_sources += [ 'common/utf.c', ] -libui_include_directories += [include_directory('.')] +libui_include_directories += [include_directories('.')] diff --git a/darwin/meson.build b/darwin/meson.build index 2cafc9c0..5ae6a83a 100644 --- a/darwin/meson.build +++ b/darwin/meson.build @@ -1,8 +1,5 @@ # 23 march 2019 -add_languages('objc', - required: true) - libui_sources += [ 'darwin/aat.m', 'darwin/alloc.m', @@ -55,4 +52,4 @@ libui_sources += [ 'darwin/winmoveresize.m', ] -libui_include_directories += [include_directory('.')] +libui_include_directories += [include_directories('.')] diff --git a/meson.build b/meson.build index 498387f4..85f28ef7 100644 --- a/meson.build +++ b/meson.build @@ -11,10 +11,27 @@ # I'd also like to be able to omit the library's dependency libraries in the executables if building a shared library, as those are not required in that case; I'd need to require them in a static library. # And for Windows, the shared library (but not shared executables) needs an additional resource file, and the static executables (but not the static library) need a *different* resource file. (Windows static libraries can't contain resources anyway; the linkers will just ignore the resource objects.) -libui_default_options = [ - 'buildtype=debug', # build debug by default - 'default_library=shared', # build shared libraries by default -] +# we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; TODO) +# and same for Objective-C because of add_project_arguments() (double sigh; TODO) +project('libui', ['c', 'cpp', 'objc'], + default_options: [ + 'buildtype=debug', # build debug by default + 'default_library=shared', # build shared libraries by default + + # these are forced options, but meson doesn't let me set these up separately before I call project() (TODO) + 'warning_level=3', # always max warnings + 'b_pch=false', # we don't want precompiled headers + 'b_staticpic=true', # use PIC even for static libraries + 'c_std=c99', # strict C99 + 'cpp_std=c++11', # strict C++11 + 'cpp_eh=sc', # shut the compiler up in some cases + ], + license: 'MIT') + +# TODO move these below the next part (I need them here for other reasons) +libui_OS = host_machine.system() +libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' + # TODO switch to tabs; the spaces are just so I can share this file while I'm writing it libui_forced_options = { 'warning_level': '3', # always max warnings @@ -25,25 +42,15 @@ libui_forced_options = { 'cpp_eh': 'sc', # shut the compiler up in some cases } foreach name, value : libui_forced_options - libui_default_options += [name + '=' + value] -endforeach - -project('libui', 'c', - default_options: libui_default_options, - license: 'MIT') -# TODO: -# - add add_languages('c++') in windows/meson.build and examples/meson.build:cpp-multithread - -foreach name, value : libui_forced_options - actual = '@0@'.format(get_option(name)) - if actual != value - error('sorry, but libui requires that option ' + name + ' has the default value ' + value) + # TODO why does meson need this guard? + if name != 'cpp_eh' or libui_MSVC + actual = '@0@'.format(get_option(name)) + if actual != value + error('sorry, but libui requires that option ' + name + ' has the default value ' + value) + endif endif endforeach -libui_OS = host_machine.system() -libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' - libui_mode = get_option('default_library') if libui_mode == 'both' error('sorry, but libui does not support building both shared and static libraries at the same time, because Windows resource file rules differ between the two') @@ -72,8 +79,11 @@ elif libui_OS == 'darwin' # TODO see if there's a more direct way to set this libui_macosx_version_min = '-mmacosx-version-min=10.8' - add_project_arguments(libui_macosx_version_min) - add_project_link_arguments(libui_macosx_version_min) + add_project_arguments(libui_macosx_version_min, + # TODO WHY IS THIS NEEDED MESON + language: ['c', 'cpp', 'objc']) + add_project_link_arguments(libui_macosx_version_min, + language: ['c', 'cpp', 'objc']) else libui_deps += [dependency('gtk+-3.0', version: '>=3.10.0', @@ -96,32 +106,37 @@ if libui_MSVC # TODO add these compiler flags (assuming meson doesn't provide an alternate method for these, which I know it does for EHsc): add_project_arguments( '/wd4100', - '/bigobj', '/nologo') + '/bigobj', '/nologo', + language: ['c', 'cpp', 'objc']) if libui_is_debug - add_project_arguments('/RTC1', '/RTCs', '/RTCu') + add_project_arguments('/RTC1', '/RTCs', '/RTCu', + language: ['c', 'cpp', 'objc']) endif add_project_link_arguments( '/LARGEADDRESSAWARE', '/NOLOGO', '/INCREMENTAL:NO', - '/MANIFEST:NO') + '/MANIFEST:NO', + language: ['c', 'cpp', 'objc']) else add_project_arguments( '-Wno-unused-parameter', - '-Wno-switch') + '-Wno-switch', + language: ['c', 'cpp', 'objc']) if libui_OS == 'windows' # don't require shipping the MinGW-w64 DLLs add_project_link_arguments( '-static', '-static-libgcc', - '-static-libstdc++') + '-static-libstdc++', + language: ['c', 'cpp', 'objc']) endif endif libui_sources = [] -libui_include_directories = [include_directory('.')] +libui_include_directories = [include_directories('.')] libui_extra_libs = [] subdir('common') if libui_OS == 'windows' From cdd997b6f69ea69cb61a1c3631185e64fb6792dd Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 23 Mar 2019 18:12:33 -0400 Subject: [PATCH 009/210] Added tester build file and made sure everything works. It works! --- meson.build | 15 ++++++++++++--- test/meson.build | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 test/meson.build diff --git a/meson.build b/meson.build index 85f28ef7..aba58148 100644 --- a/meson.build +++ b/meson.build @@ -136,7 +136,8 @@ else endif libui_sources = [] -libui_include_directories = [include_directories('.')] +libui_base_include_directories = [include_directories('.')] +libui_include_directories = libui_base_include_directories libui_extra_libs = [] subdir('common') if libui_OS == 'windows' @@ -156,8 +157,16 @@ libui_libui = library('ui', libui_sources, install_rpath: libui_rpath, install: true, gnu_symbol_visibility: 'hidden', - soversion: libui_soversion) + c_args: ['-Dlibui_EXPORTS'], + cpp_args: ['-Dlibui_EXPORTS'], + objc_args: ['-Dlibui_EXPORTS'], + soversion: libui_soversion, + darwin_versions: []) # TODO install_headers('ui.h') -# TODO test +libui_binary_deps = [] +if libui_mode == 'static' + libui_binary_deps = libui_deps +endif +subdir('test') # TODO examples diff --git a/test/meson.build b/test/meson.build new file mode 100644 index 00000000..455154be --- /dev/null +++ b/test/meson.build @@ -0,0 +1,42 @@ +# 23 march 2019 + +# TODO +#if(WIN32) +# set(_TEST_RESOURCES_RC resources.rc) +#endif() + +libui_test_sources = [ + 'drawtests.c', + 'images.c', + 'main.c', + 'menus.c', + 'page1.c', + 'page2.c', + 'page3.c', + 'page4.c', + 'page5.c', + 'page6.c', + 'page7.c', + 'page7a.c', + 'page7b.c', + 'page7c.c', +# 'page8.c', +# 'page9.c', +# 'page10.c', + 'page11.c', + 'page12.c', + 'page13.c', + 'page14.c', + 'page15.c', + 'page16.c', + 'spaced.c', +] + +# TODO meson doesn't let us name this target test, but also doesn't seem to provide a way to override the executable name???? +executable('tester', libui_test_sources, + include_directories: libui_base_include_directories + [include_directories('.')], + dependencies: libui_binary_deps, + link_with: libui_libui, + build_by_default: false, + gui_app: false, + install: false) From dff8ec0f22e12c830694605167888e3530b9ec68 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 23 Mar 2019 21:06:19 -0400 Subject: [PATCH 010/210] Set up the Unix meson.build. That seems to work too. --- meson.build | 15 ++++++------ unix/meson.build | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+), 7 deletions(-) create mode 100644 unix/meson.build diff --git a/meson.build b/meson.build index aba58148..c82d3311 100644 --- a/meson.build +++ b/meson.build @@ -13,7 +13,7 @@ # we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; TODO) # and same for Objective-C because of add_project_arguments() (double sigh; TODO) -project('libui', ['c', 'cpp', 'objc'], +project('libui', ['c', 'cpp'], default_options: [ 'buildtype=debug', # build debug by default 'default_library=shared', # build shared libraries by default @@ -32,6 +32,11 @@ project('libui', ['c', 'cpp', 'objc'], libui_OS = host_machine.system() libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' +if libui_OS == 'darwin' + add_language('objc', + required: true) +endif + # TODO switch to tabs; the spaces are just so I can share this file while I'm writing it libui_forced_options = { 'warning_level': '3', # always max warnings @@ -85,12 +90,6 @@ elif libui_OS == 'darwin' add_project_link_arguments(libui_macosx_version_min, language: ['c', 'cpp', 'objc']) else - libui_deps += [dependency('gtk+-3.0', - version: '>=3.10.0', - method: 'pkg-config', - required: true)] - libui_soversion = '0' - libui_rpath = '$ORIGIN' endif # TODO see if there's a more direct way to set any of these @@ -138,6 +137,8 @@ endif libui_sources = [] libui_base_include_directories = [include_directories('.')] libui_include_directories = libui_base_include_directories +# TODO make this not += +libui_deps += [] libui_extra_libs = [] subdir('common') if libui_OS == 'windows' diff --git a/unix/meson.build b/unix/meson.build new file mode 100644 index 00000000..66cdd006 --- /dev/null +++ b/unix/meson.build @@ -0,0 +1,64 @@ +# 23 march 2019 + +libui_sources += [ + 'unix/alloc.c', + 'unix/area.c', + 'unix/attrstr.c', + 'unix/box.c', + 'unix/button.c', + 'unix/cellrendererbutton.c', + 'unix/checkbox.c', + 'unix/child.c', + 'unix/colorbutton.c', + 'unix/combobox.c', + 'unix/control.c', + 'unix/datetimepicker.c', + 'unix/debug.c', + 'unix/draw.c', + 'unix/drawmatrix.c', + 'unix/drawpath.c', + 'unix/drawtext.c', + 'unix/editablecombo.c', + 'unix/entry.c', + 'unix/fontbutton.c', + 'unix/fontmatch.c', + 'unix/form.c', + 'unix/future.c', + 'unix/graphemes.c', + 'unix/grid.c', + 'unix/group.c', + 'unix/image.c', + 'unix/label.c', + 'unix/main.c', + 'unix/menu.c', + 'unix/multilineentry.c', + 'unix/opentype.c', + 'unix/progressbar.c', + 'unix/radiobuttons.c', + 'unix/separator.c', + 'unix/slider.c', + 'unix/spinbox.c', + 'unix/stddialogs.c', + 'unix/tab.c', + 'unix/table.c', + 'unix/tablemodel.c', + 'unix/text.c', + 'unix/util.c', + 'unix/window.c', +] + +libui_include_directories += [include_directories('.')] + +libui_deps += [ + dependency('gtk+-3.0', + version: '>=3.10.0', + method: 'pkg-config', + required: true), + # TODO are there better ways for these two? + meson.get_compiler('c').find_library('m', + required: true), + meson.get_compiler('c').find_library('dl', + required: true), +] +libui_soversion = '0' +libui_rpath = '$ORIGIN' From 5e557d61b3d0f8fb241d3248f35d50ecf9613603 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 23 Mar 2019 21:50:54 -0400 Subject: [PATCH 011/210] Set the minimum required meson version and moved the libui-specific OS X variables into darwin.build like we did with unix.build. --- darwin/meson.build | 7 +++++++ meson.build | 10 ++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/darwin/meson.build b/darwin/meson.build index 5ae6a83a..c502fb74 100644 --- a/darwin/meson.build +++ b/darwin/meson.build @@ -53,3 +53,10 @@ libui_sources += [ ] libui_include_directories += [include_directories('.')] + +libui_deps += [dependency('appleframeworks', + modules: ['Foundation', 'AppKit'], + required: true)] +libui_soversion = 'A' +# the / is required by some older versions of OS X +libui_rpath = '@executable_path/' diff --git a/meson.build b/meson.build index c82d3311..5fe4ffce 100644 --- a/meson.build +++ b/meson.build @@ -14,6 +14,7 @@ # we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; TODO) # and same for Objective-C because of add_project_arguments() (double sigh; TODO) project('libui', ['c', 'cpp'], + meson_version: '>=0.48.0', default_options: [ 'buildtype=debug', # build debug by default 'default_library=shared', # build shared libraries by default @@ -33,7 +34,7 @@ libui_OS = host_machine.system() libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' if libui_OS == 'darwin' - add_language('objc', + add_languages('objc', required: true) endif @@ -75,13 +76,6 @@ 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' - libui_deps += [dependency('appleframeworks', - modules: ['Foundation', 'AppKit'], - required: true)] - libui_soversion = 'A' - # the / is required by some older versions of OS X - libui_rpath = '@executable_path/' - # TODO see if there's a more direct way to set this libui_macosx_version_min = '-mmacosx-version-min=10.8' add_project_arguments(libui_macosx_version_min, From 2be9a4f3a30aa5fec9a2418f63e45c41c2403281 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 23 Mar 2019 22:28:17 -0400 Subject: [PATCH 012/210] Added the initial Windows meson.build. Windows Meson is having problems running, so we'll have to test this later. --- meson.build | 18 +++------- test/meson.build | 8 ++--- windows/meson.build | 87 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 19 deletions(-) create mode 100644 windows/meson.build diff --git a/meson.build b/meson.build index 5fe4ffce..2afb9cfe 100644 --- a/meson.build +++ b/meson.build @@ -61,21 +61,12 @@ libui_mode = get_option('default_library') if libui_mode == 'both' error('sorry, but libui does not support building both shared and static libraries at the same time, because Windows resource file rules differ between the two') endif -if libui_OS == 'windows' and libui_mode == 'shared' and not libui_MSVC - error('sorry, but libui currently does not support building a shared library with MinGW; use --default_library=static instead') -endif # TODO there has to be a better way to specify this libui_buildtype = get_option('buildtype') libui_is_debug = libui_buildtype == 'debug' or libui_buildtype == 'debugoptimized' -libui_deps = [] -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' +if libui_OS == 'darwin' # TODO see if there's a more direct way to set this libui_macosx_version_min = '-mmacosx-version-min=10.8' add_project_arguments(libui_macosx_version_min, @@ -83,7 +74,6 @@ elif libui_OS == 'darwin' language: ['c', 'cpp', 'objc']) add_project_link_arguments(libui_macosx_version_min, language: ['c', 'cpp', 'objc']) -else endif # TODO see if there's a more direct way to set any of these @@ -131,9 +121,9 @@ endif libui_sources = [] libui_base_include_directories = [include_directories('.')] libui_include_directories = libui_base_include_directories -# TODO make this not += -libui_deps += [] -libui_extra_libs = [] +libui_deps = [] +libui_soversion = '' +libui_rpath = '' subdir('common') if libui_OS == 'windows' subdir('windows') diff --git a/test/meson.build b/test/meson.build index 455154be..30a994b0 100644 --- a/test/meson.build +++ b/test/meson.build @@ -1,10 +1,5 @@ # 23 march 2019 -# TODO -#if(WIN32) -# set(_TEST_RESOURCES_RC resources.rc) -#endif() - libui_test_sources = [ 'drawtests.c', 'images.c', @@ -31,6 +26,9 @@ libui_test_sources = [ 'page16.c', 'spaced.c', ] +if libui_OS == 'windows' and libui_mode == 'static' + libui_test_sources += ['resources.rc'] +endif # TODO meson doesn't let us name this target test, but also doesn't seem to provide a way to override the executable name???? executable('tester', libui_test_sources, diff --git a/windows/meson.build b/windows/meson.build new file mode 100644 index 00000000..5edfdb68 --- /dev/null +++ b/windows/meson.build @@ -0,0 +1,87 @@ +# 23 march 2019 + +libui_sources += [ + 'windows/alloc.cpp', + 'windows/area.cpp', + 'windows/areadraw.cpp', + 'windows/areaevents.cpp', + 'windows/areascroll.cpp', + 'windows/areautil.cpp', + 'windows/attrstr.cpp', + 'windows/box.cpp', + 'windows/button.cpp', + 'windows/checkbox.cpp', + 'windows/colorbutton.cpp', + 'windows/colordialog.cpp', + 'windows/combobox.cpp', + 'windows/container.cpp', + 'windows/control.cpp', + 'windows/d2dscratch.cpp', + 'windows/datetimepicker.cpp', + 'windows/debug.cpp', + 'windows/draw.cpp', + 'windows/drawmatrix.cpp', + 'windows/drawpath.cpp', + 'windows/drawtext.cpp', + 'windows/dwrite.cpp', + 'windows/editablecombo.cpp', + 'windows/entry.cpp', + 'windows/events.cpp', + 'windows/fontbutton.cpp', + 'windows/fontdialog.cpp', + 'windows/fontmatch.cpp', + 'windows/form.cpp', + 'windows/graphemes.cpp', + 'windows/grid.cpp', + 'windows/group.cpp', + 'windows/image.cpp', + 'windows/init.cpp', + 'windows/label.cpp', + 'windows/main.cpp', + 'windows/menu.cpp', + 'windows/multilineentry.cpp', + 'windows/opentype.cpp', + 'windows/parent.cpp', + 'windows/progressbar.cpp', + 'windows/radiobuttons.cpp', + 'windows/separator.cpp', + 'windows/sizing.cpp', + 'windows/slider.cpp', + 'windows/spinbox.cpp', + 'windows/stddialogs.cpp', + 'windows/tab.cpp', + 'windows/table.cpp', + 'windows/tabledispinfo.cpp', + 'windows/tabledraw.cpp', + 'windows/tableediting.cpp', + 'windows/tablemetrics.cpp', + 'windows/tabpage.cpp', + 'windows/text.cpp', + 'windows/utf16.cpp', + 'windows/utilwin.cpp', + 'windows/window.cpp', + 'windows/winpublic.cpp', + 'windows/winutil.cpp', +] +# resources.rc only contains the libui manifest. +# For a DLL, we have to include this directly, so we do so. +# Windows won't link resources in static libraries, so including this would have no effect. +# In those cases, we just need them to include the manifest with the executable (or link it directly into the output executable themselves); they can also customize the manifest as they see fit (assuming nothing breaks in the process). +# TODO make sure this gets added to both binary-only archives and install rules in this case +if libui_mode == 'shared' + libui_sources += ['windows/resources.rc'] +endif + +libui_include_directories += [include_directories('.')] + +libui_winlibs = 'user32 kernel32 gdi32 comctl32 uxtheme msimg32 comdlg32 d2d1 dwrite ole32 oleaut32 oleacc uuid windowscodecs'.split(' ') +for lib in libui_winlibs + libui_dep += [ + meson.get_compiler('cpp').find_library(lib, + required: true), + ] +endfor + +if libui_OS == 'windows' and libui_mode == 'shared' and not libui_MSVC + error('Sorry, but libui for Windows can currently only be built as a static library with MinGW. You will need to either build as a static library or switch to MSVC.') +endif From c1dfc0ab5daf1b5750a04451f63e65999600c6d3 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 24 Mar 2019 12:57:25 -0400 Subject: [PATCH 013/210] And got the Windows build working. Woo! --- meson.build | 8 ++++++-- windows/meson.build | 20 ++++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/meson.build b/meson.build index 2afb9cfe..2f887045 100644 --- a/meson.build +++ b/meson.build @@ -24,8 +24,10 @@ project('libui', ['c', 'cpp'], 'b_pch=false', # we don't want precompiled headers 'b_staticpic=true', # use PIC even for static libraries 'c_std=c99', # strict C99 + 'c_winlibs=', # we define our own Windows libraries 'cpp_std=c++11', # strict C++11 'cpp_eh=sc', # shut the compiler up in some cases + 'cpp_winlibs=', # likewise as with c_winlibs ], license: 'MIT') @@ -44,12 +46,14 @@ libui_forced_options = { 'b_pch': 'false', # we don't want precompiled headers 'b_staticpic': 'true', # use PIC even for static libraries 'c_std': 'c99', # strict C99 + 'c_winlibs': '[]', # we define our own Windows libraries 'cpp_std': 'c++11', # strict C++11 'cpp_eh': 'sc', # shut the compiler up in some cases + 'cpp_winlibs': '[]', # likewise as with c_winlibs } foreach name, value : libui_forced_options - # TODO why does meson need this guard? - if name != 'cpp_eh' or libui_MSVC + # TODO why does meson need this guard? why aren't all options defined regardless of target?! + if not (name == 'cpp_eh' and not libui_MSVC) and not (name == 'c_std' and libui_MSVC) actual = '@0@'.format(get_option(name)) if actual != value error('sorry, but libui requires that option ' + name + ' has the default value ' + value) diff --git a/windows/meson.build b/windows/meson.build index 5edfdb68..db6c971a 100644 --- a/windows/meson.build +++ b/windows/meson.build @@ -1,5 +1,7 @@ # 23 march 2019 +windows = import('windows') + libui_sources += [ 'windows/alloc.cpp', 'windows/area.cpp', @@ -63,24 +65,30 @@ libui_sources += [ 'windows/winpublic.cpp', 'windows/winutil.cpp', ] + +libui_include_directories += [include_directories('.')] + # resources.rc only contains the libui manifest. # For a DLL, we have to include this directly, so we do so. # Windows won't link resources in static libraries, so including this would have no effect. # In those cases, we just need them to include the manifest with the executable (or link it directly into the output executable themselves); they can also customize the manifest as they see fit (assuming nothing breaks in the process). # TODO make sure this gets added to both binary-only archives and install rules in this case if libui_mode == 'shared' - libui_sources += ['windows/resources.rc'] + libui_sources += [ + # TODO settle the path thing once and for all + windows.compile_resources('resources.rc', + depend_files: ['libui.manifest'], + include_directories: libui_include_directories), + ] endif -libui_include_directories += [include_directories('.')] - libui_winlibs = 'user32 kernel32 gdi32 comctl32 uxtheme msimg32 comdlg32 d2d1 dwrite ole32 oleaut32 oleacc uuid windowscodecs'.split(' ') -for lib in libui_winlibs - libui_dep += [ +foreach lib : libui_winlibs + libui_deps += [ meson.get_compiler('cpp').find_library(lib, required: true), ] -endfor +endforeach if libui_OS == 'windows' and libui_mode == 'shared' and not libui_MSVC error('Sorry, but libui for Windows can currently only be built as a static library with MinGW. You will need to either build as a static library or switch to MSVC.') From 467a9102ecbbfcdd91bebc966b4fab7ca3b1de24 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 24 Mar 2019 14:11:02 -0400 Subject: [PATCH 014/210] Fixed static builds on all platforms. So close to getting all this set up! --- meson.build | 10 +++++++++- test/meson.build | 18 +++++++++++++++--- windows/meson.build | 1 + 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 2f887045..23d36405 100644 --- a/meson.build +++ b/meson.build @@ -53,7 +53,7 @@ libui_forced_options = { } foreach name, value : libui_forced_options # TODO why does meson need this guard? why aren't all options defined regardless of target?! - if not (name == 'cpp_eh' and not libui_MSVC) and not (name == 'c_std' and libui_MSVC) + if not ((name == 'c_winlibs' or name == 'cpp_eh' or name == 'cpp_winlibs') and not libui_MSVC) and not (name == 'c_std' and libui_MSVC) actual = '@0@'.format(get_option(name)) if actual != value error('sorry, but libui requires that option ' + name + ' has the default value ' + value) @@ -122,6 +122,13 @@ else endif endif +libui_manifest_args = [] +if libui_mode == 'static' + add_project_arguments('-D_UI_STATIC', + language: ['c', 'cpp', 'objc']) + libui_manifest_args = ['-D_UI_STATIC'] +endif + libui_sources = [] libui_base_include_directories = [include_directories('.')] libui_include_directories = libui_base_include_directories @@ -139,6 +146,7 @@ else subdir('unix') install_headers('ui_unix.h') endif +# TODO make sure the name is always libui.(something) regardless of the OS or build type libui_libui = library('ui', libui_sources, include_directories: libui_include_directories, dependencies: libui_deps, diff --git a/test/meson.build b/test/meson.build index 30a994b0..b954b722 100644 --- a/test/meson.build +++ b/test/meson.build @@ -26,13 +26,25 @@ libui_test_sources = [ 'page16.c', 'spaced.c', ] -if libui_OS == 'windows' and libui_mode == 'static' - libui_test_sources += ['resources.rc'] + +libui_test_include_directories = libui_base_include_directories + [include_directories('.')] + +if libui_OS == 'windows' + libui_test_manifest = 'test.manifest' + if libui_mode == 'static' + libui_test_manifest = 'test.static.manifest' + endif + libui_test_sources += [ + windows.compile_resources('resources.rc', + args: libui_manifest_args, + depend_files: [libui_test_manifest], + include_directories: libui_test_include_directories), + ] endif # TODO meson doesn't let us name this target test, but also doesn't seem to provide a way to override the executable name???? executable('tester', libui_test_sources, - include_directories: libui_base_include_directories + [include_directories('.')], + include_directories: libui_test_include_directories, dependencies: libui_binary_deps, link_with: libui_libui, build_by_default: false, diff --git a/windows/meson.build b/windows/meson.build index db6c971a..bab21571 100644 --- a/windows/meson.build +++ b/windows/meson.build @@ -77,6 +77,7 @@ if libui_mode == 'shared' libui_sources += [ # TODO settle the path thing once and for all windows.compile_resources('resources.rc', + args: libui_manifest_args, depend_files: ['libui.manifest'], include_directories: libui_include_directories), ] From 3457082b1bf9f456842e08b1e53d133df74c0190 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 24 Mar 2019 17:26:15 -0400 Subject: [PATCH 015/210] Set up examples meson.build. --- examples/meson.build | 65 ++++++++++++++++++++++++++++++++++++++++++++ meson.build | 2 +- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 examples/meson.build diff --git a/examples/meson.build b/examples/meson.build new file mode 100644 index 00000000..2d7594c8 --- /dev/null +++ b/examples/meson.build @@ -0,0 +1,65 @@ +# 24 march 2019 + +libui_example_include_directories = libui_base_include_directories + [include_directories('.')] + +libui_example_sources = [] +libui_example_link_args = [] +libui_example_cpp_extra_args = [] +if libui_OS == 'windows' + libui_example_manifest = 'example.manifest' + if libui_mode == 'static' + libui_example_manifest = 'example.static.manifest' + endif + libui_example_sources += [ + windows.compile_resources('resources.rc', + args: libui_manifest_args, + depend_files: [libui_example_manifest], + include_directories: libui_example_include_directories), + ] + # because Microsoft's toolchain is dumb + if libui_MSVC + libui_example_link_args += ['/ENTRY:mainCRTStartup'] + endif +elif libui_OS == 'darwin' + # since we use a deployment target of 10.8, the non-C++11-compliant libstdc++ is chosen by default; we need C++11 + # see issue #302 for more details + libui_example_cpp_extra_args += ['--stdlib=libc++'] +endif + +libui_examples = { + 'controlgallery': { + 'sources': ['controlgallery/main.c'], + }, + 'histogram': { + 'sources': ['histogram/main.c'], + }, + 'cpp-multithread': { + 'sources': ['cpp-multithread/main.cpp'], + 'deps': [ + dependency('threads', + required: true), + ], + 'cpp_args': libui_example_cpp_extra_args, + 'link_args': libui_example_cpp_extra_args, + }, + 'drawtext': { + 'sources': ['drawtext/main.c'], + }, + 'timer': { + 'sources': ['timer/main.c'], + }, + 'datetime': { + 'sources': ['datetime/main.c'], + }, +} +foreach name, args : libui_examples + executable(name, args['sources'] + libui_example_sources, + include_directories: libui_example_include_directories, + dependencies: args.get('deps', []) + libui_binary_deps, + link_with: libui_libui, + cpp_args: args.get('cpp_args', []), + link_args: args.get('link_args', []) + libui_example_link_args, + build_by_default: false, + gui_app: false, + install: false) +endforeach diff --git a/meson.build b/meson.build index 23d36405..2ad41a3f 100644 --- a/meson.build +++ b/meson.build @@ -166,4 +166,4 @@ if libui_mode == 'static' libui_binary_deps = libui_deps endif subdir('test') -# TODO examples +subdir('examples') From c449ab7da93358f6a7d16968fc7eba091f2b9667 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 25 Mar 2019 10:29:18 -0400 Subject: [PATCH 016/210] Fixed the name of the Windows DLL in meson.build. --- meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/meson.build b/meson.build index 2ad41a3f..37264253 100644 --- a/meson.build +++ b/meson.build @@ -152,6 +152,7 @@ libui_libui = library('ui', libui_sources, dependencies: libui_deps, build_rpath: libui_rpath, install_rpath: libui_rpath, + name_prefix: 'lib', # always call it libui, even in Windows DLLs install: true, gnu_symbol_visibility: 'hidden', c_args: ['-Dlibui_EXPORTS'], From 87f2be68498f4b9c60a717f1b0abd174320b920d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 25 Mar 2019 10:46:41 -0400 Subject: [PATCH 017/210] Rewrote one expression to reduce the number of variables. --- meson.build | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 37264253..58d1c076 100644 --- a/meson.build +++ b/meson.build @@ -67,8 +67,7 @@ if libui_mode == 'both' endif # TODO there has to be a better way to specify this -libui_buildtype = get_option('buildtype') -libui_is_debug = libui_buildtype == 'debug' or libui_buildtype == 'debugoptimized' +libui_is_debug = get_option('buildtype').startswith('debug') if libui_OS == 'darwin' # TODO see if there's a more direct way to set this From 1b9250e41e7a8fa60cd92639f7eea43496be17f8 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 25 Mar 2019 20:07:22 -0400 Subject: [PATCH 018/210] Removed include_directories hackery, as suggested by various people in freenode #mesonbuild. --- common/meson.build | 2 -- darwin/meson.build | 2 -- examples/meson.build | 6 +----- meson.build | 3 --- test/meson.build | 6 +----- unix/meson.build | 2 -- windows/meson.build | 3 --- 7 files changed, 2 insertions(+), 22 deletions(-) diff --git a/common/meson.build b/common/meson.build index ec0c6ecf..3146add2 100644 --- a/common/meson.build +++ b/common/meson.build @@ -15,5 +15,3 @@ libui_sources += [ 'common/userbugs.c', 'common/utf.c', ] - -libui_include_directories += [include_directories('.')] diff --git a/darwin/meson.build b/darwin/meson.build index c502fb74..238a35fc 100644 --- a/darwin/meson.build +++ b/darwin/meson.build @@ -52,8 +52,6 @@ libui_sources += [ 'darwin/winmoveresize.m', ] -libui_include_directories += [include_directories('.')] - libui_deps += [dependency('appleframeworks', modules: ['Foundation', 'AppKit'], required: true)] diff --git a/examples/meson.build b/examples/meson.build index 2d7594c8..8e50feeb 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -1,7 +1,5 @@ # 24 march 2019 -libui_example_include_directories = libui_base_include_directories + [include_directories('.')] - libui_example_sources = [] libui_example_link_args = [] libui_example_cpp_extra_args = [] @@ -13,8 +11,7 @@ if libui_OS == 'windows' libui_example_sources += [ windows.compile_resources('resources.rc', args: libui_manifest_args, - depend_files: [libui_example_manifest], - include_directories: libui_example_include_directories), + depend_files: [libui_example_manifest]), ] # because Microsoft's toolchain is dumb if libui_MSVC @@ -54,7 +51,6 @@ libui_examples = { } foreach name, args : libui_examples executable(name, args['sources'] + libui_example_sources, - include_directories: libui_example_include_directories, dependencies: args.get('deps', []) + libui_binary_deps, link_with: libui_libui, cpp_args: args.get('cpp_args', []), diff --git a/meson.build b/meson.build index 58d1c076..0b60be4d 100644 --- a/meson.build +++ b/meson.build @@ -129,8 +129,6 @@ if libui_mode == 'static' endif libui_sources = [] -libui_base_include_directories = [include_directories('.')] -libui_include_directories = libui_base_include_directories libui_deps = [] libui_soversion = '' libui_rpath = '' @@ -147,7 +145,6 @@ else endif # TODO make sure the name is always libui.(something) regardless of the OS or build type libui_libui = library('ui', libui_sources, - include_directories: libui_include_directories, dependencies: libui_deps, build_rpath: libui_rpath, install_rpath: libui_rpath, diff --git a/test/meson.build b/test/meson.build index b954b722..744fa3ac 100644 --- a/test/meson.build +++ b/test/meson.build @@ -27,8 +27,6 @@ libui_test_sources = [ 'spaced.c', ] -libui_test_include_directories = libui_base_include_directories + [include_directories('.')] - if libui_OS == 'windows' libui_test_manifest = 'test.manifest' if libui_mode == 'static' @@ -37,14 +35,12 @@ if libui_OS == 'windows' libui_test_sources += [ windows.compile_resources('resources.rc', args: libui_manifest_args, - depend_files: [libui_test_manifest], - include_directories: libui_test_include_directories), + depend_files: [libui_test_manifest]), ] endif # TODO meson doesn't let us name this target test, but also doesn't seem to provide a way to override the executable name???? executable('tester', libui_test_sources, - include_directories: libui_test_include_directories, dependencies: libui_binary_deps, link_with: libui_libui, build_by_default: false, diff --git a/unix/meson.build b/unix/meson.build index 66cdd006..5b48ad98 100644 --- a/unix/meson.build +++ b/unix/meson.build @@ -47,8 +47,6 @@ libui_sources += [ 'unix/window.c', ] -libui_include_directories += [include_directories('.')] - libui_deps += [ dependency('gtk+-3.0', version: '>=3.10.0', diff --git a/windows/meson.build b/windows/meson.build index bab21571..ac02be25 100644 --- a/windows/meson.build +++ b/windows/meson.build @@ -66,8 +66,6 @@ libui_sources += [ 'windows/winutil.cpp', ] -libui_include_directories += [include_directories('.')] - # resources.rc only contains the libui manifest. # For a DLL, we have to include this directly, so we do so. # Windows won't link resources in static libraries, so including this would have no effect. @@ -79,7 +77,6 @@ if libui_mode == 'shared' windows.compile_resources('resources.rc', args: libui_manifest_args, depend_files: ['libui.manifest'], - include_directories: libui_include_directories), ] endif From 9527bb73cacb7d379366c82519811bda425fbb0a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 25 Mar 2019 20:17:42 -0400 Subject: [PATCH 019/210] Remove /nologo options from meson.build files; according to jpakkane, this is already provided by meson. --- meson.build | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 0b60be4d..c302b40e 100644 --- a/meson.build +++ b/meson.build @@ -92,7 +92,7 @@ if libui_MSVC # TODO add these compiler flags (assuming meson doesn't provide an alternate method for these, which I know it does for EHsc): add_project_arguments( '/wd4100', - '/bigobj', '/nologo', + '/bigobj', language: ['c', 'cpp', 'objc']) if libui_is_debug add_project_arguments('/RTC1', '/RTCs', '/RTCu', @@ -101,7 +101,6 @@ if libui_MSVC add_project_link_arguments( '/LARGEADDRESSAWARE', - '/NOLOGO', '/INCREMENTAL:NO', '/MANIFEST:NO', language: ['c', 'cpp', 'objc']) From 0b87ee9f93b8c415d14ee0d6f7c5b90bdbafd6bb Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 25 Mar 2019 20:52:49 -0400 Subject: [PATCH 020/210] More TODOs. --- meson.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meson.build b/meson.build index c302b40e..22c555b3 100644 --- a/meson.build +++ b/meson.build @@ -157,6 +157,8 @@ libui_libui = library('ui', libui_sources, darwin_versions: []) # TODO install_headers('ui.h') +# TODO when the API is stable enough to be versioned, create a pkg-config file (https://mesonbuild.com/Pkgconfig-module.html) and a declare_dependency() section too + libui_binary_deps = [] if libui_mode == 'static' libui_binary_deps = libui_deps From 0d9cfa0f684ad85d52f79b4c91522a8d69b10a36 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 25 Mar 2019 23:12:28 -0400 Subject: [PATCH 021/210] Resolved some TODOs/removed some stale TODOs. The one about libui_is_debug was confirmed by freenode elibrokeit as the pacman package manager uses it. --- meson.build | 3 --- 1 file changed, 3 deletions(-) diff --git a/meson.build b/meson.build index 22c555b3..541c070a 100644 --- a/meson.build +++ b/meson.build @@ -12,7 +12,6 @@ # And for Windows, the shared library (but not shared executables) needs an additional resource file, and the static executables (but not the static library) need a *different* resource file. (Windows static libraries can't contain resources anyway; the linkers will just ignore the resource objects.) # we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; TODO) -# and same for Objective-C because of add_project_arguments() (double sigh; TODO) project('libui', ['c', 'cpp'], meson_version: '>=0.48.0', default_options: [ @@ -66,7 +65,6 @@ if libui_mode == 'both' error('sorry, but libui does not support building both shared and static libraries at the same time, because Windows resource file rules differ between the two') endif -# TODO there has to be a better way to specify this libui_is_debug = get_option('buildtype').startswith('debug') if libui_OS == 'darwin' @@ -142,7 +140,6 @@ else subdir('unix') install_headers('ui_unix.h') endif -# TODO make sure the name is always libui.(something) regardless of the OS or build type libui_libui = library('ui', libui_sources, dependencies: libui_deps, build_rpath: libui_rpath, From fec83e72bf526cb37785ebba06612f0b051ed124 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 26 Mar 2019 21:53:00 -0400 Subject: [PATCH 022/210] Clean up add_project_arguments()/add_project_link_arguments() invocations. --- meson.build | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/meson.build b/meson.build index 541c070a..118146fd 100644 --- a/meson.build +++ b/meson.build @@ -67,14 +67,14 @@ endif libui_is_debug = get_option('buildtype').startswith('debug') +libui_project_compile_args = [] +libui_project_link_args = [] + if libui_OS == 'darwin' # TODO see if there's a more direct way to set this libui_macosx_version_min = '-mmacosx-version-min=10.8' - add_project_arguments(libui_macosx_version_min, - # TODO WHY IS THIS NEEDED MESON - language: ['c', 'cpp', 'objc']) - add_project_link_arguments(libui_macosx_version_min, - language: ['c', 'cpp', 'objc']) + libui_project_compile_args += [libui_macosx_version_min] + libui_project_link_args += [libui_macosx_version_min] endif # TODO see if there's a more direct way to set any of these @@ -88,43 +88,46 @@ if libui_MSVC # 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 # TODO add these compiler flags (assuming meson doesn't provide an alternate method for these, which I know it does for EHsc): - add_project_arguments( + libui_project_compile_args += [ '/wd4100', '/bigobj', - language: ['c', 'cpp', 'objc']) + ] if libui_is_debug - add_project_arguments('/RTC1', '/RTCs', '/RTCu', - language: ['c', 'cpp', 'objc']) + libui_project_compile_args += ['/RTC1', '/RTCs', '/RTCu'] endif - add_project_link_arguments( + libui_project_link_args += [ '/LARGEADDRESSAWARE', '/INCREMENTAL:NO', '/MANIFEST:NO', - language: ['c', 'cpp', 'objc']) + ] else - add_project_arguments( + libui_project_compile_args += [ '-Wno-unused-parameter', '-Wno-switch', - language: ['c', 'cpp', 'objc']) + ] if libui_OS == 'windows' # don't require shipping the MinGW-w64 DLLs - add_project_link_arguments( + libui_project_link_args += [ '-static', '-static-libgcc', '-static-libstdc++', - language: ['c', 'cpp', 'objc']) + ] endif endif libui_manifest_args = [] if libui_mode == 'static' - add_project_arguments('-D_UI_STATIC', - language: ['c', 'cpp', 'objc']) + libui_project_compile_args += ['-D_UI_STATIC'] libui_manifest_args = ['-D_UI_STATIC'] endif +add_project_arguments(libui_project_compile_args, + language: ['c', 'cpp', 'objc']) +add_project_link_arguments(libui_project_link_args, + language: ['c', 'cpp', 'objc']) + libui_sources = [] libui_deps = [] libui_soversion = '' From c940b85b8469f11d4b70dca1b0df96ba12558f10 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 26 Mar 2019 22:03:39 -0400 Subject: [PATCH 023/210] Removed TODOs about finding the best wya to do things, as either there is none or the way I was doing it was already the right way (as with -mmacosx-version-min, judging from the repo code). --- meson.build | 2 -- 1 file changed, 2 deletions(-) diff --git a/meson.build b/meson.build index 118146fd..12e96012 100644 --- a/meson.build +++ b/meson.build @@ -71,13 +71,11 @@ libui_project_compile_args = [] libui_project_link_args = [] if libui_OS == 'darwin' - # TODO see if there's a more direct way to set this libui_macosx_version_min = '-mmacosx-version-min=10.8' libui_project_compile_args += [libui_macosx_version_min] libui_project_link_args += [libui_macosx_version_min] endif -# TODO see if there's a more direct way to set any of these if libui_MSVC # TODO subsystem version From 77f3b419407091d91d4abc8c2b433f738990e912 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 26 Mar 2019 22:06:20 -0400 Subject: [PATCH 024/210] Removed a stale TODO and moved notes about Windows flags into its own file because these probably won't be handled any time soon... --- _notes/winflags | 6 ++++++ meson.build | 7 ------- 2 files changed, 6 insertions(+), 7 deletions(-) create mode 100644 _notes/winflags diff --git a/_notes/winflags b/_notes/winflags new file mode 100644 index 00000000..b56f45fc --- /dev/null +++ b/_notes/winflags @@ -0,0 +1,6 @@ + # TODO is there a -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 diff --git a/meson.build b/meson.build index 12e96012..6e98269d 100644 --- a/meson.build +++ b/meson.build @@ -79,13 +79,6 @@ endif if libui_MSVC # TODO subsystem version - # TODO is there a -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 - # TODO add these compiler flags (assuming meson doesn't provide an alternate method for these, which I know it does for EHsc): libui_project_compile_args += [ '/wd4100', '/bigobj', From b3232cc50c77c7d4487b453eff4f079563fd6971 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 26 Mar 2019 22:10:48 -0400 Subject: [PATCH 025/210] Cleaned up the comment at the top of meson.build, removing stale information and converting remaining loose ends into explicit TODOs. --- meson.build | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index 6e98269d..282e91bd 100644 --- a/meson.build +++ b/meson.build @@ -4,12 +4,13 @@ # $ meson setup build \ # [--buildtype=debug|release] \ (core option, default debug) # [--default_library=static|shared] \ (core option, default shared) +# [--layout=flat] \ (useful for distribution and Windows DLL tests) # [--b_sanitize=whatever] # It turns out that I wouldn't really need any custom options; go figure. -# I'm not sure how to allow building 32-bit instead of 64-bit with meson. -# I'd also like all the outputs to appear in a folder out/ in the build folder. -# I'd also like to be able to omit the library's dependency libraries in the executables if building a shared library, as those are not required in that case; I'd need to require them in a static library. -# And for Windows, the shared library (but not shared executables) needs an additional resource file, and the static executables (but not the static library) need a *different* resource file. (Windows static libraries can't contain resources anyway; the linkers will just ignore the resource objects.) +# TODO I'm not sure how to allow building 32-bit instead of 64-bit with meson. +# TODO figure out what (meson/ninja) dist do +# TODO figure out why test and examples aren't included in ninja all +# TODO figure out how to make an overarching "examples" target # we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; TODO) project('libui', ['c', 'cpp'], From beba7470f49547a1d30742f43690c0289a4b9430 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 00:46:34 -0400 Subject: [PATCH 026/210] Started cleaning out the CMakeLists.txt. meson automatically includes -fomit-frame-pointer for the address sanitizer, so no extra work needed. --- CMakeLists.txt | 136 ------------------------------------------------- meson.build | 7 +++ 2 files changed, 7 insertions(+), 136 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c7193fbb..b87c8a3c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,142 +1,6 @@ # 3 june 2016 -# see https://cmake.org/gitweb?p=cmake.git;a=commit;h=95cdf132489c79e88a10fdf7a7566fa002c7680b (thanks ngladitz in irc.freenode.net/#cmake) -cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) -# TODOs -# - silence entering/leaving messages? -# - uname -s for more refined OS control -# - Haiku for haiku -# - debian DESTDIR? https://github.com/andlabs/libui/pull/10 -# - libui-combined* needs to be deleted so that custom command can run every time -# - add notelemetry.obj to *ALL TARGETS* on VS2015 and up - https://www.infoq.com/news/2016/06/visual-cpp-telemetry -# - switch to 3.1.0 features - -# the docs say we need to set this up prior to project() -# the docs don't say this, but the CACHE part is important; see https://stackoverflow.com/questions/34208360/cmake-seems-to-ignore-cmake-osx-deployment-target -# TODO figure out what other variables must be set with CACHE -# TODO figure out if FORCE is needed here -# TODO figure out whether STRING "" is best or if something else is better; also what FORCE does because I forget and later I say it's needed -set(CMAKE_OSX_DEPLOYMENT_TARGET "10.8" CACHE STRING "" FORCE) - -# we want to disable incremental linking -# see also: -# - https://github.com/bulletphysics/bullet3/blob/master/CMakeLists.txt#L43 -# - https://cmake.org/pipermail/cmake/2010-February/035174.html -# this must also go before project() -set(MSVC_INCREMENTAL_DEFAULT ON) - -# default to debug builds -# do this before project() just to be safe -# either DEBUG or Debug will work; we use DEBUG as that's what cmake does internally (https://cmake.org/pipermail/cmake/2013-June/055177.html) -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE DEBUG CACHE STRING "" FORCE) -endif() - -project(libui) -option(BUILD_SHARED_LIBS "Whether to build libui as a shared library or a static library" ON) - -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out") -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out") -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out") -set(CMAKE_PDB_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/out") - -if(APPLE) - set(_OSNAME darwin) - set(_HASVERSION TRUE) - set(_VERSION "A") - - # always use our rpath - set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) - # the / is required by some older versions of OS X - set(CMAKE_INSTALL_RPATH "@executable_path/") - set(CMAKE_MACOSX_RPATH TRUE) -elseif(WIN32) - set(_OSNAME windows) - - # and don't include the default libraries with ANY of the builds - # note the CACHE FORCE stuff is required here - set(CMAKE_C_STANDARD_LIBRARIES CACHE STRING "" FORCE) - set(CMAKE_CXX_STANDARD_LIBRARIES CACHE STRING "" FORCE) -else() - set(_OSNAME unix) - set(_HASVERSION TRUE) - set(_VERSION "0") - - # always use our rpath - set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) set(CMAKE_INSTALL_RPATH "\$ORIGIN") -endif() - -# common flags -if(MSVC) - # TODO subsystem version - - # TODO /Wall does too much - # 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 make /EHsc C++-only - set(_COMMON_CFLAGS - /W4 /wd4100 - /bigobj /nologo - $<$:/RTC1 /RTCs /RTCu> - /EHsc - ) - - # note the /MANIFEST:NO (which must be / and uppercase); thanks FraGag (https://github.com/andlabs/libui/issues/93#issuecomment-223183436) - # TODO warnings on undefined symbols - set(_COMMON_LDFLAGS - /LARGEADDRESSAWARE - /NOLOGO - /INCREMENTAL:NO - /MANIFEST:NO - ) - - # TODO autogenerate a .def file? - - # more incremental linking fixes - # TODO actually get rid of incremental linking here -else() - set(_COMMON_CFLAGS - -Wall -Wextra -pedantic - -Wno-unused-parameter - -Wno-switch - -fvisibility=hidden - ) - # don't use C_VERSION or CXX_VERSION because they use GNU standards - # TODO we can actually do this; set both C_EXTENSIONS and CXX_EXTENSIONS to OFF - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=c99") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++11") - - set(_COMMON_LDFLAGS - -fvisibility=hidden - ) - - # don't require shipping the MinGW-w64 DLLs - if(WIN32) - list(APPEND _COMMON_LDFLAGS - -static - -static-libgcc - -static-libstdc++ - ) - endif() - - # TODO document this - if(ADDRESS_SANITIZER) - set(_COMMON_CFLAGS ${_COMMON_CFLAGS} - -fsanitize=address - -fno-omit-frame-pointer - ) - set(_COMMON_LDFLAGS ${_COMMON_LDFLAGS} - -fsanitize=address - -fno-omit-frame-pointer - ) - endif() -endif() # problem: # - target_link_libraries() only supports - for flags diff --git a/meson.build b/meson.build index 282e91bd..a2316428 100644 --- a/meson.build +++ b/meson.build @@ -11,6 +11,11 @@ # TODO figure out what (meson/ninja) dist do # TODO figure out why test and examples aren't included in ninja all # TODO figure out how to make an overarching "examples" target +# TODOs from cmake; not sure if they're relevant here: +# - uname -s for more refined OS control +# - Haiku for haiku +# - debian DESTDIR? https://github.com/andlabs/libui/pull/10 +# - disable incremental linking? I forget if meson already doesn't do this or not; we did it manually in cmake # we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; TODO) project('libui', ['c', 'cpp'], @@ -93,6 +98,8 @@ if libui_MSVC '/INCREMENTAL:NO', '/MANIFEST:NO', ] + + # TODO autogenerate a .def file? else libui_project_compile_args += [ '-Wno-unused-parameter', From f65caac1ce4ba7d00c4272ffd006cff85459cbd4 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 00:56:43 -0400 Subject: [PATCH 027/210] More CMakeLists.txt cleanup. What's left in the top-level CMakeLists.txt is gonna take a while to put back properly... --- CMakeLists.txt | 77 +------------------------------------------------- meson.build | 1 + 2 files changed, 2 insertions(+), 76 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b87c8a3c..faf8b3ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,53 +2,6 @@ set(CMAKE_INSTALL_RPATH "\$ORIGIN") -# problem: -# - target_link_libraries() only supports - for flags -# - but cmake only doesn't generate the manifest if the flag has a / -macro(_target_link_options_private _target) - foreach(_opt IN LISTS ${ARGN}) - set_property(TARGET ${_target} APPEND_STRING PROPERTY - LINK_FLAGS " ${_opt}") - endforeach() -endmacro() - -add_subdirectory("common") -add_subdirectory("${_OSNAME}") -add_library(libui ${_LIBUI_SOURCES}) -target_include_directories(libui - PUBLIC . - PRIVATE ${_LIBUI_INCLUEDIRS}) -target_compile_definitions(libui - PRIVATE ${_LIBUI_DEFS}) -# cmake produces this for us by default but only for shared libraries -target_compile_definitions(libui - PRIVATE libui_EXPORTS) -target_compile_options(libui - PUBLIC ${_COMMON_CFLAGS} - PRIVATE ${_LIBUI_CFLAGS}) -# TODO link directories? -if(BUILD_SHARED_LIBS) - target_link_libraries(libui - PRIVATE ${_LIBUI_LIBS}) -endif() -# TODO INTERFACE libs don't inherit to grandhcildren? -# on Windows the linker for static libraries is different; don't give it the flags -if(BUILD_SHARED_LIBS) - _target_link_options_private(libui - _COMMON_LDFLAGS - _LIBUI_LDFLAGS) -endif() -if(NOT BUILD_SHARED_LIBS) - # TODO figure out a way to tell libui that it's static - target_compile_definitions(libui - PUBLIC _UI_STATIC) -endif() -if(NOT MSVC) - # on non-MSVC compilers cmake adds an extra lib- - # note that we apply this to libui, not to any intermediates - set_target_properties(libui PROPERTIES - OUTPUT_NAME ui) - # flags for warning on undefined symbols # TODO figure out why FreeBSD follows linked libraries here # TODO figure out MSVC equivalents @@ -63,40 +16,12 @@ if(NOT MSVC) endif() endif() endif() -if(BUILD_SHARED_LIBS) - if(_HASVERSION) - set_target_properties(libui PROPERTIES - SOVERSION "${_VERSION}") - endif() -endif() + # TODO why is this not a default?! set_property(TARGET libui PROPERTY POSITION_INDEPENDENT_CODE True) macro(_add_exec _name) - # TODOTODO re-add WIN32 when merging back - add_executable(${_name} - EXCLUDE_FROM_ALL - ${ARGN}) - target_link_libraries(${_name} libui) - _target_link_options_private(${_name} - _COMMON_LDFLAGS) - # TODO does this propagate? set_property(TARGET ${_name} PROPERTY POSITION_INDEPENDENT_CODE True) - # TODO see above about INTERFACE - if(NOT BUILD_SHARED_LIBS) - target_link_libraries(${_name} - ${_LIBUI_LIBS}) - endif() - - # TODOfor some reason these don't propagate - if(NOT WIN32) - target_include_directories(${_name} - PUBLIC .) - target_compile_options(${_name} - PUBLIC ${_COMMON_CFLAGS}) - endif() endmacro() -add_subdirectory("test") -add_subdirectory("examples") diff --git a/meson.build b/meson.build index a2316428..3b7408ce 100644 --- a/meson.build +++ b/meson.build @@ -116,6 +116,7 @@ else endif endif +# TODO come up with a better way to do this, both for libui (the compiler define, used by winapi.hpp, and the manifest args) and for the binaries (the manifest args) libui_manifest_args = [] if libui_mode == 'static' libui_project_compile_args += ['-D_UI_STATIC'] From 6a5fedf3f4f76dcff747fed1d3d87c92e7e06749 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 00:59:32 -0400 Subject: [PATCH 028/210] Settled windows/CMakeLists.txt. --- windows/CMakeLists.txt | 94 ------------------------------------------ windows/meson.build | 2 + 2 files changed, 2 insertions(+), 94 deletions(-) delete mode 100644 windows/CMakeLists.txt diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt deleted file mode 100644 index ac9af411..00000000 --- a/windows/CMakeLists.txt +++ /dev/null @@ -1,94 +0,0 @@ -# 3 june 2016 - -list(APPEND _LIBUI_SOURCES - windows/alloc.cpp - windows/area.cpp - windows/areadraw.cpp - windows/areaevents.cpp - windows/areascroll.cpp - windows/areautil.cpp - windows/attrstr.cpp - windows/box.cpp - windows/button.cpp - windows/checkbox.cpp - windows/colorbutton.cpp - windows/colordialog.cpp - windows/combobox.cpp - windows/container.cpp - windows/control.cpp - windows/d2dscratch.cpp - windows/datetimepicker.cpp - windows/debug.cpp - windows/draw.cpp - windows/drawmatrix.cpp - windows/drawpath.cpp - windows/drawtext.cpp - windows/dwrite.cpp - windows/editablecombo.cpp - windows/entry.cpp - windows/events.cpp - windows/fontbutton.cpp - windows/fontdialog.cpp - windows/fontmatch.cpp - windows/form.cpp - windows/graphemes.cpp - windows/grid.cpp - windows/group.cpp - windows/image.cpp - windows/init.cpp - windows/label.cpp - windows/main.cpp - windows/menu.cpp - windows/multilineentry.cpp - windows/opentype.cpp - windows/parent.cpp - windows/progressbar.cpp - windows/radiobuttons.cpp - windows/separator.cpp - windows/sizing.cpp - windows/slider.cpp - windows/spinbox.cpp - windows/stddialogs.cpp - windows/tab.cpp - windows/table.cpp - windows/tabledispinfo.cpp - windows/tabledraw.cpp - windows/tableediting.cpp - windows/tablemetrics.cpp - windows/tabpage.cpp - windows/text.cpp - windows/utf16.cpp - windows/utilwin.cpp - windows/window.cpp - windows/winpublic.cpp - windows/winutil.cpp -) -# resources.rc only contains the libui manifest. -# For a DLL, we have to include this directly, so we do so. -# Windows won't link resources in static libraries, so including this would have no effect. -# In those cases, we just need them to include the manifest with the executable (or link it directly into the output executable themselves); they can also customize the manifest as they see fit (assuming nothing breaks in the process). -# TODO make sure this gets added to both binary-only archives and install rules in this case -if(BUILD_SHARED_LIBS) - list(APPEND _LIBUI_SOURCES - windows/resources.rc - ) -endif() -set(_LIBUI_SOURCES ${_LIBUI_SOURCES} PARENT_SCOPE) - -list(APPEND _LIBUI_INCLUDEDIRS - windows -) -set(_LIBUI_INCLUDEDIRS _LIBUI_INCLUDEDIRS PARENT_SCOPE) - -# TODO prune this list -set(_LIBUI_LIBS - user32 kernel32 gdi32 comctl32 uxtheme msimg32 comdlg32 d2d1 dwrite ole32 oleaut32 oleacc uuid windowscodecs -PARENT_SCOPE) - -if(NOT MSVC) - if(BUILD_SHARED_LIBS) - message(FATAL_ERROR - "Sorry, but libui for Windows can currently only be built as a static library with MinGW. You will need to either build as a static library or switch to MSVC." - ) - endif() -endif() diff --git a/windows/meson.build b/windows/meson.build index ac02be25..1d1a3baf 100644 --- a/windows/meson.build +++ b/windows/meson.build @@ -80,6 +80,8 @@ if libui_mode == 'shared' ] endif +# TODO prune this list +# TODO find out if we can just pass libui_winlibs to find_library() libui_winlibs = 'user32 kernel32 gdi32 comctl32 uxtheme msimg32 comdlg32 d2d1 dwrite ole32 oleaut32 oleacc uuid windowscodecs'.split(' ') foreach lib : libui_winlibs libui_deps += [ From 8b37a98170154d4acdf61d4f3c43f5f8604d30f1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 01:02:50 -0400 Subject: [PATCH 029/210] Settled unix/CMakeLists.txt (was already complete in unix/meson.build) and darwin/CMakeLists.txt (just had one other thing needing to be moved). --- darwin/CMakeLists.txt | 64 ----------------------------------------- darwin/meson.build | 10 +++++-- unix/CMakeLists.txt | 66 ------------------------------------------- 3 files changed, 7 insertions(+), 133 deletions(-) delete mode 100644 darwin/CMakeLists.txt delete mode 100644 unix/CMakeLists.txt diff --git a/darwin/CMakeLists.txt b/darwin/CMakeLists.txt deleted file mode 100644 index bd7d576a..00000000 --- a/darwin/CMakeLists.txt +++ /dev/null @@ -1,64 +0,0 @@ -# 3 june 2016 - -list(APPEND _LIBUI_SOURCES - darwin/aat.m - darwin/alloc.m - darwin/area.m - darwin/areaevents.m - darwin/attrstr.m - darwin/autolayout.m - darwin/box.m - darwin/button.m - darwin/checkbox.m - darwin/colorbutton.m - darwin/combobox.m - darwin/control.m - darwin/datetimepicker.m - darwin/debug.m - darwin/draw.m - darwin/drawtext.m - darwin/editablecombo.m - darwin/entry.m - darwin/fontbutton.m - darwin/fontmatch.m - darwin/fonttraits.m - darwin/fontvariation.m - darwin/form.m - darwin/future.m - darwin/graphemes.m - darwin/grid.m - darwin/group.m - darwin/image.m - darwin/label.m - darwin/main.m - darwin/map.m - darwin/menu.m - darwin/multilineentry.m - darwin/opentype.m - darwin/progressbar.m - darwin/radiobuttons.m - darwin/scrollview.m - darwin/separator.m - darwin/slider.m - darwin/spinbox.m - darwin/stddialogs.m - darwin/tab.m - darwin/table.m - darwin/tablecolumn.m - darwin/text.m - darwin/undocumented.m - darwin/util.m - darwin/window.m - darwin/winmoveresize.m -) -set(_LIBUI_SOURCES ${_LIBUI_SOURCES} PARENT_SCOPE) - -# TODO is this correct? -list(APPEND _LIBUI_INCLUDEDIRS - darwin -) -set(_LIBUI_INCLUDEDIRS _LIBUI_INCLUDEDIRS PARENT_SCOPE) - -set(_LIBUI_LIBS - objc "-framework Foundation" "-framework AppKit" -PARENT_SCOPE) diff --git a/darwin/meson.build b/darwin/meson.build index 238a35fc..c2510464 100644 --- a/darwin/meson.build +++ b/darwin/meson.build @@ -52,9 +52,13 @@ libui_sources += [ 'darwin/winmoveresize.m', ] -libui_deps += [dependency('appleframeworks', - modules: ['Foundation', 'AppKit'], - required: true)] +libui_deps += [ + meson.get_compiler('objc').find_library('objc', + required: true), + dependency('appleframeworks', + modules: ['Foundation', 'AppKit'], + required: true), +] libui_soversion = 'A' # the / is required by some older versions of OS X libui_rpath = '@executable_path/' diff --git a/unix/CMakeLists.txt b/unix/CMakeLists.txt deleted file mode 100644 index 5c9425d2..00000000 --- a/unix/CMakeLists.txt +++ /dev/null @@ -1,66 +0,0 @@ -# 3 june 2016 - -find_package(PkgConfig REQUIRED) -pkg_check_modules(GTK REQUIRED gtk+-3.0) - -list(APPEND _LIBUI_SOURCES - unix/alloc.c - unix/area.c - unix/attrstr.c - unix/box.c - unix/button.c - unix/cellrendererbutton.c - unix/checkbox.c - unix/child.c - unix/colorbutton.c - unix/combobox.c - unix/control.c - unix/datetimepicker.c - unix/debug.c - unix/draw.c - unix/drawmatrix.c - unix/drawpath.c - unix/drawtext.c - unix/editablecombo.c - unix/entry.c - unix/fontbutton.c - unix/fontmatch.c - unix/form.c - unix/future.c - unix/graphemes.c - unix/grid.c - unix/group.c - unix/image.c - unix/label.c - unix/main.c - unix/menu.c - unix/multilineentry.c - unix/opentype.c - unix/progressbar.c - unix/radiobuttons.c - unix/separator.c - unix/slider.c - unix/spinbox.c - unix/stddialogs.c - unix/tab.c - unix/table.c - unix/tablemodel.c - unix/text.c - unix/util.c - unix/window.c -) -set(_LIBUI_SOURCES ${_LIBUI_SOURCES} PARENT_SCOPE) - -list(APPEND _LIBUI_INCLUDEDIRS - unix -) -set(_LIBUI_INCLUDEDIRS _LIBUI_INCLUDEDIRS PARENT_SCOPE) - -# TODO the other variables don't work? -set(_LIBUI_CFLAGS - ${GTK_CFLAGS} -PARENT_SCOPE) - -set(_LIBUI_LIBS - ${GTK_LDFLAGS} m ${CMAKE_DL_LIBS} -PARENT_SCOPE) From f6ef61cdee6df8841bd4b6f8855331c77466756a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 01:05:57 -0400 Subject: [PATCH 030/210] And settled common/CMakeLists.txt (it also had nothing that needed to be moved). --- common/CMakeLists.txt | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 common/CMakeLists.txt diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt deleted file mode 100644 index 0e1360d8..00000000 --- a/common/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ -# 3 june 2016 - -list(APPEND _LIBUI_SOURCES - common/attribute.c - common/attrlist.c - common/attrstr.c - common/areaevents.c - common/control.c - common/debug.c - common/matrix.c - common/opentype.c - common/shouldquit.c - common/tablemodel.c - common/tablevalue.c - common/userbugs.c - common/utf.c -) -set(_LIBUI_SOURCES ${_LIBUI_SOURCES} PARENT_SCOPE) - -list(APPEND _LIBUI_INCLUDEDIRS - common -) -set(_LIBUI_INCLUDEDIRS ${_LIBUI_INCLUDEDIRS} PARENT_SCOPE) From 99f2b8f5add3c183ef85db15d6ba04088fdb6c80 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 01:07:03 -0400 Subject: [PATCH 031/210] And settled test/CMakeLists.txt; nothing there that needed to be moved. --- test/CMakeLists.txt | 40 ---------------------------------------- 1 file changed, 40 deletions(-) delete mode 100644 test/CMakeLists.txt diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt deleted file mode 100644 index 621b43e9..00000000 --- a/test/CMakeLists.txt +++ /dev/null @@ -1,40 +0,0 @@ -# 3 june 2016 - -if(WIN32) - set(_TEST_RESOURCES_RC resources.rc) -endif() - -_add_exec(tester - drawtests.c - images.c - main.c - menus.c - page1.c - page2.c - page3.c - page4.c - page5.c - page6.c - page7.c - page7a.c - page7b.c - page7c.c -# page8.c -# page9.c -# page10.c - page11.c - page12.c - page13.c - page14.c - page15.c - page16.c - spaced.c - ${_TEST_RESOURCES_RC} -) -target_include_directories(tester - PRIVATE test -) -set_target_properties(tester PROPERTIES - OUTPUT_NAME test - WIN32_EXECUTABLE FALSE -) From e1d6f35ef06a9284295809ddee67e4c5859724bc Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 01:09:54 -0400 Subject: [PATCH 032/210] And settled examples/CMakeLists.txt. --- examples/CMakeLists.txt | 62 ----------------------------------------- examples/meson.build | 2 ++ 2 files changed, 2 insertions(+), 62 deletions(-) delete mode 100644 examples/CMakeLists.txt diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt deleted file mode 100644 index b68f9706..00000000 --- a/examples/CMakeLists.txt +++ /dev/null @@ -1,62 +0,0 @@ -# 3 june 2016 - -if(WIN32) - set(_EXAMPLE_RESOURCES_RC resources.rc) -endif() - -macro(_add_example _name) - _add_exec(${_name} ${ARGN}) - # because Microsoft's toolchain is dumb - if(MSVC) - set_property(TARGET ${_name} APPEND_STRING PROPERTY - LINK_FLAGS " /ENTRY:mainCRTStartup") - endif() -endmacro() - -_add_example(controlgallery - controlgallery/main.c - ${_EXAMPLE_RESOURCES_RC} -) - -_add_example(histogram - histogram/main.c - ${_EXAMPLE_RESOURCES_RC} -) - -_add_example(cpp-multithread - cpp-multithread/main.cpp - ${_EXAMPLE_RESOURCES_RC} -) -if(NOT WIN32) - target_link_libraries(cpp-multithread pthread) -endif() -if(APPLE) - # since we use a deployment target of 10.8, the non-C++11-compliant libstdc++ is chosen by default; we need C++11 - # see issue #302 for more details - target_compile_options(cpp-multithread PRIVATE --stdlib=libc++) - target_link_libraries(cpp-multithread --stdlib=libc++) -endif() - -_add_example(drawtext - drawtext/main.c - ${_EXAMPLE_RESOURCES_RC} -) - -_add_example(timer - timer/main.c - ${_EXAMPLE_RESOURCES_RC} -) - -_add_example(datetime - datetime/main.c - ${_EXAMPLE_RESOURCES_RC} -) - -add_custom_target(examples - DEPENDS - controlgallery - histogram - cpp-multithread - drawtext - timer - datetime) diff --git a/examples/meson.build b/examples/meson.build index 8e50feeb..31a47a83 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -59,3 +59,5 @@ foreach name, args : libui_examples gui_app: false, install: false) endforeach + +# TODO define the top-level examples target here From 65b97b6836fc346c64401730ae2fdbcda7056130 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 01:11:01 -0400 Subject: [PATCH 033/210] Pruned unnecessary stuff from _wip/examples_drawtext_CMakeLists.txt. Not sure what's going to happen to these examples, but we're going to have to keep this particular file around until that's decided. --- _wip/examples_drawtext_CMakeLists.txt | 39 --------------------------- 1 file changed, 39 deletions(-) diff --git a/_wip/examples_drawtext_CMakeLists.txt b/_wip/examples_drawtext_CMakeLists.txt index f2289d21..64b1978a 100644 --- a/_wip/examples_drawtext_CMakeLists.txt +++ b/_wip/examples_drawtext_CMakeLists.txt @@ -1,36 +1,5 @@ # 3 june 2016 -if(WIN32) - set(_EXAMPLE_RESOURCES_RC resources.rc) -endif() - -macro(_add_example _name) - _add_exec(${_name} ${ARGN}) - # because Microsoft's toolchain is dumb - if(MSVC) - set_property(TARGET ${_name} APPEND_STRING PROPERTY - LINK_FLAGS " /ENTRY:mainCRTStartup") - endif() -endmacro() - -_add_example(controlgallery - controlgallery/main.c - ${_EXAMPLE_RESOURCES_RC} -) - -_add_example(histogram - histogram/main.c - ${_EXAMPLE_RESOURCES_RC} -) - -_add_example(cpp-multithread - cpp-multithread/main.cpp - ${_EXAMPLE_RESOURCES_RC} -) -if(NOT WIN32) - target_link_libraries(cpp-multithread pthread) -endif() - _add_example(drawtext drawtext/attributes.c drawtext/basic.c @@ -48,11 +17,3 @@ _add_example(opentype ) target_include_directories(opentype PRIVATE opentype) - -add_custom_target(examples - DEPENDS - controlgallery - histogram - cpp-multithread - drawtext - opentype) From 922dca4f1e2ddee3e37aee55846b12a3c12b1ccc Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 10:19:40 -0400 Subject: [PATCH 034/210] Resolved \$ORIGIN question; thanks to someone in freenode #cmake. --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index faf8b3ea..77dcd5e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,5 @@ # 3 june 2016 - set(CMAKE_INSTALL_RPATH "\$ORIGIN") - # flags for warning on undefined symbols # TODO figure out why FreeBSD follows linked libraries here # TODO figure out MSVC equivalents From 70fe716d063a2543d9a905c3dcce6c6a934965c3 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 21:02:50 -0400 Subject: [PATCH 035/210] Removed bit about PIC in libraries; meson builds shared libraries as PIC always (and by default in the future, should the need to not have a PIC shared library arise). Executables will be a bit harder due to meson versioning. --- CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 77dcd5e3..f1a93901 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,10 +15,6 @@ endif() endif() -# TODO why is this not a default?! -set_property(TARGET libui PROPERTY - POSITION_INDEPENDENT_CODE True) - macro(_add_exec _name) set_property(TARGET ${_name} PROPERTY POSITION_INDEPENDENT_CODE True) From 81e25f76f2407f93455c3ca8bc5908521c8d2ffd Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 27 Mar 2019 21:34:09 -0400 Subject: [PATCH 036/210] Moved the binary PIC as a TODO and marked merge blockers as MESONTODO. Also removed a stale cmake-era TODO, because the manifest distribution idea it had will eventually be part of the uires tool. --- CMakeLists.txt | 5 ----- examples/meson.build | 3 ++- meson.build | 20 ++++++++++---------- test/meson.build | 3 ++- unix/meson.build | 2 +- windows/meson.build | 4 +--- 6 files changed, 16 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f1a93901..34c5a066 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,8 +14,3 @@ endif() endif() endif() - -macro(_add_exec _name) - set_property(TARGET ${_name} PROPERTY - POSITION_INDEPENDENT_CODE True) -endmacro() diff --git a/examples/meson.build b/examples/meson.build index 31a47a83..266d9e24 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -50,6 +50,7 @@ libui_examples = { }, } foreach name, args : libui_examples + # TODO once we upgrade to 0.49.0, add pie: true executable(name, args['sources'] + libui_example_sources, dependencies: args.get('deps', []) + libui_binary_deps, link_with: libui_libui, @@ -60,4 +61,4 @@ foreach name, args : libui_examples install: false) endforeach -# TODO define the top-level examples target here +# MESONTODO define the top-level examples target here diff --git a/meson.build b/meson.build index 3b7408ce..780cbf49 100644 --- a/meson.build +++ b/meson.build @@ -7,24 +7,24 @@ # [--layout=flat] \ (useful for distribution and Windows DLL tests) # [--b_sanitize=whatever] # It turns out that I wouldn't really need any custom options; go figure. -# TODO I'm not sure how to allow building 32-bit instead of 64-bit with meson. -# TODO figure out what (meson/ninja) dist do -# TODO figure out why test and examples aren't included in ninja all -# TODO figure out how to make an overarching "examples" target -# TODOs from cmake; not sure if they're relevant here: +# MESONTODO I'm not sure how to allow building 32-bit instead of 64-bit with meson. +# MESONTODO figure out what (meson/ninja) dist do +# MESONTODO figure out why test and examples aren't included in ninja all +# MESONTODO figure out how to make an overarching "examples" target +# MESONTODOs from cmake; not sure if they're relevant here: # - uname -s for more refined OS control # - Haiku for haiku # - debian DESTDIR? https://github.com/andlabs/libui/pull/10 # - disable incremental linking? I forget if meson already doesn't do this or not; we did it manually in cmake -# we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; TODO) +# we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; MESONTODO) project('libui', ['c', 'cpp'], meson_version: '>=0.48.0', default_options: [ 'buildtype=debug', # build debug by default 'default_library=shared', # build shared libraries by default - # these are forced options, but meson doesn't let me set these up separately before I call project() (TODO) + # these are forced options, but meson doesn't let me set these up separately before I call project() (MESONTODO) 'warning_level=3', # always max warnings 'b_pch=false', # we don't want precompiled headers 'b_staticpic=true', # use PIC even for static libraries @@ -36,7 +36,7 @@ project('libui', ['c', 'cpp'], ], license: 'MIT') -# TODO move these below the next part (I need them here for other reasons) +# MESONTODO move these below the next part (I need them here for other reasons) libui_OS = host_machine.system() libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' @@ -45,7 +45,7 @@ if libui_OS == 'darwin' required: true) endif -# TODO switch to tabs; the spaces are just so I can share this file while I'm writing it +# MESONTODO switch to tabs; the spaces are just so I can share this file while I'm writing it libui_forced_options = { 'warning_level': '3', # always max warnings 'b_pch': 'false', # we don't want precompiled headers @@ -57,7 +57,7 @@ libui_forced_options = { 'cpp_winlibs': '[]', # likewise as with c_winlibs } foreach name, value : libui_forced_options - # TODO why does meson need this guard? why aren't all options defined regardless of target?! + # MESONTODO why does meson need this guard? why aren't all options defined regardless of target?! if not ((name == 'c_winlibs' or name == 'cpp_eh' or name == 'cpp_winlibs') and not libui_MSVC) and not (name == 'c_std' and libui_MSVC) actual = '@0@'.format(get_option(name)) if actual != value diff --git a/test/meson.build b/test/meson.build index 744fa3ac..928d814e 100644 --- a/test/meson.build +++ b/test/meson.build @@ -39,7 +39,8 @@ if libui_OS == 'windows' ] endif -# TODO meson doesn't let us name this target test, but also doesn't seem to provide a way to override the executable name???? +# MESONTODO meson doesn't let us name this target test, but also doesn't seem to provide a way to override the executable name???? +# TODO once we upgrade to 0.49.0, add pie: true executable('tester', libui_test_sources, dependencies: libui_binary_deps, link_with: libui_libui, diff --git a/unix/meson.build b/unix/meson.build index 5b48ad98..9a2c8f74 100644 --- a/unix/meson.build +++ b/unix/meson.build @@ -52,7 +52,7 @@ libui_deps += [ version: '>=3.10.0', method: 'pkg-config', required: true), - # TODO are there better ways for these two? + # MESONTODO are there better ways for these two? I forget if I asked this already... meson.get_compiler('c').find_library('m', required: true), meson.get_compiler('c').find_library('dl', diff --git a/windows/meson.build b/windows/meson.build index 1d1a3baf..bfd496fe 100644 --- a/windows/meson.build +++ b/windows/meson.build @@ -70,10 +70,8 @@ libui_sources += [ # For a DLL, we have to include this directly, so we do so. # Windows won't link resources in static libraries, so including this would have no effect. # In those cases, we just need them to include the manifest with the executable (or link it directly into the output executable themselves); they can also customize the manifest as they see fit (assuming nothing breaks in the process). -# TODO make sure this gets added to both binary-only archives and install rules in this case if libui_mode == 'shared' libui_sources += [ - # TODO settle the path thing once and for all windows.compile_resources('resources.rc', args: libui_manifest_args, depend_files: ['libui.manifest'], @@ -81,7 +79,7 @@ if libui_mode == 'shared' endif # TODO prune this list -# TODO find out if we can just pass libui_winlibs to find_library() +# MESONTODO find out if we can just pass libui_winlibs to find_library() libui_winlibs = 'user32 kernel32 gdi32 comctl32 uxtheme msimg32 comdlg32 d2d1 dwrite ole32 oleaut32 oleacc uuid windowscodecs'.split(' ') foreach lib : libui_winlibs libui_deps += [ From d62775ad02f679200794cbb886b22a0f9f465ae9 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 28 Mar 2019 20:18:05 -0400 Subject: [PATCH 037/210] And migrated the last missing bit from the CMakeLists.txt into meson.build; thanks to someone from freenode #mesonbuild. No more CMake files! --- CMakeLists.txt | 16 ---------------- meson.build | 21 ++++++++++++++++++++- 2 files changed, 20 insertions(+), 17 deletions(-) delete mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 34c5a066..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# 3 june 2016 - - # flags for warning on undefined symbols - # TODO figure out why FreeBSD follows linked libraries here - # TODO figure out MSVC equivalents - if(BUILD_SHARED_LIBS) - if(NOT (${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD)) - # on OS X we don't need to do this; Apple's linker warns about undefined symbols in -shared builds! - if(NOT APPLE) - target_link_libraries(libui - PRIVATE -Wl,--no-undefined -Wl,--no-allow-shlib-undefined - ) - endif() - endif() - endif() -endif() diff --git a/meson.build b/meson.build index 780cbf49..dc0bbe84 100644 --- a/meson.build +++ b/meson.build @@ -116,7 +116,7 @@ else endif endif -# TODO come up with a better way to do this, both for libui (the compiler define, used by winapi.hpp, and the manifest args) and for the binaries (the manifest args) +# TODO come up with a better way to do this, both for libui (the compiler define, used by winapi.hpp, and the manifest args) and for the binaries (the manifest args); then move that below the part below that actually adds these arguments libui_manifest_args = [] if libui_mode == 'static' libui_project_compile_args += ['-D_UI_STATIC'] @@ -128,6 +128,24 @@ add_project_arguments(libui_project_compile_args, add_project_link_arguments(libui_project_link_args, language: ['c', 'cpp', 'objc']) +# TODO: +# meson determins whether -Wl,--no-undefined is provided via +# built-in option b_lundef, and it's true by default, which is what +# we want (so I don't make mistakes like asking for unknown +# functions in my dependencies). However, meson also is smart +# about specifying this properly on systems that don't support it, like +# FreeBSD (where I had the comment "figure out why FreeBSD +# follows linked libraries here" when I was on cmake) and OpenBSD +# (according to someone on freenode #mesonbuild), but it isn't clear +# whether it's just ignored or if the value is forced to false. +# Therefore, once this is determined, we can uncomment the +# following. +libui_libui_link_args = [] +#if not libui_MSVC and get_option("b_lundef") + # TODO what should this be on MSVC? +# libui_libui_link_args += ['-Wl,--no-allow-shlib-undefined'] +#endif + libui_sources = [] libui_deps = [] libui_soversion = '' @@ -153,6 +171,7 @@ libui_libui = library('ui', libui_sources, c_args: ['-Dlibui_EXPORTS'], cpp_args: ['-Dlibui_EXPORTS'], objc_args: ['-Dlibui_EXPORTS'], + link_args: libui_libui_link_args, soversion: libui_soversion, darwin_versions: []) # TODO install_headers('ui.h') From 53c2fe9d0047d9b1c1000e3dc665c51768363c3a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 29 Mar 2019 09:35:38 -0400 Subject: [PATCH 038/210] Properly specified -lm and -ldl on Unix. --- unix/meson.build | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unix/meson.build b/unix/meson.build index 9a2c8f74..f8004fbd 100644 --- a/unix/meson.build +++ b/unix/meson.build @@ -52,11 +52,11 @@ libui_deps += [ version: '>=3.10.0', method: 'pkg-config', required: true), - # MESONTODO are there better ways for these two? I forget if I asked this already... + # We specify these as not required because some Unix systems include them with libc instead of providing them as separate files (thanks textshell and jpakkane in freenode #mesonbuild) meson.get_compiler('c').find_library('m', - required: true), + required: false), meson.get_compiler('c').find_library('dl', - required: true), + required: false), ] libui_soversion = '0' libui_rpath = '$ORIGIN' From 7ea8c33547c41f08226e025fddffa6bbfc3ec78e Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 29 Mar 2019 10:46:27 -0400 Subject: [PATCH 039/210] Removed TODO about bulk Windows libraries as the answer is no; thanks TheQwertiest in freenode #mesonbuild. --- windows/meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/windows/meson.build b/windows/meson.build index bfd496fe..cb43dc19 100644 --- a/windows/meson.build +++ b/windows/meson.build @@ -79,7 +79,6 @@ if libui_mode == 'shared' endif # TODO prune this list -# MESONTODO find out if we can just pass libui_winlibs to find_library() libui_winlibs = 'user32 kernel32 gdi32 comctl32 uxtheme msimg32 comdlg32 d2d1 dwrite ole32 oleaut32 oleacc uuid windowscodecs'.split(' ') foreach lib : libui_winlibs libui_deps += [ From 257536103f807c52211a2dc330e4a2fff005e2ca Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 29 Mar 2019 11:03:07 -0400 Subject: [PATCH 040/210] Clean up specification of Windows dependency listp also suggested by TheQwertiest in freenode #mesonbuild. Also more TODOs. --- meson.build | 1 + windows/meson.build | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/meson.build b/meson.build index dc0bbe84..a73009a2 100644 --- a/meson.build +++ b/meson.build @@ -11,6 +11,7 @@ # MESONTODO figure out what (meson/ninja) dist do # MESONTODO figure out why test and examples aren't included in ninja all # MESONTODO figure out how to make an overarching "examples" target +# MESONTODO "cl : Command line warning D9038 : /ZI is not supported on this platform; enabling /Zi instead" # MESONTODOs from cmake; not sure if they're relevant here: # - uname -s for more refined OS control # - Haiku for haiku diff --git a/windows/meson.build b/windows/meson.build index cb43dc19..80c7bd82 100644 --- a/windows/meson.build +++ b/windows/meson.build @@ -74,13 +74,12 @@ if libui_mode == 'shared' libui_sources += [ windows.compile_resources('resources.rc', args: libui_manifest_args, - depend_files: ['libui.manifest'], + depend_files: ['libui.manifest']), ] endif # TODO prune this list -libui_winlibs = 'user32 kernel32 gdi32 comctl32 uxtheme msimg32 comdlg32 d2d1 dwrite ole32 oleaut32 oleacc uuid windowscodecs'.split(' ') -foreach lib : libui_winlibs +foreach lib : ['user32', 'kernel32', 'gdi32', 'comctl32', 'uxtheme', 'msimg32', 'comdlg32', 'd2d1', 'dwrite', 'ole32', 'oleaut32', 'oleacc', 'uuid', 'windowscodecs'] libui_deps += [ meson.get_compiler('cpp').find_library(lib, required: true), From 4023e1bba3ccadb41424d97fb8a816ffe2dee44f Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 29 Mar 2019 11:47:17 -0400 Subject: [PATCH 041/210] Removed the TODO on meson dist; that's documented at https://mesonbuild.com/Creating-releases.html. Also deduplicated some TODOs. --- meson.build | 2 -- 1 file changed, 2 deletions(-) diff --git a/meson.build b/meson.build index a73009a2..0921673f 100644 --- a/meson.build +++ b/meson.build @@ -8,9 +8,7 @@ # [--b_sanitize=whatever] # It turns out that I wouldn't really need any custom options; go figure. # MESONTODO I'm not sure how to allow building 32-bit instead of 64-bit with meson. -# MESONTODO figure out what (meson/ninja) dist do # MESONTODO figure out why test and examples aren't included in ninja all -# MESONTODO figure out how to make an overarching "examples" target # MESONTODO "cl : Command line warning D9038 : /ZI is not supported on this platform; enabling /Zi instead" # MESONTODOs from cmake; not sure if they're relevant here: # - uname -s for more refined OS control From 5c8dd4e7c33800c31ea9c948246ea3a554e77455 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 30 Mar 2019 11:30:55 -0400 Subject: [PATCH 042/210] Demote the TODO about 32-bit Mac from a MESONTODO to a normal TODO, meaning it doesn't block merging this branch back. Turns out we're not 32-bit compliant anymore :/ I'll handle that separately. --- meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 0921673f..91eaf94e 100644 --- a/meson.build +++ b/meson.build @@ -7,7 +7,6 @@ # [--layout=flat] \ (useful for distribution and Windows DLL tests) # [--b_sanitize=whatever] # It turns out that I wouldn't really need any custom options; go figure. -# MESONTODO I'm not sure how to allow building 32-bit instead of 64-bit with meson. # MESONTODO figure out why test and examples aren't included in ninja all # MESONTODO "cl : Command line warning D9038 : /ZI is not supported on this platform; enabling /Zi instead" # MESONTODOs from cmake; not sure if they're relevant here: @@ -16,6 +15,8 @@ # - debian DESTDIR? https://github.com/andlabs/libui/pull/10 # - disable incremental linking? I forget if meson already doesn't do this or not; we did it manually in cmake +# TODO I'm not sure how to allow building 32-bit instead of 64-bit with meson + # we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; MESONTODO) project('libui', ['c', 'cpp'], meson_version: '>=0.48.0', From 223972f87b18ff1d0f7e27fab12bc6eef28238d0 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 30 Mar 2019 11:36:51 -0400 Subject: [PATCH 043/210] Removed the MESONTODO for Haiku (*_machine.system() already supports this) and DESTDIR (Meson handles this for us; see https://mesonbuild.com/Installing.html#destdir-support). --- meson.build | 3 --- 1 file changed, 3 deletions(-) diff --git a/meson.build b/meson.build index 91eaf94e..24f068aa 100644 --- a/meson.build +++ b/meson.build @@ -10,9 +10,6 @@ # MESONTODO figure out why test and examples aren't included in ninja all # MESONTODO "cl : Command line warning D9038 : /ZI is not supported on this platform; enabling /Zi instead" # MESONTODOs from cmake; not sure if they're relevant here: -# - uname -s for more refined OS control -# - Haiku for haiku -# - debian DESTDIR? https://github.com/andlabs/libui/pull/10 # - disable incremental linking? I forget if meson already doesn't do this or not; we did it manually in cmake # TODO I'm not sure how to allow building 32-bit instead of 64-bit with meson From 629074d269f91c94bb3eac2488e25f2cbad6d6c0 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 30 Mar 2019 14:17:13 -0400 Subject: [PATCH 044/210] Slightly refactored a TODO. --- meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 24f068aa..471a8227 100644 --- a/meson.build +++ b/meson.build @@ -113,7 +113,8 @@ else endif endif -# TODO come up with a better way to do this, both for libui (the compiler define, used by winapi.hpp, and the manifest args) and for the binaries (the manifest args); then move that below the part below that actually adds these arguments +# TODO come up with a better way to do this, both for libui (the compiler define, used by winapi.hpp, and the manifest args) and for the binaries (the manifest args) +# TODO (after the above TODO is resolved) move that below the part below that actually adds these arguments libui_manifest_args = [] if libui_mode == 'static' libui_project_compile_args += ['-D_UI_STATIC'] From 31ca852ceff3addae7bfe47117c38fe465954b6b Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 30 Mar 2019 15:43:33 -0400 Subject: [PATCH 045/210] Demote various MESONTODOs to TODOs now that I filed issues for them with mesonbuild/meson. Almost done! --- meson.build | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/meson.build b/meson.build index 471a8227..410add19 100644 --- a/meson.build +++ b/meson.build @@ -9,19 +9,18 @@ # It turns out that I wouldn't really need any custom options; go figure. # MESONTODO figure out why test and examples aren't included in ninja all # MESONTODO "cl : Command line warning D9038 : /ZI is not supported on this platform; enabling /Zi instead" -# MESONTODOs from cmake; not sure if they're relevant here: -# - disable incremental linking? I forget if meson already doesn't do this or not; we did it manually in cmake +# MESONTODOs disable incremental linking? I forget if meson already doesn't do this or not; we did it manually in cmake # TODO I'm not sure how to allow building 32-bit instead of 64-bit with meson -# we have to specify C++ here even if we're not using C++ immediately because otherwise none of the C++ built-in options are available (sigh; MESONTODO) +# TODO remove cpp from this list once https://github.com/mesonbuild/meson/issues/5181 is settled; move it to the OS checks and under cpp-multithread project('libui', ['c', 'cpp'], meson_version: '>=0.48.0', default_options: [ 'buildtype=debug', # build debug by default 'default_library=shared', # build shared libraries by default - # these are forced options, but meson doesn't let me set these up separately before I call project() (MESONTODO) + # these are forced options, but meson doesn't let me set these up separately before I call project() (TODO https://github.com/mesonbuild/meson/issues/5179) 'warning_level=3', # always max warnings 'b_pch=false', # we don't want precompiled headers 'b_staticpic=true', # use PIC even for static libraries @@ -33,16 +32,11 @@ project('libui', ['c', 'cpp'], ], license: 'MIT') -# MESONTODO move these below the next part (I need them here for other reasons) +# TODO after https://github.com/mesonbuild/meson/issues/5179 is settled, remove these libui_OS = host_machine.system() libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' -if libui_OS == 'darwin' - add_languages('objc', - required: true) -endif - -# MESONTODO switch to tabs; the spaces are just so I can share this file while I'm writing it +# TODO switch to tabs; the spaces are just so I can share this file while I'm writing it libui_forced_options = { 'warning_level': '3', # always max warnings 'b_pch': 'false', # we don't want precompiled headers @@ -54,7 +48,7 @@ libui_forced_options = { 'cpp_winlibs': '[]', # likewise as with c_winlibs } foreach name, value : libui_forced_options - # MESONTODO why does meson need this guard? why aren't all options defined regardless of target?! + # TODO rewrite this when https://github.com/mesonbuild/meson/issues/5181 is settled if not ((name == 'c_winlibs' or name == 'cpp_eh' or name == 'cpp_winlibs') and not libui_MSVC) and not (name == 'c_std' and libui_MSVC) actual = '@0@'.format(get_option(name)) if actual != value @@ -63,6 +57,14 @@ foreach name, value : libui_forced_options endif endforeach +libui_OS = host_machine.system() +libui_MSVC = meson.get_compiler('c').get_id() == 'msvc' + +if libui_OS == 'darwin' + add_languages('objc', + required: true) +endif + libui_mode = get_option('default_library') if libui_mode == 'both' error('sorry, but libui does not support building both shared and static libraries at the same time, because Windows resource file rules differ between the two') From 5c0f542222ba2d8c552d528d0f63041a1f4aa3a0 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 30 Mar 2019 17:56:47 -0400 Subject: [PATCH 046/210] Removed TODO about incremental linking; I checked meson's source code and the way I'm specifying to turn it off is indeed the way to turn it off (and in fact is how it's disabled with --buildtype=minsize as well, so). --- meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/meson.build b/meson.build index 410add19..5099cafc 100644 --- a/meson.build +++ b/meson.build @@ -9,7 +9,6 @@ # It turns out that I wouldn't really need any custom options; go figure. # MESONTODO figure out why test and examples aren't included in ninja all # MESONTODO "cl : Command line warning D9038 : /ZI is not supported on this platform; enabling /Zi instead" -# MESONTODOs disable incremental linking? I forget if meson already doesn't do this or not; we did it manually in cmake # TODO I'm not sure how to allow building 32-bit instead of 64-bit with meson From 35750c41fefd0f988df8f7ca3adb1e14727a1de7 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 31 Mar 2019 01:02:00 -0400 Subject: [PATCH 047/210] Removed the TODO on the spurious MSVC warning; it's a meson bug and I've filed it now. When I rewrite the README, I'll link that bug. --- meson.build | 1 - 1 file changed, 1 deletion(-) diff --git a/meson.build b/meson.build index 5099cafc..968ee514 100644 --- a/meson.build +++ b/meson.build @@ -8,7 +8,6 @@ # [--b_sanitize=whatever] # It turns out that I wouldn't really need any custom options; go figure. # MESONTODO figure out why test and examples aren't included in ninja all -# MESONTODO "cl : Command line warning D9038 : /ZI is not supported on this platform; enabling /Zi instead" # TODO I'm not sure how to allow building 32-bit instead of 64-bit with meson From ff3d39213ecb90a8f40b3e7a7379ece9f39c1037 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 31 Mar 2019 11:04:20 -0400 Subject: [PATCH 048/210] Decided to just build everything by default and not have separate all or examples targets since we don't really have much control over what's a top-level target anyway (and ninja on its own == ninja all). Also set layout to flat by default, since it keeps everything together, which will lead to less surprising behavior on Windows and is more useful for our release packages. --- examples/meson.build | 3 --- meson.build | 2 +- test/meson.build | 1 - 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/examples/meson.build b/examples/meson.build index 266d9e24..3b9ab82a 100644 --- a/examples/meson.build +++ b/examples/meson.build @@ -56,9 +56,6 @@ foreach name, args : libui_examples link_with: libui_libui, cpp_args: args.get('cpp_args', []), link_args: args.get('link_args', []) + libui_example_link_args, - build_by_default: false, gui_app: false, install: false) endforeach - -# MESONTODO define the top-level examples target here diff --git a/meson.build b/meson.build index 968ee514..f0af0a7c 100644 --- a/meson.build +++ b/meson.build @@ -7,7 +7,6 @@ # [--layout=flat] \ (useful for distribution and Windows DLL tests) # [--b_sanitize=whatever] # It turns out that I wouldn't really need any custom options; go figure. -# MESONTODO figure out why test and examples aren't included in ninja all # TODO I'm not sure how to allow building 32-bit instead of 64-bit with meson @@ -17,6 +16,7 @@ project('libui', ['c', 'cpp'], default_options: [ 'buildtype=debug', # build debug by default 'default_library=shared', # build shared libraries by default + 'layout=flat', # keep all outputs together by default # these are forced options, but meson doesn't let me set these up separately before I call project() (TODO https://github.com/mesonbuild/meson/issues/5179) 'warning_level=3', # always max warnings diff --git a/test/meson.build b/test/meson.build index 928d814e..159ed724 100644 --- a/test/meson.build +++ b/test/meson.build @@ -44,6 +44,5 @@ endif executable('tester', libui_test_sources, dependencies: libui_binary_deps, link_with: libui_libui, - build_by_default: false, gui_app: false, install: false) From f7907f38c6fbd51093662682fef1f097313fe43c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 31 Mar 2019 11:09:16 -0400 Subject: [PATCH 049/210] Decided to just deal with the name tester instead of test for now. It's not that important to block merging. --- test/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/meson.build b/test/meson.build index 159ed724..a1296ac5 100644 --- a/test/meson.build +++ b/test/meson.build @@ -39,7 +39,7 @@ if libui_OS == 'windows' ] endif -# MESONTODO meson doesn't let us name this target test, but also doesn't seem to provide a way to override the executable name???? +# TODO meson doesn't let us name this target test, but also doesn't seem to provide a way to override the executable name???? we'll probably need to file a feature request for this # TODO once we upgrade to 0.49.0, add pie: true executable('tester', libui_test_sources, dependencies: libui_binary_deps, From 07f04f1cc827e32a20f0f63cc3489ab3414295e2 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 31 Mar 2019 21:07:46 -0400 Subject: [PATCH 050/210] Updated the README to talk about Meson. Now we have to just set up the CI and all is good to merge. --- README.md | 42 +++++++++++++++++++++++++++--------------- meson.build | 8 -------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 8c4cc0e6..f9808cdd 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,9 @@ But libui is not dead; I am working on it whenever I can, and I hope to get it t *Note that today's entry (Eastern Time) may be updated later today.* +* ** Date: Sun, 31 Mar 2019 23:45:53 -0400 Subject: [PATCH 051/210] Added codedate to azure-pipelines.yml. --- azure-pipelines.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c23ced43..55d9ca7a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,7 +1,4 @@ -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml +# 31 march 2019 trigger: - master From 151ee9a52eda50f3108abb679eb933c2cd360806 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 1 Apr 2019 10:58:03 -0400 Subject: [PATCH 052/210] Try an initial build. --- azure-pipelines.yml | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cf95597c..9c842893 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,16 +1,29 @@ # 31 march 2019 -trigger: -- * +jobs: +- job: linux64 + displayName: 'Linux 64-bit' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - script: | + sudo apt-get install libgtk-3-dev ninja-build + sudo pip3 install meson + displayName: 'Setup' + - script: | + meson setup build-shared --buildtype=release + ninja -C build-shared + displayName: 'Build shared' + - script: | + meson setup build-static --buildtype=release --default-library=static + ninja -C build-static + displayName: "Build static" -pool: - vmImage: 'Ubuntu-16.04' - -steps: -- script: echo Hello, world! - displayName: 'Run a one-line script' - -- script: | - echo Add other tasks to build, test, and deploy your project. - echo See https://aka.ms/yaml - displayName: 'Run a multi-line script' +# mac: +# imageName: 'macos-10.13' +# windowsVS2017: +# imageName: 'vs2017-win2016' +# windowsVS2015: +# imageName: 'vs2015-win2012r2' From 0ad8c85de0ea844c4cac528d09ea23c8e8f656c1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Mon, 1 Apr 2019 11:03:08 -0400 Subject: [PATCH 053/210] Fixred meson installation. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9c842893..d8ede2bd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,7 +9,7 @@ jobs: clean: all steps: - script: | - sudo apt-get install libgtk-3-dev ninja-build + sudo apt-get install -y libgtk-3-dev ninja-build python3-setuptools sudo pip3 install meson displayName: 'Setup' - script: | From 7dfc11f64580905893e022de616516a883a719d9 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 10:22:40 -0400 Subject: [PATCH 054/210] Try to set up meson on Travis. --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1d969f33..18668d76 100644 --- a/.travis.yml +++ b/.travis.yml @@ -64,7 +64,8 @@ install: fi script: - - cmake --version + - meson --version + - ninja --version - mkdir build - pushd build - cmake -G "Unix Makefiles" ${CMAKE_FLAGS} .. From 5ad39011ceaca9302b4d02a59caa34637602cb4f Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 10:29:08 -0400 Subject: [PATCH 055/210] Try again --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index 18668d76..a6c70d85 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,7 @@ include: &toolchain_linux_amd64 update: true packages: - libgtk-3-dev + - ninja-build include: &toolchain_linux_386 os: linux @@ -15,6 +16,7 @@ include: &toolchain_linux_386 addons: apt: packages: + - ninja-build - gcc-multilib - g++-multilib - libgtk-3-dev:i386 @@ -64,6 +66,7 @@ install: fi script: + - sudo pip3 install meson - meson --version - ninja --version - mkdir build From af03601fdeb35f951139c49bad6e650cc7ece087 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 10:41:17 -0400 Subject: [PATCH 056/210] Follow the proper Python instructions in https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/python?view=azure-devops for our Azure Pipelines file. --- azure-pipelines.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d8ede2bd..aaf2445b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,9 +8,15 @@ jobs: workspace: clean: all steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '3.6' + architecture: 'x64' - script: | - sudo apt-get install -y libgtk-3-dev ninja-build python3-setuptools - sudo pip3 install meson + apt-get install -y libgtk-3-dev ninja-build + # Ubuntu typically comes with an outdated meson + python -m pip install --upgrade pip setuptools wheel + pip install meson displayName: 'Setup' - script: | meson setup build-shared --buildtype=release From 9f814dd47fc785220030b4ab4d6c4269f76ce0ea Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 11:03:13 -0400 Subject: [PATCH 057/210] Fix apt-get invocation on Azure. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index aaf2445b..51b92771 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,7 +13,7 @@ jobs: versionSpec: '3.6' architecture: 'x64' - script: | - apt-get install -y libgtk-3-dev ninja-build + sudo apt-get install libgtk-3-dev ninja-build # Ubuntu typically comes with an outdated meson python -m pip install --upgrade pip setuptools wheel pip install meson From 6e0a8915af6f794f64e9fbe1d73c3a5e40770919 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 22:09:43 -0400 Subject: [PATCH 058/210] Try a Windows build. --- azure-pipelines.yml | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 51b92771..672cf894 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -25,7 +25,39 @@ jobs: - script: | meson setup build-static --buildtype=release --default-library=static ninja -C build-static - displayName: "Build static" + displayName: 'Build static' + +- job: windowsVS2017Msbuild + displayName: 'Windows 64-bit Visual Studio 2017' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '3.6' + architecture: 'x64' + - script: | + python -m pip install --upgrade pip setuptools wheel + pip install meson + displayName: 'Setup' + - script: | + meson setup build-shared --buildtype=release + displayName: 'Prepare shared build' + - task: MSBuild@1 + inputs: + solution: 'build-shared/*.sln' + maximumCpuCount: true + displayName: 'Build shared' + - script: | + meson setup build-static --buildtype=release --default-library=static + displayName: 'Prepare static build' + - task: MSBuild@1 + inputs: + solution: 'build-static/*.sln' + maximumCpuCount: true + displayName: 'Build static' # mac: # imageName: 'macos-10.13' From 68901322d40c34f856702d67d542e29188029106 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 22:13:02 -0400 Subject: [PATCH 059/210] Okay, try to make it use Visual Studio =P --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 672cf894..98f19369 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -43,7 +43,7 @@ jobs: pip install meson displayName: 'Setup' - script: | - meson setup build-shared --buildtype=release + meson setup build-shared --buildtype=release --backend=vs2017 displayName: 'Prepare shared build' - task: MSBuild@1 inputs: @@ -51,7 +51,7 @@ jobs: maximumCpuCount: true displayName: 'Build shared' - script: | - meson setup build-static --buildtype=release --default-library=static + meson setup build-static --buildtype=release --default-library=static --backend=vs2017 displayName: 'Prepare static build' - task: MSBuild@1 inputs: From ce3fa7485f7e50f921e9eefd4f60501f602314c2 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 23:15:19 -0400 Subject: [PATCH 060/210] Okay, manually devenv. --- azure-pipelines.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 98f19369..914c550c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -43,7 +43,8 @@ jobs: pip install meson displayName: 'Setup' - script: | - meson setup build-shared --buildtype=release --backend=vs2017 + "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + meson setup build-shared --buildtype=release displayName: 'Prepare shared build' - task: MSBuild@1 inputs: From 0da0240875aa61eef2364cc5ea11f0e6ae182e3d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 23:18:02 -0400 Subject: [PATCH 061/210] Oops --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 914c550c..62155116 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -43,7 +43,7 @@ jobs: pip install meson displayName: 'Setup' - script: | - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" meson setup build-shared --buildtype=release displayName: 'Prepare shared build' - task: MSBuild@1 From 514b8ecbc6a41096c0d145f397672830d96c6e34 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Tue, 2 Apr 2019 23:21:59 -0400 Subject: [PATCH 062/210] So apparently Azure Pipelines comes with Ninja as part of CMake. Ok. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 62155116..e9029aad 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -44,7 +44,7 @@ jobs: displayName: 'Setup' - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - meson setup build-shared --buildtype=release + meson setup build-shared --buildtype=release --backend=vs2017 displayName: 'Prepare shared build' - task: MSBuild@1 inputs: From 30a8cbf8b11a00f3a68e0967ffce0b496fd0452f Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 3 Apr 2019 10:05:00 -0400 Subject: [PATCH 063/210] Fixed VS2017 build for now. --- windows/debug.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/debug.cpp b/windows/debug.cpp index bd512743..107b53ab 100644 --- a/windows/debug.cpp +++ b/windows/debug.cpp @@ -19,7 +19,7 @@ HRESULT _logLastError(debugargs, const WCHAR *s) useFormatted = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, le, 0, (LPWSTR) (&formatted), 0, NULL) != 0; if (!useFormatted) - formatted = L"\n"; + formatted = (WCHAR *) L"\n"; // TODO msg = strf(L"[libui] %s:%s:%s() %s: GetLastError() == %I32u %s", file, line, func, s, le, formatted); @@ -46,7 +46,7 @@ HRESULT _logHRESULT(debugargs, const WCHAR *s, HRESULT hr) useFormatted = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, hr, 0, (LPWSTR) (&formatted), 0, NULL) != 0; if (!useFormatted) - formatted = L"\n"; + formatted = (WCHAR *) L"\n"; // TODO msg = strf(L"[libui] %s:%s:%s() %s: HRESULT == 0x%08I32X %s", file, line, func, s, hr, formatted); From 466f542bd3c7e6252d5e0c56cda91a08bfa0292c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 3 Apr 2019 10:11:57 -0400 Subject: [PATCH 064/210] Try again. --- windows/fontdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/fontdialog.cpp b/windows/fontdialog.cpp index fa9c1d0d..131593b2 100644 --- a/windows/fontdialog.cpp +++ b/windows/fontdialog.cpp @@ -368,7 +368,7 @@ static void fontDialogDrawSampleText(struct fontDialog *f, ID2D1RenderTarget *rt sample = uiprivFontCollectionCorrectString(f->fc, sampleStrings); sampleStrings->Release(); } else - sample = L"The quick brown fox jumps over the lazy dog."; + sample = (WCHAR *) L"The quick brown fox jumps over the lazy dog."; // DirectWrite doesn't allow creating a text format from a font; we need to get this ourselves family = cbGetItemText(f->familyCombobox, f->curFamily); From 4afebf4d8e0156d44b3b5063d0b7f6d1322a4b45 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 3 Apr 2019 10:20:07 -0400 Subject: [PATCH 065/210] Try again again. --- windows/fontdialog.cpp | 2 +- windows/init.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/fontdialog.cpp b/windows/fontdialog.cpp index 131593b2..4c698751 100644 --- a/windows/fontdialog.cpp +++ b/windows/fontdialog.cpp @@ -368,7 +368,7 @@ static void fontDialogDrawSampleText(struct fontDialog *f, ID2D1RenderTarget *rt sample = uiprivFontCollectionCorrectString(f->fc, sampleStrings); sampleStrings->Release(); } else - sample = (WCHAR *) L"The quick brown fox jumps over the lazy dog."; + sample = (WCHAR *) L"The quick brown fox jumps over the lazy dog."; // TODO // DirectWrite doesn't allow creating a text format from a font; we need to get this ourselves family = cbGetItemText(f->familyCombobox, f->curFamily); diff --git a/windows/init.cpp b/windows/init.cpp index 6b6752da..021ebaa3 100644 --- a/windows/init.cpp +++ b/windows/init.cpp @@ -22,7 +22,7 @@ static const char *initerr(const char *message, const WCHAR *label, DWORD value) hassysmsg = FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, value, 0, (LPWSTR) (&sysmsg), 0, NULL) != 0; if (!hassysmsg) - sysmsg = L""; + sysmsg = (WCHAR *) L""; // TODO wmessage = toUTF16(message + 1); wout = strf(L"-error initializing libui: %s; code %I32d (0x%08I32X) %s", wmessage, From e1abd02ed2755826d775e5a97d3621be8e84e121 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Wed, 3 Apr 2019 10:31:44 -0400 Subject: [PATCH 066/210] Don't use the VS backend with GCC. --- azure-pipelines.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e9029aad..1f1a3d0e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,12 +52,10 @@ jobs: maximumCpuCount: true displayName: 'Build shared' - script: | - meson setup build-static --buildtype=release --default-library=static --backend=vs2017 + meson setup build-static --buildtype=release --default-library=static displayName: 'Prepare static build' - - task: MSBuild@1 - inputs: - solution: 'build-static/*.sln' - maximumCpuCount: true + - script: | + ninja -C build-static displayName: 'Build static' # mac: From 9889477a256223cae047f21ac7cd197f1e2a6d47 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 00:20:10 -0400 Subject: [PATCH 067/210] It turns out the Ninja in CMake is either too old or a CI fluke that the VC env overrides. Try again. --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1f1a3d0e..de0616ea 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -39,6 +39,7 @@ jobs: versionSpec: '3.6' architecture: 'x64' - script: | + choco install ninja python -m pip install --upgrade pip setuptools wheel pip install meson displayName: 'Setup' From 60df014315c38efe6446dbed8c12cc7875d61303 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 01:17:01 -0400 Subject: [PATCH 068/210] Saved all the pages I had open on Azure Pipelines while writing what I have now, so I can restart Firefox as well as look these up later. --- _notes/azure-pipelines | 76 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 _notes/azure-pipelines diff --git a/_notes/azure-pipelines b/_notes/azure-pipelines new file mode 100644 index 00000000..debdf6e5 --- /dev/null +++ b/_notes/azure-pipelines @@ -0,0 +1,76 @@ +multi-platform { +https://docs.microsoft.com/en-us/azure/devops/pipelines/get-started-multiplatform?view=azure-devops +} + +microsoft-hosted agents { +https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#use-a-microsoft-hosted-agent +https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops +https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/win/Vs2017-Server2016-Readme.md +https://github.com/Microsoft/azure-pipelines-image-generation/blob/master/images/win/Vs2015-Server2012R2-Readme.md +} + +maximum number of processors (for ninja -j) { +msbuild supports this with the -m option natively; meanwhile: +https://www.gnu.org/software/coreutils/manual/html_node/nproc-invocation.html +} + +potentially useful tasks { +https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/publish-pipeline-artifact?view=azure-devops +https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/visual-studio-build?view=azure-devops +https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/xcode?view=azure-devops +https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/github-release?view=azure-devops +https://docs.microsoft.com/en-us/azure/devops/extend/develop/add-build-task?view=azure-devops +} + +meson CI reference { +https://github.com/mesonbuild/meson/blob/master/docs/markdown/Continuous-Integration.md +} + +job templates, which will clean up our pipelines { +https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops +} + +migrating from travis { +https://docs.microsoft.com/en-us/azure/devops/pipelines/migrate/from-travis?view=azure-devops +} + +32-bit { +https://github.com/numpy/numpy/issues/12856 +https://github.com/numpy/numpy/pull/12863/files +https://github.com/numpy/numpy/blob/master/azure-pipelines.yml (also explains what the @s mean; thanks guys) +} + +using visual studio tools { +https://docs.microsoft.com/en-us/dotnet/framework/tools/developer-command-prompt-for-vs +https://docs.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=vs-2019#developer_command_file_locations +} + +OLD using visual studio tools; also some docker { +https://github.com/mesonbuild/meson/blob/master/ci/azure-steps.yml +https://github.com/reactiveui/Akavache/blob/master/azure-pipelines.yml +https://github.com/vector-of-bool/CMakeCM/blob/master/azure-pipelines.yml +https://docs.microsoft.com/en-us/visualstudio/install/advanced-build-tools-container?view=vs-2019 +https://docs.microsoft.com/en-us/visualstudio/install/build-tools-container?view=vs-2019 +https://devblogs.microsoft.com/cppblog/using-msvc-in-a-docker-container-for-your-c-projects/ +https://devblogs.microsoft.com/cppblog/finding-the-visual-c-compiler-tools-in-visual-studio-2017/ +} + +reference { +https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=schema#task +https://docs.microsoft.com/en-us/azure/devops/pipelines/apps/windows/cpp?view=azure-devops +https://docs.microsoft.com/en-us/azure/devops/pipelines/languages/python?view=azure-devops +https://docs.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml +} + +C++ binary compatibility and shared libraries (TODO split into its own notes file) { +https://docs.microsoft.com/en-us/cpp/porting/binary-compat-2015-2017?view=vs-2017 +} + +others I forgot why I had them open { +https://github.com/Microsoft/cpprestsdk/blob/master/azure-pipelines.yml (32-bit?) +https://docs.microsoft.com/en-us/azure/devops/release-notes/2018/sprint-142-update (I forget, maybe also 32-bit?) +} + +others that might not be relevant { +https://github.com/Microsoft/azure-pipelines-agent/blob/master/docs/start/envubuntu.md has instructions on how to build the agent tool itself +} From d6c30352eea327f1cd3df65e8c672bfe09f6e382 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 10:46:59 -0400 Subject: [PATCH 069/210] Split each of the build types into their own job. --- azure-pipelines.yml | 84 +++++++++++++++++++++++++++++++++------------ 1 file changed, 62 insertions(+), 22 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index de0616ea..affe21c4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,8 +1,9 @@ # 31 march 2019 jobs: -- job: linux64 - displayName: 'Linux 64-bit' + +- job: linux-amd64-shared + displayName: 'Linux 64-bit shared' pool: vmImage: 'ubuntu-16.04' workspace: @@ -19,16 +20,63 @@ jobs: pip install meson displayName: 'Setup' - script: | - meson setup build-shared --buildtype=release - ninja -C build-shared - displayName: 'Build shared' + meson setup build --buildtype=release --default-library=shared --backend=ninja + displayName: 'Configure' - script: | - meson setup build-static --buildtype=release --default-library=static - ninja -C build-static - displayName: 'Build static' + ninja -C build + displayName: 'Build' -- job: windowsVS2017Msbuild - displayName: 'Windows 64-bit Visual Studio 2017' +- job: linux-amd64-static + displayName: 'Linux 64-bit static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '3.6' + architecture: 'x64' + - script: | + sudo apt-get install libgtk-3-dev ninja-build + # Ubuntu typically comes with an outdated meson + python -m pip install --upgrade pip setuptools wheel + pip install meson + displayName: 'Setup' + - script: | + meson setup build --buildtype=release --default-library=static --backend=ninja + displayName: 'Configure' + - script: | + ninja -C build + displayName: 'Build' + +- job: windows-amd64-msvc2017-shared-msbuild + displayName: 'Windows 64-bit MSVC2017 Shared with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: '3.6' + architecture: 'x64' + - script: | + python -m pip install --upgrade pip setuptools wheel + pip install meson + displayName: 'Setup' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + meson setup build --buildtype=release --default-library=shared --backend=vs2017 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + +- job: windows-amd64-msvc2017-static-ninja + displayName: 'Windows 64-bit MSVC2017 Static Ninja' pool: vmImage: 'vs2017-win2016' workspace: @@ -45,19 +93,11 @@ jobs: displayName: 'Setup' - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - meson setup build-shared --buildtype=release --backend=vs2017 - displayName: 'Prepare shared build' - - task: MSBuild@1 - inputs: - solution: 'build-shared/*.sln' - maximumCpuCount: true - displayName: 'Build shared' + meson setup build --buildtype=release --default-library=static --backend=ninja + displayName: 'Configure' - script: | - meson setup build-static --buildtype=release --default-library=static - displayName: 'Prepare static build' - - script: | - ninja -C build-static - displayName: 'Build static' + ninja -C build + displayName: 'Build' # mac: # imageName: 'macos-10.13' From f23ba94d708009e5625da2d8788c7f8440fdfd66 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 10:49:31 -0400 Subject: [PATCH 070/210] Properly specify job names. --- azure-pipelines.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index affe21c4..30853d21 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,7 +2,7 @@ jobs: -- job: linux-amd64-shared +- job: linux_amd64_shared_ninja displayName: 'Linux 64-bit shared' pool: vmImage: 'ubuntu-16.04' @@ -26,7 +26,7 @@ jobs: ninja -C build displayName: 'Build' -- job: linux-amd64-static +- job: linux_amd64_static_ninja displayName: 'Linux 64-bit static' pool: vmImage: 'ubuntu-16.04' @@ -50,7 +50,7 @@ jobs: ninja -C build displayName: 'Build' -- job: windows-amd64-msvc2017-shared-msbuild +- job: windows_amd64_msvc2017_shared_msbuild displayName: 'Windows 64-bit MSVC2017 Shared with MSBuild' pool: vmImage: 'vs2017-win2016' @@ -75,7 +75,7 @@ jobs: maximumCpuCount: true displayName: 'Build' -- job: windows-amd64-msvc2017-static-ninja +- job: windows_amd64_msvc2017_static_ninja displayName: 'Windows 64-bit MSVC2017 Static Ninja' pool: vmImage: 'vs2017-win2016' From 7d22d84584226d51804a3cdbad588f43a903dba2 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 11:02:59 -0400 Subject: [PATCH 071/210] Deduplicate the install latest meson steps. --- azure-pipelines.yml | 40 ++++++------------------ azure-pipelines/install-latest-meson.yml | 10 ++++++ 2 files changed, 19 insertions(+), 31 deletions(-) create mode 100644 azure-pipelines/install-latest-meson.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 30853d21..00898b0b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,16 +9,11 @@ jobs: workspace: clean: all steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '3.6' - architecture: 'x64' + # Ubuntu typically comes with an outdated meson + - template: azure-pipelines/install-latest-meson.yml - script: | sudo apt-get install libgtk-3-dev ninja-build - # Ubuntu typically comes with an outdated meson - python -m pip install --upgrade pip setuptools wheel - pip install meson - displayName: 'Setup' + displayName: 'Install Dependencies' - script: | meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' @@ -33,16 +28,10 @@ jobs: workspace: clean: all steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '3.6' - architecture: 'x64' + - template: azure-pipelines/install-latest-meson.yml - script: | sudo apt-get install libgtk-3-dev ninja-build - # Ubuntu typically comes with an outdated meson - python -m pip install --upgrade pip setuptools wheel - pip install meson - displayName: 'Setup' + displayName: 'Install Dependencies' - script: | meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' @@ -57,14 +46,7 @@ jobs: workspace: clean: all steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '3.6' - architecture: 'x64' - - script: | - python -m pip install --upgrade pip setuptools wheel - pip install meson - displayName: 'Setup' + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" meson setup build --buildtype=release --default-library=shared --backend=vs2017 @@ -82,20 +64,16 @@ jobs: workspace: clean: all steps: - - task: UsePythonVersion@0 - inputs: - versionSpec: '3.6' - architecture: 'x64' + - template: azure-pipelines/install-latest-meson.yml - script: | choco install ninja - python -m pip install --upgrade pip setuptools wheel - pip install meson - displayName: 'Setup' + displayName: 'Install Dependencies' - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" ninja -C build displayName: 'Build' diff --git a/azure-pipelines/install-latest-meson.yml b/azure-pipelines/install-latest-meson.yml new file mode 100644 index 00000000..2097031d --- /dev/null +++ b/azure-pipelines/install-latest-meson.yml @@ -0,0 +1,10 @@ +# 4 april 2019 +steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: '3.6' + architecture: 'x64' +- script: | + python -m pip install --upgrade pip setuptools wheel + pip install meson + displayName: 'Install Latest Meson' From b4800505506dd5a963827a9b04d17779f499a8ae Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 11:21:00 -0400 Subject: [PATCH 072/210] Jiggle Azure Pipelines. --- azure-pipelines.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 00898b0b..0ff414d5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,7 +1,6 @@ # 31 march 2019 jobs: - - job: linux_amd64_shared_ninja displayName: 'Linux 64-bit shared' pool: From d280aa40cb2f2b03cae6219e58c77b8a085bd7c1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 11:23:58 -0400 Subject: [PATCH 073/210] Jiggle Azure Pipelines again. --- azure-pipelines/install-latest-meson.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines/install-latest-meson.yml b/azure-pipelines/install-latest-meson.yml index 2097031d..ffbd2103 100644 --- a/azure-pipelines/install-latest-meson.yml +++ b/azure-pipelines/install-latest-meson.yml @@ -1,4 +1,5 @@ # 4 april 2019 + steps: - task: UsePythonVersion@0 inputs: From 07dfea4a4f0e4098ccb76670df227d6888dd2c45 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 11:31:47 -0400 Subject: [PATCH 074/210] More TODOs. --- azure-pipelines/install-latest-meson.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/azure-pipelines/install-latest-meson.yml b/azure-pipelines/install-latest-meson.yml index ffbd2103..713533fc 100644 --- a/azure-pipelines/install-latest-meson.yml +++ b/azure-pipelines/install-latest-meson.yml @@ -1,5 +1,7 @@ # 4 april 2019 +# TODO figure out how to make the script step runnable in parallel with the other dependency installation steps + steps: - task: UsePythonVersion@0 inputs: From 7e83ba9ffe21fc924d2cd3e90ebc5dd4ec398065 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 20:27:16 -0400 Subject: [PATCH 075/210] Completed the matrix a bit more for 64-bit builds. Need to do the 32-bit VS2017 builds and all the VS2015 and macOS builds next. --- azure-pipelines.yml | 58 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 48 insertions(+), 10 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0ff414d5..ea048262 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,7 +2,7 @@ jobs: - job: linux_amd64_shared_ninja - displayName: 'Linux 64-bit shared' + displayName: 'Linux amd64 Shared with Ninja' pool: vmImage: 'ubuntu-16.04' workspace: @@ -21,7 +21,7 @@ jobs: displayName: 'Build' - job: linux_amd64_static_ninja - displayName: 'Linux 64-bit static' + displayName: 'Linux amd64 Static with Ninja' pool: vmImage: 'ubuntu-16.04' workspace: @@ -38,26 +38,28 @@ jobs: ninja -C build displayName: 'Build' -- job: windows_amd64_msvc2017_shared_msbuild - displayName: 'Windows 64-bit MSVC2017 Shared with MSBuild' +- job: windows_amd64_msvc2017_shared_ninja + displayName: 'Windows amd64 MSVC2017 Shared Ninja' pool: vmImage: 'vs2017-win2016' workspace: clean: all steps: - template: azure-pipelines/install-latest-meson.yml + - script: | + choco install ninja + displayName: 'Install Dependencies' - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - meson setup build --buildtype=release --default-library=shared --backend=vs2017 + meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + ninja -C build displayName: 'Build' - job: windows_amd64_msvc2017_static_ninja - displayName: 'Windows 64-bit MSVC2017 Static Ninja' + displayName: 'Windows amd64 MSVC2017 Static Ninja' pool: vmImage: 'vs2017-win2016' workspace: @@ -76,6 +78,42 @@ jobs: ninja -C build displayName: 'Build' +- job: windows_amd64_msvc2017_shared_msbuild + displayName: 'Windows amd64 MSVC2017 Shared with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + meson setup build --buildtype=release --default-library=shared --backend=vs2017 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + +- job: windows_amd64_msvc2017_static_msbuild + displayName: 'Windows amd64 MSVC2017 Static with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + meson setup build --buildtype=release --default-library=static --backend=vs2017 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + # mac: # imageName: 'macos-10.13' # windowsVS2017: From 994a37e336b8287ace54b30daa0c6b331d3b8f05 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 21:08:09 -0400 Subject: [PATCH 076/210] Added 32-bit MSVC2017 builds. --- azure-pipelines.yml | 76 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ea048262..2260ed97 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -38,6 +38,82 @@ jobs: ninja -C build displayName: 'Build' +- job: windows_386_msvc2017_shared_ninja + displayName: 'Windows 386 MSVC2017 Shared Ninja' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + choco install ninja + displayName: 'Install Dependencies' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + meson setup build --buildtype=release --default-library=shared --backend=ninja + displayName: 'Configure' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + ninja -C build + displayName: 'Build' + +- job: windows_386_msvc2017_static_ninja + displayName: 'Windows 386 MSVC2017 Static Ninja' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + choco install ninja + displayName: 'Install Dependencies' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + meson setup build --buildtype=release --default-library=static --backend=ninja + displayName: 'Configure' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + ninja -C build + displayName: 'Build' + +- job: windows_386_msvc2017_shared_msbuild + displayName: 'Windows 386 MSVC2017 Shared with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + meson setup build --buildtype=release --default-library=shared --backend=vs2017 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + +- job: windows_386_msvc2017_static_msbuild + displayName: 'Windows 386 MSVC2017 Static with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + meson setup build --buildtype=release --default-library=static --backend=vs2017 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + - job: windows_amd64_msvc2017_shared_ninja displayName: 'Windows amd64 MSVC2017 Shared Ninja' pool: From 8a090bd90bf0870ad72f3733ca64cf2d048e3a8a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 21:59:11 -0400 Subject: [PATCH 077/210] Added VS2015. --- azure-pipelines.yml | 178 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 166 insertions(+), 12 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2260ed97..500143ef 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -38,6 +38,160 @@ jobs: ninja -C build displayName: 'Build' +# TODO should it be "etc.bat" amd64 or "etc.bat amd64"? + +- job: windows_386_msvc2015_shared_ninja + displayName: 'Windows 386 MSVC2015 Shared Ninja' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + choco install ninja + displayName: 'Install Dependencies' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + meson setup build --buildtype=release --default-library=shared --backend=ninja + displayName: 'Configure' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + ninja -C build + displayName: 'Build' + +- job: windows_386_msvc2015_static_ninja + displayName: 'Windows 386 MSVC2015 Static Ninja' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + choco install ninja + displayName: 'Install Dependencies' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + meson setup build --buildtype=release --default-library=static --backend=ninja + displayName: 'Configure' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + ninja -C build + displayName: 'Build' + +- job: windows_386_msvc2015_shared_msbuild + displayName: 'Windows 386 MSVC2015 Shared with MSBuild' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + meson setup build --buildtype=release --default-library=shared --backend=vs2015 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + +- job: windows_386_msvc2015_static_msbuild + displayName: 'Windows 386 MSVC2015 Static with MSBuild' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + meson setup build --buildtype=release --default-library=static --backend=vs2015 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + +- job: windows_amd64_msvc2015_shared_ninja + displayName: 'Windows amd64 MSVC2015 Shared Ninja' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + choco install ninja + displayName: 'Install Dependencies' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + meson setup build --buildtype=release --default-library=shared --backend=ninja + displayName: 'Configure' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + ninja -C build + displayName: 'Build' + +- job: windows_amd64_msvc2015_static_ninja + displayName: 'Windows amd64 MSVC2015 Static Ninja' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + choco install ninja + displayName: 'Install Dependencies' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + meson setup build --buildtype=release --default-library=static --backend=ninja + displayName: 'Configure' + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + ninja -C build + displayName: 'Build' + +- job: windows_amd64_msvc2015_shared_msbuild + displayName: 'Windows amd64 MSVC2015 Shared with MSBuild' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + meson setup build --buildtype=release --default-library=shared --backend=vs2015 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + +- job: windows_amd64_msvc2015_static_msbuild + displayName: 'Windows amd64 MSVC2015 Static with MSBuild' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/install-latest-meson.yml + - script: | + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + meson setup build --buildtype=release --default-library=static --backend=vs2015 + displayName: 'Configure' + - task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' + - job: windows_386_msvc2017_shared_ninja displayName: 'Windows 386 MSVC2017 Shared Ninja' pool: @@ -50,11 +204,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" ninja -C build displayName: 'Build' @@ -70,11 +224,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" ninja -C build displayName: 'Build' @@ -87,7 +241,7 @@ jobs: steps: - template: azure-pipelines/install-latest-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=shared --backend=vs2017 displayName: 'Configure' - task: MSBuild@1 @@ -105,7 +259,7 @@ jobs: steps: - template: azure-pipelines/install-latest-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars32.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=static --backend=vs2017 displayName: 'Configure' - task: MSBuild@1 @@ -126,11 +280,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" ninja -C build displayName: 'Build' @@ -146,11 +300,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" ninja -C build displayName: 'Build' @@ -163,7 +317,7 @@ jobs: steps: - template: azure-pipelines/install-latest-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=shared --backend=vs2017 displayName: 'Configure' - task: MSBuild@1 @@ -181,7 +335,7 @@ jobs: steps: - template: azure-pipelines/install-latest-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=static --backend=vs2017 displayName: 'Configure' - task: MSBuild@1 From 31970127b63f45137efcee497e1de73ce90536ae Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 22:24:20 -0400 Subject: [PATCH 078/210] Fix VS2015 build. Ugh. --- azure-pipelines.yml | 20 +++++++++++-------- .../vs2015-install-latest-python3-meson.yml | 14 +++++++++++++ 2 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 azure-pipelines/vs2015-install-latest-python3-meson.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 500143ef..386fde4e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -40,6 +40,8 @@ jobs: # TODO should it be "etc.bat" amd64 or "etc.bat amd64"? +# vs2015 { + - job: windows_386_msvc2015_shared_ninja displayName: 'Windows 386 MSVC2015 Shared Ninja' pool: @@ -47,7 +49,7 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | choco install ninja displayName: 'Install Dependencies' @@ -67,7 +69,7 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | choco install ninja displayName: 'Install Dependencies' @@ -87,7 +89,7 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=shared --backend=vs2015 @@ -105,7 +107,7 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=static --backend=vs2015 @@ -123,7 +125,7 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | choco install ninja displayName: 'Install Dependencies' @@ -143,7 +145,7 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | choco install ninja displayName: 'Install Dependencies' @@ -163,7 +165,7 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=shared --backend=vs2015 @@ -181,7 +183,7 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=static --backend=vs2015 @@ -192,6 +194,8 @@ jobs: maximumCpuCount: true displayName: 'Build' +# } + - job: windows_386_msvc2017_shared_ninja displayName: 'Windows 386 MSVC2017 Shared Ninja' pool: diff --git a/azure-pipelines/vs2015-install-latest-python3-meson.yml b/azure-pipelines/vs2015-install-latest-python3-meson.yml new file mode 100644 index 00000000..976d85c6 --- /dev/null +++ b/azure-pipelines/vs2015-install-latest-python3-meson.yml @@ -0,0 +1,14 @@ +# 4 april 2019 +# see https://github.com/Microsoft/azure-pipelines-image-generation/issues/374 for context and source +steps: + - powershell: 'Invoke-WebRequest https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64-webinstall.exe -OutFile C:\py3-setup.exe' + displayName: 'Download Python 3' + - script: | + C:\py3-setup.exe /quiet PrependPath=0 InstallAllUsers=0 Include_launcher=0 InstallLauncherAllUsers=0 Include_test=0 Include_doc=0 Include_dev=0 Include_debug=0 Include_tcltk=0 TargetDir=C:\Python37 + @echo ##vso[task.prependpath]C:\Python37 + @echo ##vso[task.prependpath]C:\Python37\Scripts + displayName: 'Install Python 3' +- script: | + python -m pip install --upgrade pip setuptools wheel + pip install meson + displayName: 'Install Latest Meson' From 57b11c7ce8014f7999378d0945a16d2fc17d610c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 22:26:15 -0400 Subject: [PATCH 079/210] Oops --- .../vs2015-install-latest-python3-meson.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/azure-pipelines/vs2015-install-latest-python3-meson.yml b/azure-pipelines/vs2015-install-latest-python3-meson.yml index 976d85c6..06106cfc 100644 --- a/azure-pipelines/vs2015-install-latest-python3-meson.yml +++ b/azure-pipelines/vs2015-install-latest-python3-meson.yml @@ -1,13 +1,13 @@ # 4 april 2019 # see https://github.com/Microsoft/azure-pipelines-image-generation/issues/374 for context and source steps: - - powershell: 'Invoke-WebRequest https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64-webinstall.exe -OutFile C:\py3-setup.exe' - displayName: 'Download Python 3' - - script: | - C:\py3-setup.exe /quiet PrependPath=0 InstallAllUsers=0 Include_launcher=0 InstallLauncherAllUsers=0 Include_test=0 Include_doc=0 Include_dev=0 Include_debug=0 Include_tcltk=0 TargetDir=C:\Python37 - @echo ##vso[task.prependpath]C:\Python37 - @echo ##vso[task.prependpath]C:\Python37\Scripts - displayName: 'Install Python 3' +- powershell: 'Invoke-WebRequest https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64-webinstall.exe -OutFile C:\py3-setup.exe' + displayName: 'Download Python 3' +- script: | + C:\py3-setup.exe /quiet PrependPath=0 InstallAllUsers=0 Include_launcher=0 InstallLauncherAllUsers=0 Include_test=0 Include_doc=0 Include_dev=0 Include_debug=0 Include_tcltk=0 TargetDir=C:\Python37 + @echo ##vso[task.prependpath]C:\Python37 + @echo ##vso[task.prependpath]C:\Python37\Scripts + displayName: 'Install Python 3' - script: | python -m pip install --upgrade pip setuptools wheel pip install meson From 91e7473d00b7910e9212c5be4b50864bcb50bddb Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 22:32:07 -0400 Subject: [PATCH 080/210] Fix VS2015 vcvarsall. Will do ninja next. --- azure-pipelines.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 386fde4e..5f16d27c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -54,11 +54,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" ninja -C build displayName: 'Build' @@ -74,11 +74,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" ninja -C build displayName: 'Build' @@ -91,7 +91,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=shared --backend=vs2015 displayName: 'Configure' - task: MSBuild@1 @@ -109,7 +109,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" meson setup build --buildtype=release --default-library=static --backend=vs2015 displayName: 'Configure' - task: MSBuild@1 @@ -130,11 +130,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" ninja -C build displayName: 'Build' @@ -150,11 +150,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" ninja -C build displayName: 'Build' @@ -167,7 +167,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=shared --backend=vs2015 displayName: 'Configure' - task: MSBuild@1 @@ -185,7 +185,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" meson setup build --buildtype=release --default-library=static --backend=vs2015 displayName: 'Configure' - task: MSBuild@1 From 15856e15da1b546496d8b54b063d480fe5ea40e4 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 22:36:08 -0400 Subject: [PATCH 081/210] Why --- azure-pipelines/vs2015-install-latest-python3-meson.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/azure-pipelines/vs2015-install-latest-python3-meson.yml b/azure-pipelines/vs2015-install-latest-python3-meson.yml index 06106cfc..71236c4f 100644 --- a/azure-pipelines/vs2015-install-latest-python3-meson.yml +++ b/azure-pipelines/vs2015-install-latest-python3-meson.yml @@ -12,3 +12,10 @@ steps: python -m pip install --upgrade pip setuptools wheel pip install meson displayName: 'Install Latest Meson' +- script: | + dir "C:\Program Files\" + dir "C:\Program Files (x86)\" + dir "C:\Program Files (x86)\Microsoft Visual Studio 14.0\" + dir "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\" + dir "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\" + exit 1 From 04964839f27f5a7ee6e67b37f4c91700393c22f8 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 22:40:18 -0400 Subject: [PATCH 082/210] Well that answers that --- azure-pipelines.yml | 50 +++++++++---------- .../vs2015-install-latest-python3-meson.yml | 7 --- 2 files changed, 24 insertions(+), 33 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5f16d27c..249330d9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -38,8 +38,6 @@ jobs: ninja -C build displayName: 'Build' -# TODO should it be "etc.bat" amd64 or "etc.bat amd64"? - # vs2015 { - job: windows_386_msvc2015_shared_ninja @@ -54,11 +52,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 ninja -C build displayName: 'Build' @@ -74,11 +72,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 ninja -C build displayName: 'Build' @@ -91,7 +89,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=vs2015 displayName: 'Configure' - task: MSBuild@1 @@ -109,7 +107,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=vs2015 displayName: 'Configure' - task: MSBuild@1 @@ -130,11 +128,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 ninja -C build displayName: 'Build' @@ -150,11 +148,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 ninja -C build displayName: 'Build' @@ -167,7 +165,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=vs2015 displayName: 'Configure' - task: MSBuild@1 @@ -185,7 +183,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=vs2015 displayName: 'Configure' - task: MSBuild@1 @@ -208,11 +206,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 ninja -C build displayName: 'Build' @@ -228,11 +226,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 ninja -C build displayName: 'Build' @@ -245,7 +243,7 @@ jobs: steps: - template: azure-pipelines/install-latest-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=vs2017 displayName: 'Configure' - task: MSBuild@1 @@ -263,7 +261,7 @@ jobs: steps: - template: azure-pipelines/install-latest-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat x86" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=vs2017 displayName: 'Configure' - task: MSBuild@1 @@ -284,11 +282,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 ninja -C build displayName: 'Build' @@ -304,11 +302,11 @@ jobs: choco install ninja displayName: 'Install Dependencies' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 ninja -C build displayName: 'Build' @@ -321,7 +319,7 @@ jobs: steps: - template: azure-pipelines/install-latest-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=vs2017 displayName: 'Configure' - task: MSBuild@1 @@ -339,7 +337,7 @@ jobs: steps: - template: azure-pipelines/install-latest-meson.yml - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat amd64" + call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=vs2017 displayName: 'Configure' - task: MSBuild@1 diff --git a/azure-pipelines/vs2015-install-latest-python3-meson.yml b/azure-pipelines/vs2015-install-latest-python3-meson.yml index 71236c4f..06106cfc 100644 --- a/azure-pipelines/vs2015-install-latest-python3-meson.yml +++ b/azure-pipelines/vs2015-install-latest-python3-meson.yml @@ -12,10 +12,3 @@ steps: python -m pip install --upgrade pip setuptools wheel pip install meson displayName: 'Install Latest Meson' -- script: | - dir "C:\Program Files\" - dir "C:\Program Files (x86)\" - dir "C:\Program Files (x86)\Microsoft Visual Studio 14.0\" - dir "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\" - dir "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\" - exit 1 From a6b48771d5032f11f91bd1a76227afbf1732264a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 22:55:23 -0400 Subject: [PATCH 083/210] Fix Windows ninja. --- azure-pipelines.yml | 32 ++++++----------------- azure-pipelines/windows-install-ninja.yml | 9 +++++++ 2 files changed, 17 insertions(+), 24 deletions(-) create mode 100644 azure-pipelines/windows-install-ninja.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 249330d9..8c7e0f91 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -48,9 +48,7 @@ jobs: clean: all steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - - script: | - choco install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=ninja @@ -68,9 +66,7 @@ jobs: clean: all steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - - script: | - choco install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=ninja @@ -124,9 +120,7 @@ jobs: clean: all steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - - script: | - choco install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=ninja @@ -144,9 +138,7 @@ jobs: clean: all steps: - template: azure-pipelines/vs2015-install-latest-python3-meson.yml - - script: | - choco install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=ninja @@ -202,9 +194,7 @@ jobs: clean: all steps: - template: azure-pipelines/install-latest-meson.yml - - script: | - choco install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=ninja @@ -222,9 +212,7 @@ jobs: clean: all steps: - template: azure-pipelines/install-latest-meson.yml - - script: | - choco install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=ninja @@ -278,9 +266,7 @@ jobs: clean: all steps: - template: azure-pipelines/install-latest-meson.yml - - script: | - choco install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=ninja @@ -298,9 +284,7 @@ jobs: clean: all steps: - template: azure-pipelines/install-latest-meson.yml - - script: | - choco install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=ninja diff --git a/azure-pipelines/windows-install-ninja.yml b/azure-pipelines/windows-install-ninja.yml new file mode 100644 index 00000000..af4eb6ee --- /dev/null +++ b/azure-pipelines/windows-install-ninja.yml @@ -0,0 +1,9 @@ +# 4 april 2019 +# why this? because choco isn't available on the VS2015 image and is extremely slow on the VS2017 one (it should not take 2 minutes to install just ninja!) +- powershell: 'Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip' + displayName: 'Download Ninja' +- shell: | + mkdir C:\ninja + powershell -Command "Expand-Archive -LiteralPath C:\ninja-win.zip -DestinationPath C:\ninja" + @echo ##vso[task.prependpath]C:\ninja + displayName: 'Install Ninja' From 5ec9a2fbc0117d9c5cf1c5cf25fdebd0d5132d1e Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 22:56:36 -0400 Subject: [PATCH 084/210] Oops --- azure-pipelines/windows-install-ninja.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/windows-install-ninja.yml b/azure-pipelines/windows-install-ninja.yml index af4eb6ee..ef5608f7 100644 --- a/azure-pipelines/windows-install-ninja.yml +++ b/azure-pipelines/windows-install-ninja.yml @@ -1,5 +1,6 @@ # 4 april 2019 -# why this? because choco isn't available on the VS2015 image and is extremely slow on the VS2017 one (it should not take 2 minutes to install just ninja!) +# why this? because choco isn't available on the VS2015 image and is extremely slow on the VS2017 one (it should not take 2.5 minutes to install just ninja!) +steps: - powershell: 'Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip' displayName: 'Download Ninja' - shell: | From ef7b698205ad21d5d5fafdc111129390bcaf1754 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Thu, 4 Apr 2019 22:57:46 -0400 Subject: [PATCH 085/210] Ugh --- azure-pipelines/windows-install-ninja.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines/windows-install-ninja.yml b/azure-pipelines/windows-install-ninja.yml index ef5608f7..f726221e 100644 --- a/azure-pipelines/windows-install-ninja.yml +++ b/azure-pipelines/windows-install-ninja.yml @@ -3,7 +3,7 @@ steps: - powershell: 'Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip' displayName: 'Download Ninja' -- shell: | +- script: | mkdir C:\ninja powershell -Command "Expand-Archive -LiteralPath C:\ninja-win.zip -DestinationPath C:\ninja" @echo ##vso[task.prependpath]C:\ninja From 7a108adc4a1e820a036da43e9ade8ce01bb15193 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 00:54:51 -0400 Subject: [PATCH 086/210] Consolidated download and install steps. --- azure-pipelines/vs2015-install-latest-python3-meson.yml | 3 +-- azure-pipelines/windows-install-ninja.yml | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/azure-pipelines/vs2015-install-latest-python3-meson.yml b/azure-pipelines/vs2015-install-latest-python3-meson.yml index 06106cfc..0f62ee64 100644 --- a/azure-pipelines/vs2015-install-latest-python3-meson.yml +++ b/azure-pipelines/vs2015-install-latest-python3-meson.yml @@ -1,9 +1,8 @@ # 4 april 2019 # see https://github.com/Microsoft/azure-pipelines-image-generation/issues/374 for context and source steps: -- powershell: 'Invoke-WebRequest https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64-webinstall.exe -OutFile C:\py3-setup.exe' - displayName: 'Download Python 3' - script: | + powershell -Command "Invoke-WebRequest https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64-webinstall.exe -OutFile C:\py3-setup.exe" C:\py3-setup.exe /quiet PrependPath=0 InstallAllUsers=0 Include_launcher=0 InstallLauncherAllUsers=0 Include_test=0 Include_doc=0 Include_dev=0 Include_debug=0 Include_tcltk=0 TargetDir=C:\Python37 @echo ##vso[task.prependpath]C:\Python37 @echo ##vso[task.prependpath]C:\Python37\Scripts diff --git a/azure-pipelines/windows-install-ninja.yml b/azure-pipelines/windows-install-ninja.yml index f726221e..d80aedfe 100644 --- a/azure-pipelines/windows-install-ninja.yml +++ b/azure-pipelines/windows-install-ninja.yml @@ -1,9 +1,8 @@ # 4 april 2019 # why this? because choco isn't available on the VS2015 image and is extremely slow on the VS2017 one (it should not take 2.5 minutes to install just ninja!) steps: -- powershell: 'Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip' - displayName: 'Download Ninja' - script: | + powershell -Command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip" mkdir C:\ninja powershell -Command "Expand-Archive -LiteralPath C:\ninja-win.zip -DestinationPath C:\ninja" @echo ##vso[task.prependpath]C:\ninja From cd2d5ea78eeec35f0a8e939009d516a496d57fd7 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 01:29:43 -0400 Subject: [PATCH 087/210] Even more templateization, including splitting the Python and meson steps into templates. The next template will be the Meson template, and that will be fun :V --- azure-pipelines.yml | 155 ++++++++---------- azure-pipelines/build-msbuild.yml | 8 + azure-pipelines/build-ninja.yml | 10 ++ azure-pipelines/install-latest-meson.yml | 6 - azure-pipelines/setup-python3.yml | 7 + ...3-meson.yml => vs2015-install-python3.yml} | 5 +- azure-pipelines/windows-install-ninja.yml | 1 + 7 files changed, 91 insertions(+), 101 deletions(-) create mode 100644 azure-pipelines/build-msbuild.yml create mode 100644 azure-pipelines/build-ninja.yml create mode 100644 azure-pipelines/setup-python3.yml rename azure-pipelines/{vs2015-install-latest-python3-meson.yml => vs2015-install-python3.yml} (82%) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8c7e0f91..8bb74339 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,7 +8,7 @@ jobs: workspace: clean: all steps: - # Ubuntu typically comes with an outdated meson + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | sudo apt-get install libgtk-3-dev ninja-build @@ -16,9 +16,7 @@ jobs: - script: | meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml - job: linux_amd64_static_ninja displayName: 'Linux amd64 Static with Ninja' @@ -27,6 +25,7 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | sudo apt-get install libgtk-3-dev ninja-build @@ -34,9 +33,7 @@ jobs: - script: | meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml # vs2015 { @@ -47,16 +44,16 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - job: windows_386_msvc2015_static_ninja displayName: 'Windows 386 MSVC2015 Static Ninja' @@ -65,16 +62,16 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - job: windows_386_msvc2015_shared_msbuild displayName: 'Windows 386 MSVC2015 Shared with MSBuild' @@ -83,16 +80,13 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=vs2015 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_386_msvc2015_static_msbuild displayName: 'Windows 386 MSVC2015 Static with MSBuild' @@ -101,16 +95,13 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=vs2015 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2015_shared_ninja displayName: 'Windows amd64 MSVC2015 Shared Ninja' @@ -119,16 +110,16 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - job: windows_amd64_msvc2015_static_ninja displayName: 'Windows amd64 MSVC2015 Static Ninja' @@ -137,16 +128,16 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - job: windows_amd64_msvc2015_shared_msbuild displayName: 'Windows amd64 MSVC2015 Shared with MSBuild' @@ -155,16 +146,13 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=vs2015 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2015_static_msbuild displayName: 'Windows amd64 MSVC2015 Static with MSBuild' @@ -173,19 +161,18 @@ jobs: workspace: clean: all steps: - - template: azure-pipelines/vs2015-install-latest-python3-meson.yml + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=vs2015 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml # } +# vs2017 { + - job: windows_386_msvc2017_shared_ninja displayName: 'Windows 386 MSVC2017 Shared Ninja' pool: @@ -193,16 +180,16 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - job: windows_386_msvc2017_static_ninja displayName: 'Windows 386 MSVC2017 Static Ninja' @@ -211,16 +198,16 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - job: windows_386_msvc2017_shared_msbuild displayName: 'Windows 386 MSVC2017 Shared with MSBuild' @@ -229,16 +216,13 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=shared --backend=vs2017 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_386_msvc2017_static_msbuild displayName: 'Windows 386 MSVC2017 Static with MSBuild' @@ -247,16 +231,13 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 meson setup build --buildtype=release --default-library=static --backend=vs2017 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2017_shared_ninja displayName: 'Windows amd64 MSVC2017 Shared Ninja' @@ -265,16 +246,16 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - job: windows_amd64_msvc2017_static_ninja displayName: 'Windows amd64 MSVC2017 Static Ninja' @@ -283,16 +264,16 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=ninja displayName: 'Configure' - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - ninja -C build - displayName: 'Build' + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - job: windows_amd64_msvc2017_shared_msbuild displayName: 'Windows amd64 MSVC2017 Shared with MSBuild' @@ -301,16 +282,13 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=shared --backend=vs2017 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2017_static_msbuild displayName: 'Windows amd64 MSVC2017 Static with MSBuild' @@ -319,20 +297,15 @@ jobs: workspace: clean: all steps: + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 meson setup build --buildtype=release --default-library=static --backend=vs2017 displayName: 'Configure' - - task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' + - template: azure-pipelines/build-msbuild.yml + +# } # mac: # imageName: 'macos-10.13' -# windowsVS2017: -# imageName: 'vs2017-win2016' -# windowsVS2015: -# imageName: 'vs2015-win2012r2' diff --git a/azure-pipelines/build-msbuild.yml b/azure-pipelines/build-msbuild.yml new file mode 100644 index 00000000..69ab3598 --- /dev/null +++ b/azure-pipelines/build-msbuild.yml @@ -0,0 +1,8 @@ +# 5 april 2019 + +steps: +- task: MSBuild@1 + inputs: + solution: 'build/*.sln' + maximumCpuCount: true + displayName: 'Build' diff --git a/azure-pipelines/build-ninja.yml b/azure-pipelines/build-ninja.yml new file mode 100644 index 00000000..2fd591e7 --- /dev/null +++ b/azure-pipelines/build-ninja.yml @@ -0,0 +1,10 @@ +# 5 april 2019 + +parameters: + beforeBuild: '' + +steps: +- script: | + ${{ parameters.beforeBuild }} + ninja -C build + displayName: 'Build' diff --git a/azure-pipelines/install-latest-meson.yml b/azure-pipelines/install-latest-meson.yml index 713533fc..4c86a01e 100644 --- a/azure-pipelines/install-latest-meson.yml +++ b/azure-pipelines/install-latest-meson.yml @@ -1,12 +1,6 @@ # 4 april 2019 -# TODO figure out how to make the script step runnable in parallel with the other dependency installation steps - steps: -- task: UsePythonVersion@0 - inputs: - versionSpec: '3.6' - architecture: 'x64' - script: | python -m pip install --upgrade pip setuptools wheel pip install meson diff --git a/azure-pipelines/setup-python3.yml b/azure-pipelines/setup-python3.yml new file mode 100644 index 00000000..7fe321ea --- /dev/null +++ b/azure-pipelines/setup-python3.yml @@ -0,0 +1,7 @@ +# 4 april 2019 + +steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: '3.6' + architecture: 'x64' diff --git a/azure-pipelines/vs2015-install-latest-python3-meson.yml b/azure-pipelines/vs2015-install-python3.yml similarity index 82% rename from azure-pipelines/vs2015-install-latest-python3-meson.yml rename to azure-pipelines/vs2015-install-python3.yml index 0f62ee64..93502fc4 100644 --- a/azure-pipelines/vs2015-install-latest-python3-meson.yml +++ b/azure-pipelines/vs2015-install-python3.yml @@ -1,5 +1,6 @@ # 4 april 2019 # see https://github.com/Microsoft/azure-pipelines-image-generation/issues/374 for context and source + steps: - script: | powershell -Command "Invoke-WebRequest https://www.python.org/ftp/python/3.7.1/python-3.7.1-amd64-webinstall.exe -OutFile C:\py3-setup.exe" @@ -7,7 +8,3 @@ steps: @echo ##vso[task.prependpath]C:\Python37 @echo ##vso[task.prependpath]C:\Python37\Scripts displayName: 'Install Python 3' -- script: | - python -m pip install --upgrade pip setuptools wheel - pip install meson - displayName: 'Install Latest Meson' diff --git a/azure-pipelines/windows-install-ninja.yml b/azure-pipelines/windows-install-ninja.yml index d80aedfe..d9fe366f 100644 --- a/azure-pipelines/windows-install-ninja.yml +++ b/azure-pipelines/windows-install-ninja.yml @@ -1,5 +1,6 @@ # 4 april 2019 # why this? because choco isn't available on the VS2015 image and is extremely slow on the VS2017 one (it should not take 2.5 minutes to install just ninja!) + steps: - script: | powershell -Command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip" From ef7a341ec7a0fe9568ba9cfd61f4ceffe59a210e Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 01:42:23 -0400 Subject: [PATCH 088/210] Split the meson setp into its own template. --- azure-pipelines.yml | 158 +++++++++++++++++++--------------- azure-pipelines/configure.yml | 12 +++ 2 files changed, 100 insertions(+), 70 deletions(-) create mode 100644 azure-pipelines/configure.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8bb74339..f862f5a9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,9 +13,10 @@ jobs: - script: | sudo apt-get install libgtk-3-dev ninja-build displayName: 'Install Dependencies' - - script: | - meson setup build --buildtype=release --default-library=shared --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: shared + backend: ninja - template: azure-pipelines/build-ninja.yml - job: linux_amd64_static_ninja @@ -30,9 +31,10 @@ jobs: - script: | sudo apt-get install libgtk-3-dev ninja-build displayName: 'Install Dependencies' - - script: | - meson setup build --buildtype=release --default-library=static --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + backend: ninja - template: azure-pipelines/build-ninja.yml # vs2015 { @@ -47,10 +49,11 @@ jobs: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - meson setup build --buildtype=release --default-library=shared --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: shared + backend: ninja - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 @@ -65,10 +68,11 @@ jobs: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - meson setup build --buildtype=release --default-library=static --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static + backend: ninja - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 @@ -82,10 +86,11 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - meson setup build --buildtype=release --default-library=shared --backend=vs2015 - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: shared + backend: vs2015 - template: azure-pipelines/build-msbuild.yml - job: windows_386_msvc2015_static_msbuild @@ -97,10 +102,11 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - meson setup build --buildtype=release --default-library=static --backend=vs2015 - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static + backend: vs2015 - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2015_shared_ninja @@ -113,10 +119,11 @@ jobs: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - meson setup build --buildtype=release --default-library=shared --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: shared + backend: ninja - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 @@ -131,10 +138,11 @@ jobs: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - meson setup build --buildtype=release --default-library=static --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: static + backend: ninja - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 @@ -148,10 +156,11 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - meson setup build --buildtype=release --default-library=shared --backend=vs2015 - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: shared + backend: vs2015 - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2015_static_msbuild @@ -163,10 +172,11 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - meson setup build --buildtype=release --default-library=static --backend=vs2015 - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: static + backend: vs2015 - template: azure-pipelines/build-msbuild.yml # } @@ -183,10 +193,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - meson setup build --buildtype=release --default-library=shared --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared + backend: ninja - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 @@ -201,10 +212,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - meson setup build --buildtype=release --default-library=static --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: static + backend: ninja - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 @@ -218,10 +230,11 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - meson setup build --buildtype=release --default-library=shared --backend=vs2017 - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared + backend: vs2017 - template: azure-pipelines/build-msbuild.yml - job: windows_386_msvc2017_static_msbuild @@ -233,10 +246,11 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - meson setup build --buildtype=release --default-library=static --backend=vs2017 - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: static + backend: vs2017 - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2017_shared_ninja @@ -249,10 +263,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - meson setup build --buildtype=release --default-library=shared --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: shared + backend: ninja - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 @@ -267,10 +282,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/windows-install-ninja.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - meson setup build --buildtype=release --default-library=static --backend=ninja - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: static + backend: ninja - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 @@ -284,10 +300,11 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - meson setup build --buildtype=release --default-library=shared --backend=vs2017 - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: shared + backend: vs2017 - template: azure-pipelines/build-msbuild.yml - job: windows_amd64_msvc2017_static_msbuild @@ -299,10 +316,11 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - meson setup build --buildtype=release --default-library=static --backend=vs2017 - displayName: 'Configure' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: static + backend: vs2017 - template: azure-pipelines/build-msbuild.yml # } diff --git a/azure-pipelines/configure.yml b/azure-pipelines/configure.yml new file mode 100644 index 00000000..f1e5340f --- /dev/null +++ b/azure-pipelines/configure.yml @@ -0,0 +1,12 @@ +# 5 april 2019 + +parameters: + beforeConfigure: '' + defaultLibrary: 'must-be-set' + backend: 'must-be-set' + +steps: +- script: | + ${{ parameters.beforeConfigure }} + meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary --backend=${{ parameters.backend }} + displayName: 'Configure' From dbed420d32d7972ea24f404d38c705d626d1bb41 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 01:44:47 -0400 Subject: [PATCH 089/210] Oops --- azure-pipelines/configure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines/configure.yml b/azure-pipelines/configure.yml index f1e5340f..ec0c093e 100644 --- a/azure-pipelines/configure.yml +++ b/azure-pipelines/configure.yml @@ -8,5 +8,5 @@ parameters: steps: - script: | ${{ parameters.beforeConfigure }} - meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary --backend=${{ parameters.backend }} + meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary }} --backend=${{ parameters.backend }} displayName: 'Configure' From 77193006b9ace8b1c3bcbde6f868a7e060c5ec7b Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 10:40:24 -0400 Subject: [PATCH 090/210] Added the first Darwin build, to make sure everything works. --- azure-pipelines.yml | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f862f5a9..f2cbd8dc 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -325,5 +325,27 @@ jobs: # } -# mac: -# imageName: 'macos-10.13' +# mac { + +- job: darwin_amd64_1012sdk_shared_ninja + displayName: 'Darwin amd64 10.12 SDK Shared with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - script: | + brew install ninja + displayName: 'Install Dependencies' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) + +# } From 15ffbeaa8ae3f9b91847c2c0790b4d8ab44bd0c1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 10:42:43 -0400 Subject: [PATCH 091/210] Oops --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f2cbd8dc..75d42415 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -332,7 +332,7 @@ jobs: pool: vmImage: 'macos-10.13' workspace: - clean all + clean: all steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml From 47948df5de4deac3dc73f3c476ddb5ebb87c2026 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 11:20:15 -0400 Subject: [PATCH 092/210] Speed up Ninja downloading on Mac. --- azure-pipelines.yml | 4 +--- azure-pipelines/darwin-install-ninja.yml | 12 ++++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 azure-pipelines/darwin-install-ninja.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 75d42415..67ce6cd3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -336,9 +336,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - brew install ninja - displayName: 'Install Dependencies' + - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) diff --git a/azure-pipelines/darwin-install-ninja.yml b/azure-pipelines/darwin-install-ninja.yml new file mode 100644 index 00000000..1dd79914 --- /dev/null +++ b/azure-pipelines/darwin-install-ninja.yml @@ -0,0 +1,12 @@ +# 5 april 2019 +# because brew install is also slow (it runs an update task first) + +steps: +- script: | + sudo mkdir /opt/ninja + pushd /opt/ninja + sudo wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-mac.zip + sudo unzip ninja-mac.zip + popd + echo '##vso[task.prependpath]/opt/ninja' + displayName: 'Install Ninja' From aa0753ffc76b9b325ba7910e9f47e3c7dcf57e20 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 20:19:35 -0400 Subject: [PATCH 093/210] Oops --- azure-pipelines/darwin-install-ninja.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines/darwin-install-ninja.yml b/azure-pipelines/darwin-install-ninja.yml index 1dd79914..9d538a57 100644 --- a/azure-pipelines/darwin-install-ninja.yml +++ b/azure-pipelines/darwin-install-ninja.yml @@ -3,7 +3,7 @@ steps: - script: | - sudo mkdir /opt/ninja + sudo mkdir -p /opt/ninja pushd /opt/ninja sudo wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-mac.zip sudo unzip ninja-mac.zip From 7082146f9eb3b09295d24fef7368c48843d547f6 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 20:26:27 -0400 Subject: [PATCH 094/210] Oops again --- azure-pipelines/darwin-install-ninja.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines/darwin-install-ninja.yml b/azure-pipelines/darwin-install-ninja.yml index 9d538a57..47030170 100644 --- a/azure-pipelines/darwin-install-ninja.yml +++ b/azure-pipelines/darwin-install-ninja.yml @@ -7,6 +7,7 @@ steps: pushd /opt/ninja sudo wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-mac.zip sudo unzip ninja-mac.zip + sudo chmod a+rx ninja popd echo '##vso[task.prependpath]/opt/ninja' displayName: 'Install Ninja' From a9fb246d74fbcd689c89a282f6e02f4f6ac65542 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 20:52:26 -0400 Subject: [PATCH 095/210] More macOS options. --- azure-pipelines.yml | 98 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 67ce6cd3..7c47aaa7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -327,6 +327,9 @@ jobs: # mac { +# notes: +# [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. + - job: darwin_amd64_1012sdk_shared_ninja displayName: 'Darwin amd64 10.12 SDK Shared with Ninja' pool: @@ -346,4 +349,99 @@ jobs: parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) +- job: darwin_amd64_1012sdk_static_ninja + displayName: 'Darwin amd64 10.12 SDK Static with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) + +- job: darwin_amd64_1013sdk_shared_ninja + displayName: 'Darwin amd64 10.13 SDK Shared with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) + +- job: darwin_amd64_1013sdk_static_ninja + displayName: 'Darwin amd64 10.13 SDK Static with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) + +- job: darwin_amd64_1014sdk_shared_ninja + displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + +- job: darwin_amd64_1014sdk_static_ninja + displayName: 'Darwin amd64 10.14 SDK Static with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + # } From f929365b6ebd5d139903d9cd0576577b055ae915 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 5 Apr 2019 22:20:48 -0400 Subject: [PATCH 096/210] Temporarily wipe azure-pipelines.yml and start testing the release setup. --- azure-pipelines.yml | 434 +---------------------------------------- azure-pipelines_main | 447 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 455 insertions(+), 426 deletions(-) create mode 100644 azure-pipelines_main diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7c47aaa7..943350cd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -18,430 +18,12 @@ jobs: defaultLibrary: shared backend: ninja - template: azure-pipelines/build-ninja.yml - -- job: linux_amd64_static_ninja - displayName: 'Linux amd64 Static with Ninja' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - script: | - sudo apt-get install libgtk-3-dev ninja-build - displayName: 'Install Dependencies' - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - -# vs2015 { - -- job: windows_386_msvc2015_shared_ninja - displayName: 'Windows 386 MSVC2015 Shared Ninja' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - -- job: windows_386_msvc2015_static_ninja - displayName: 'Windows 386 MSVC2015 Static Ninja' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - -- job: windows_386_msvc2015_shared_msbuild - displayName: 'Windows 386 MSVC2015 Shared with MSBuild' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: shared - backend: vs2015 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_386_msvc2015_static_msbuild - displayName: 'Windows 386 MSVC2015 Static with MSBuild' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: static - backend: vs2015 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_amd64_msvc2015_shared_ninja - displayName: 'Windows amd64 MSVC2015 Shared Ninja' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - -- job: windows_amd64_msvc2015_static_ninja - displayName: 'Windows amd64 MSVC2015 Static Ninja' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - -- job: windows_amd64_msvc2015_shared_msbuild - displayName: 'Windows amd64 MSVC2015 Shared with MSBuild' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: shared - backend: vs2015 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_amd64_msvc2015_static_msbuild - displayName: 'Windows amd64 MSVC2015 Static with MSBuild' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: static - backend: vs2015 - - template: azure-pipelines/build-msbuild.yml - -# } - -# vs2017 { - -- job: windows_386_msvc2017_shared_ninja - displayName: 'Windows 386 MSVC2017 Shared Ninja' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - -- job: windows_386_msvc2017_static_ninja - displayName: 'Windows 386 MSVC2017 Static Ninja' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - -- job: windows_386_msvc2017_shared_msbuild - displayName: 'Windows 386 MSVC2017 Shared with MSBuild' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: shared - backend: vs2017 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_386_msvc2017_static_msbuild - displayName: 'Windows 386 MSVC2017 Static with MSBuild' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: static - backend: vs2017 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_amd64_msvc2017_shared_ninja - displayName: 'Windows amd64 MSVC2017 Shared Ninja' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - -- job: windows_amd64_msvc2017_static_ninja - displayName: 'Windows amd64 MSVC2017 Static Ninja' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - -- job: windows_amd64_msvc2017_shared_msbuild - displayName: 'Windows amd64 MSVC2017 Shared with MSBuild' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: shared - backend: vs2017 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_amd64_msvc2017_static_msbuild - displayName: 'Windows amd64 MSVC2017 Static with MSBuild' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: static - backend: vs2017 - - template: azure-pipelines/build-msbuild.yml - -# } - -# mac { - -# notes: -# [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. - -- job: darwin_amd64_1012sdk_shared_ninja - displayName: 'Darwin amd64 10.12 SDK Shared with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) - -- job: darwin_amd64_1012sdk_static_ninja - displayName: 'Darwin amd64 10.12 SDK Static with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) - -- job: darwin_amd64_1013sdk_shared_ninja - displayName: 'Darwin amd64 10.13 SDK Shared with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) - -- job: darwin_amd64_1013sdk_static_ninja - displayName: 'Darwin amd64 10.13 SDK Static with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) - -- job: darwin_amd64_1014sdk_shared_ninja - displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - -- job: darwin_amd64_1014sdk_static_ninja - displayName: 'Darwin amd64 10.14 SDK Static with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - -# } + pushd build/meson-out + cp ../../ui.h ../../ui_unix.h . + ls -lF . + tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h + tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz tester controlgallery cpp-multithread datetime drawtext histogram timer + rm ui.h ui_unix.h + popd + displayName: 'Create Artifacts' diff --git a/azure-pipelines_main b/azure-pipelines_main new file mode 100644 index 00000000..7c47aaa7 --- /dev/null +++ b/azure-pipelines_main @@ -0,0 +1,447 @@ +# 31 march 2019 + +jobs: +- job: linux_amd64_shared_ninja + displayName: 'Linux amd64 Shared with Ninja' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - script: | + sudo apt-get install libgtk-3-dev ninja-build + displayName: 'Install Dependencies' + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + +- job: linux_amd64_static_ninja + displayName: 'Linux amd64 Static with Ninja' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - script: | + sudo apt-get install libgtk-3-dev ninja-build + displayName: 'Install Dependencies' + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + +# vs2015 { + +- job: windows_386_msvc2015_shared_ninja + displayName: 'Windows 386 MSVC2015 Shared Ninja' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + +- job: windows_386_msvc2015_static_ninja + displayName: 'Windows 386 MSVC2015 Static Ninja' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + +- job: windows_386_msvc2015_shared_msbuild + displayName: 'Windows 386 MSVC2015 Shared with MSBuild' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: shared + backend: vs2015 + - template: azure-pipelines/build-msbuild.yml + +- job: windows_386_msvc2015_static_msbuild + displayName: 'Windows 386 MSVC2015 Static with MSBuild' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static + backend: vs2015 + - template: azure-pipelines/build-msbuild.yml + +- job: windows_amd64_msvc2015_shared_ninja + displayName: 'Windows amd64 MSVC2015 Shared Ninja' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + +- job: windows_amd64_msvc2015_static_ninja + displayName: 'Windows amd64 MSVC2015 Static Ninja' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + +- job: windows_amd64_msvc2015_shared_msbuild + displayName: 'Windows amd64 MSVC2015 Shared with MSBuild' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: shared + backend: vs2015 + - template: azure-pipelines/build-msbuild.yml + +- job: windows_amd64_msvc2015_static_msbuild + displayName: 'Windows amd64 MSVC2015 Static with MSBuild' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: static + backend: vs2015 + - template: azure-pipelines/build-msbuild.yml + +# } + +# vs2017 { + +- job: windows_386_msvc2017_shared_ninja + displayName: 'Windows 386 MSVC2017 Shared Ninja' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + +- job: windows_386_msvc2017_static_ninja + displayName: 'Windows 386 MSVC2017 Static Ninja' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + +- job: windows_386_msvc2017_shared_msbuild + displayName: 'Windows 386 MSVC2017 Shared with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared + backend: vs2017 + - template: azure-pipelines/build-msbuild.yml + +- job: windows_386_msvc2017_static_msbuild + displayName: 'Windows 386 MSVC2017 Static with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: static + backend: vs2017 + - template: azure-pipelines/build-msbuild.yml + +- job: windows_amd64_msvc2017_shared_ninja + displayName: 'Windows amd64 MSVC2017 Shared Ninja' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + +- job: windows_amd64_msvc2017_static_ninja + displayName: 'Windows amd64 MSVC2017 Static Ninja' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + +- job: windows_amd64_msvc2017_shared_msbuild + displayName: 'Windows amd64 MSVC2017 Shared with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: shared + backend: vs2017 + - template: azure-pipelines/build-msbuild.yml + +- job: windows_amd64_msvc2017_static_msbuild + displayName: 'Windows amd64 MSVC2017 Static with MSBuild' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: static + backend: vs2017 + - template: azure-pipelines/build-msbuild.yml + +# } + +# mac { + +# notes: +# [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. + +- job: darwin_amd64_1012sdk_shared_ninja + displayName: 'Darwin amd64 10.12 SDK Shared with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) + +- job: darwin_amd64_1012sdk_static_ninja + displayName: 'Darwin amd64 10.12 SDK Static with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) + +- job: darwin_amd64_1013sdk_shared_ninja + displayName: 'Darwin amd64 10.13 SDK Shared with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) + +- job: darwin_amd64_1013sdk_static_ninja + displayName: 'Darwin amd64 10.13 SDK Static with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) + +- job: darwin_amd64_1014sdk_shared_ninja + displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + +- job: darwin_amd64_1014sdk_static_ninja + displayName: 'Darwin amd64 10.14 SDK Static with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + +# } From 7692103f7fc8abd6e8f960cf88ba1ca630aeec1e Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 00:46:18 -0400 Subject: [PATCH 097/210] Split the example names into a variable and echoed the commands for archiving so I can make sure everything is right. --- azure-pipelines.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 943350cd..a68869d4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,5 +1,15 @@ # 31 march 2019 +variables: + examples: + - controlgallery + - cpp-multithread + - datetime + - drawtext + - histogram + - tester + - timer + jobs: - job: linux_amd64_shared_ninja displayName: 'Linux amd64 Shared with Ninja' @@ -21,9 +31,8 @@ jobs: - script: | pushd build/meson-out cp ../../ui.h ../../ui_unix.h . - ls -lF . - tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h - tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz tester controlgallery cpp-multithread datetime drawtext histogram timer + echo tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h + echo tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $[join(' ', variables.examples)] rm ui.h ui_unix.h popd displayName: 'Create Artifacts' From 494962b33018fb0800bfabc8b279591ea91a0411 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 00:49:11 -0400 Subject: [PATCH 098/210] Try again --- azure-pipelines.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a68869d4..f975b8bf 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,13 +2,13 @@ variables: examples: - - controlgallery - - cpp-multithread - - datetime - - drawtext - - histogram - - tester - - timer + - controlgallery + - cpp-multithread + - datetime + - drawtext + - histogram + - tester + - timer jobs: - job: linux_amd64_shared_ninja From 8be1b9603a653f05503810ee7fd4fe7ff01f3de8 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 00:51:25 -0400 Subject: [PATCH 099/210] Try again again --- azure-pipelines.yml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f975b8bf..1db416d0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,14 +1,7 @@ # 31 march 2019 variables: - examples: - - controlgallery - - cpp-multithread - - datetime - - drawtext - - histogram - - tester - - timer + examples: ['controlgallery', 'cpp-multithread', 'datetime', 'drawtext', 'histogram', 'tester', 'timer'] jobs: - job: linux_amd64_shared_ninja From 318bc1437db528884cae0438977e7ba7f294ad5b Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 00:54:10 -0400 Subject: [PATCH 100/210] Jiggle Azure Pipelines 1/2 --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1db416d0..b0143edf 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,6 +3,7 @@ variables: examples: ['controlgallery', 'cpp-multithread', 'datetime', 'drawtext', 'histogram', 'tester', 'timer'] + jobs: - job: linux_amd64_shared_ninja displayName: 'Linux amd64 Shared with Ninja' From 2c73c4f1753a8dff151cc397dbfadfc06cbc05d9 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 00:54:25 -0400 Subject: [PATCH 101/210] Jiggle Azure Pipelines 2/2 --- azure-pipelines.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b0143edf..1db416d0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,7 +3,6 @@ variables: examples: ['controlgallery', 'cpp-multithread', 'datetime', 'drawtext', 'histogram', 'tester', 'timer'] - jobs: - job: linux_amd64_shared_ninja displayName: 'Linux amd64 Shared with Ninja' From 58753f847812fa6e3b8cbb21a9c7272e36f69835 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 01:02:43 -0400 Subject: [PATCH 102/210] One more shot --- azure-pipelines.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1db416d0..2ab8363e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,7 +1,8 @@ # 31 march 2019 variables: - examples: ['controlgallery', 'cpp-multithread', 'datetime', 'drawtext', 'histogram', 'tester', 'timer'] +- name: releaseExamples + value: ['controlgallery', 'cpp-multithread', 'datetime', 'drawtext', 'histogram', 'tester', 'timer'] jobs: - job: linux_amd64_shared_ninja @@ -25,7 +26,7 @@ jobs: pushd build/meson-out cp ../../ui.h ../../ui_unix.h . echo tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h - echo tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $[join(' ', variables.examples)] + echo tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $[join(' ', variables.releaseExamples)] rm ui.h ui_unix.h popd displayName: 'Create Artifacts' From fec8042cfa436f0b8617d65bd0c79be4be9abd93 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 01:06:13 -0400 Subject: [PATCH 103/210] Sigh --- azure-pipelines.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2ab8363e..2a8e11c5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,8 +1,7 @@ # 31 march 2019 variables: -- name: releaseExamples - value: ['controlgallery', 'cpp-multithread', 'datetime', 'drawtext', 'histogram', 'tester', 'timer'] + releaseExamplesUnix: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: - job: linux_amd64_shared_ninja @@ -26,7 +25,7 @@ jobs: pushd build/meson-out cp ../../ui.h ../../ui_unix.h . echo tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h - echo tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $[join(' ', variables.releaseExamples)] + echo tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $(variables.releaseExamplesUnix) rm ui.h ui_unix.h popd displayName: 'Create Artifacts' From 20409b7599dcf10377fee455d3f8e1a61e2cc2b2 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 01:09:58 -0400 Subject: [PATCH 104/210] Oops --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2a8e11c5..31d990d8 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -25,7 +25,7 @@ jobs: pushd build/meson-out cp ../../ui.h ../../ui_unix.h . echo tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h - echo tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $(variables.releaseExamplesUnix) + echo tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $(releaseExamplesUnix) rm ui.h ui_unix.h popd displayName: 'Create Artifacts' From 963f2301961a9e105520a9878cac829c249f34ce Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 16:16:45 -0400 Subject: [PATCH 105/210] Okay, so we apparently need to explicitly Publish the artifacts we staged if we want to download them (in the final pipeline, this will be replaced with a GitHub step). --- azure-pipelines.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 31d990d8..3e5209e7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -24,8 +24,12 @@ jobs: - script: | pushd build/meson-out cp ../../ui.h ../../ui_unix.h . - echo tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h - echo tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $(releaseExamplesUnix) + tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h + tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $(releaseExamplesUnix) rm ui.h ui_unix.h popd displayName: 'Create Artifacts' + - task: PublishBuildArtifacts@1 + inputs: + pathToPublish: $(Build.ArtifactStagingDirectory) + artifactName: artifactTest From 988ca49e410c382bf6c3efc1093728d7470ca154 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 19:26:35 -0400 Subject: [PATCH 106/210] Split the Linux artifact rules into a template and try them on macOS and static builds too. --- azure-pipelines.yml | 103 ++++++++++++++++++++--- azure-pipelines/darwinunix-artifacts.yml | 23 +++++ azure-pipelines_main | 78 +---------------- 3 files changed, 115 insertions(+), 89 deletions(-) create mode 100644 azure-pipelines/darwinunix-artifacts.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3e5209e7..4c9753dc 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,7 +1,7 @@ # 31 march 2019 variables: - releaseExamplesUnix: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' + releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: - job: linux_amd64_shared_ninja @@ -21,15 +21,94 @@ jobs: defaultLibrary: shared backend: ninja - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h + +- job: linux_amd64_static_ninja + displayName: 'Linux amd64 Static with Ninja' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml - script: | - pushd build/meson-out - cp ../../ui.h ../../ui_unix.h . - tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-linux-amd64-shared.tgz libui.so.0 ui.h ui_unix.h - tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-linux-amd64-shared.tgz $(releaseExamplesUnix) - rm ui.h ui_unix.h - popd - displayName: 'Create Artifacts' - - task: PublishBuildArtifacts@1 - inputs: - pathToPublish: $(Build.ArtifactStagingDirectory) - artifactName: artifactTest + sudo apt-get install libgtk-3-dev ninja-build + displayName: 'Install Dependencies' + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h + +# mac { + +# notes: +# [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. + +- job: darwin_amd64_1014sdk_shared_ninja + displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: shared + libfiles: libui.A.dylib + osHeader: ui_darwin.h + +- job: darwin_amd64_1014sdk_static_ninja + displayName: 'Darwin amd64 10.14 SDK Static with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_darwin.h + +# } diff --git a/azure-pipelines/darwinunix-artifacts.yml b/azure-pipelines/darwinunix-artifacts.yml new file mode 100644 index 00000000..08da8e5b --- /dev/null +++ b/azure-pipelines/darwinunix-artifacts.yml @@ -0,0 +1,23 @@ +# 6 april 2019 + +parameters: + os: '' + arch: '' + libtype: '' + libfiles: '' + osHeader: '' + +steps: + - script: | + set -x + pushd build/meson-out + cp ../../ui.h ../../${{ parameters.osHeader }} . + tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.tgz ${{ parameters.libfiles }} ui.h ${{ parameters.osHeader}} + tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.tgz $(releaseExamples) + rm ui.h ${{ parameters.osHeader }} + popd + displayName: 'Create Artifacts' +- task: PublishBuildArtifacts@1 + inputs: + pathToPublish: $(Build.ArtifactStagingDirectory) + artifactName: ${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }} diff --git a/azure-pipelines_main b/azure-pipelines_main index 7c47aaa7..6e491eb4 100644 --- a/azure-pipelines_main +++ b/azure-pipelines_main @@ -1,41 +1,6 @@ # 31 march 2019 jobs: -- job: linux_amd64_shared_ninja - displayName: 'Linux amd64 Shared with Ninja' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - script: | - sudo apt-get install libgtk-3-dev ninja-build - displayName: 'Install Dependencies' - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - -- job: linux_amd64_static_ninja - displayName: 'Linux amd64 Static with Ninja' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - script: | - sudo apt-get install libgtk-3-dev ninja-build - displayName: 'Install Dependencies' - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml # vs2015 { @@ -325,10 +290,7 @@ jobs: # } -# mac { - -# notes: -# [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. +# more mac { - job: darwin_amd64_1012sdk_shared_ninja displayName: 'Darwin amd64 10.12 SDK Shared with Ninja' @@ -406,42 +368,4 @@ jobs: parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) -- job: darwin_amd64_1014sdk_shared_ninja - displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - -- job: darwin_amd64_1014sdk_static_ninja - displayName: 'Darwin amd64 10.14 SDK Static with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - # } From 0c410022bb141c96df6ffedbc8a1ef79504a0ba2 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 19:28:33 -0400 Subject: [PATCH 107/210] Oops --- azure-pipelines/darwinunix-artifacts.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/azure-pipelines/darwinunix-artifacts.yml b/azure-pipelines/darwinunix-artifacts.yml index 08da8e5b..8f9d28b5 100644 --- a/azure-pipelines/darwinunix-artifacts.yml +++ b/azure-pipelines/darwinunix-artifacts.yml @@ -8,15 +8,15 @@ parameters: osHeader: '' steps: - - script: | - set -x - pushd build/meson-out - cp ../../ui.h ../../${{ parameters.osHeader }} . - tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.tgz ${{ parameters.libfiles }} ui.h ${{ parameters.osHeader}} - tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.tgz $(releaseExamples) - rm ui.h ${{ parameters.osHeader }} - popd - displayName: 'Create Artifacts' +- script: | + set -x + pushd build/meson-out + cp ../../ui.h ../../${{ parameters.osHeader }} . + tar czf $(Build.ArtifactStagingDirectory)/libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.tgz ${{ parameters.libfiles }} ui.h ${{ parameters.osHeader}} + tar czf $(Build.ArtifactStagingDirectory)/examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.tgz $(releaseExamples) + rm ui.h ${{ parameters.osHeader }} + popd + displayName: 'Create Artifacts' - task: PublishBuildArtifacts@1 inputs: pathToPublish: $(Build.ArtifactStagingDirectory) From 2584e821911e413420f3b3c6c94738487fe66f99 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 19:33:27 -0400 Subject: [PATCH 108/210] Moved the linux/darwn pipeline out of the way so we can start working on the Windows one. Also more TODOs. --- azure-pipelines.yml => azure-pipelines_linux | 2 ++ 1 file changed, 2 insertions(+) rename azure-pipelines.yml => azure-pipelines_linux (98%) diff --git a/azure-pipelines.yml b/azure-pipelines_linux similarity index 98% rename from azure-pipelines.yml rename to azure-pipelines_linux index 4c9753dc..3beae09c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines_linux @@ -59,6 +59,8 @@ jobs: # notes: # [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. +# TODO macosx10.14 doesn't work; it just uses the default SDK + - job: darwin_amd64_1014sdk_shared_ninja displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' pool: From 7e30a2afc128f1f7e642f0d8b90413d1f17bd5a8 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 20:06:25 -0400 Subject: [PATCH 109/210] Oops --- azure-pipelines_linux => azure-pipelines.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename azure-pipelines_linux => azure-pipelines.yml (100%) diff --git a/azure-pipelines_linux b/azure-pipelines.yml similarity index 100% rename from azure-pipelines_linux rename to azure-pipelines.yml From f49253cbf85f48bc459733d7f50615262c369771 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 20:24:41 -0400 Subject: [PATCH 110/210] Now try Windows artifacts. --- azure-pipelines.yml | 161 +++++++++++++------------- azure-pipelines/build-ninja.yml | 2 + azure-pipelines/windows-artifacts.yml | 25 ++++ azure-pipelines_linux | 116 +++++++++++++++++++ 4 files changed, 223 insertions(+), 81 deletions(-) create mode 100644 azure-pipelines/windows-artifacts.yml create mode 100644 azure-pipelines_linux diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3beae09c..c1e2542b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,113 +4,112 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: linux_amd64_shared_ninja - displayName: 'Linux amd64 Shared with Ninja' +- job: windows_386_msvc2015_shared_ninja + displayName: 'Windows 386 MSVC2015 Shared Ninja' pool: - vmImage: 'ubuntu-16.04' + vmImage: 'vs2015-win2012r2' workspace: clean: all steps: - - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - sudo apt-get install libgtk-3-dev ninja-build - displayName: 'Install Dependencies' + - template: azure-pipelines/windows-install-ninja.yml - template: azure-pipelines/configure.yml parameters: - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - - template: azure-pipelines/darwinunix-artifacts.yml - parameters: - os: linux - arch: amd64 - libtype: shared - libfiles: libui.so.0 - osHeader: ui_unix.h - -- job: linux_amd64_static_ninja - displayName: 'Linux amd64 Static with Ninja' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - script: | - sudo apt-get install libgtk-3-dev ninja-build - displayName: 'Install Dependencies' - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - - template: azure-pipelines/darwinunix-artifacts.yml - parameters: - os: linux - arch: amd64 - libtype: static - libfiles: libui.a - osHeader: ui_unix.h - -# mac { - -# notes: -# [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. - -# TODO macosx10.14 doesn't work; it just uses the default SDK - -- job: darwin_amd64_1014sdk_shared_ninja - displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 defaultLibrary: shared backend: ninja - template: azure-pipelines/build-ninja.yml parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - template: azure-pipelines/darwinunix-artifacts.yml parameters: - os: darwin - arch: amd64 + os: windows + arch: 386 + toolchain: msvc2015 libtype: shared - libfiles: libui.A.dylib - osHeader: ui_darwin.h + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h -- job: darwin_amd64_1014sdk_static_ninja - displayName: 'Darwin amd64 10.14 SDK Static with Ninja' +- job: windows_386_msvc2015_static_ninja + displayName: 'Windows 386 MSVC2015 Static Ninja' pool: - vmImage: 'macos-10.13' + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a build\meson-out\libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +- job: windows_386_msvc2017_shared_ninja + displayName: 'Windows 386 MSVC2017 Shared Ninja' + pool: + vmImage: 'vs2017-win2016' workspace: clean: all steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/windows-install-ninja.yml - template: azure-pipelines/configure.yml parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_386_msvc2017_static_ninja + displayName: 'Windows 386 MSVC2017 Static Ninja' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 defaultLibrary: static backend: ninja - template: azure-pipelines/build-ninja.yml parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - - template: azure-pipelines/darwinunix-artifacts.yml + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a build\meson-out\libui.lib + - template: azure-pipelines/windows-artifacts.yml parameters: - os: darwin - arch: amd64 + os: windows + arch: 386 + toolchain: msvc2017 libtype: static - libfiles: libui.a - osHeader: ui_darwin.h - -# } + libfiles: libui.lib + osHeader: ui_windows.h diff --git a/azure-pipelines/build-ninja.yml b/azure-pipelines/build-ninja.yml index 2fd591e7..b7f24b54 100644 --- a/azure-pipelines/build-ninja.yml +++ b/azure-pipelines/build-ninja.yml @@ -2,9 +2,11 @@ parameters: beforeBuild: '' + afterBuild: '' steps: - script: | ${{ parameters.beforeBuild }} ninja -C build + ${{ parameters.afterBuild }} displayName: 'Build' diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml new file mode 100644 index 00000000..69d63145 --- /dev/null +++ b/azure-pipelines/windows-artifacts.yml @@ -0,0 +1,25 @@ +# 6 april 2019 + +parameters: + os: '' + arch: '' + toolchain: '' + libtype: '' + libfiles: '' + osHeader: '' + +steps: +- powershell: | + echo $PSVersionTable + Set-PSDebug + pushd build\meson-out + Copy-Item @("..\..\ui.h","..\..\${{ parameters.osHeader }}") -Destination . + Compress-Archive $(Build.ArtifactStagingDirectory)\libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }}.zip -Path $("${{ parameters.libfiles }}",ui.h,${{ parameters.osHeader}}) + Compress-Archive -Destination $(Build.ArtifactStagingDirectory)\examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.zip -Path @("$(releaseExamples)".Split(" ") | % {$_ + ".exe"}) + del ui.h ${{ parameters.osHeader }} + popd + displayName: 'Create Artifacts' +- task: PublishBuildArtifacts@1 + inputs: + pathToPublish: $(Build.ArtifactStagingDirectory) + artifactName: ${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }} diff --git a/azure-pipelines_linux b/azure-pipelines_linux new file mode 100644 index 00000000..3beae09c --- /dev/null +++ b/azure-pipelines_linux @@ -0,0 +1,116 @@ +# 31 march 2019 + +variables: + releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' + +jobs: +- job: linux_amd64_shared_ninja + displayName: 'Linux amd64 Shared with Ninja' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - script: | + sudo apt-get install libgtk-3-dev ninja-build + displayName: 'Install Dependencies' + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h + +- job: linux_amd64_static_ninja + displayName: 'Linux amd64 Static with Ninja' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - script: | + sudo apt-get install libgtk-3-dev ninja-build + displayName: 'Install Dependencies' + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h + +# mac { + +# notes: +# [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. + +# TODO macosx10.14 doesn't work; it just uses the default SDK + +- job: darwin_amd64_1014sdk_shared_ninja + displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: shared + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: shared + libfiles: libui.A.dylib + osHeader: ui_darwin.h + +- job: darwin_amd64_1014sdk_static_ninja + displayName: 'Darwin amd64 10.14 SDK Static with Ninja' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: static + backend: ninja + - template: azure-pipelines/build-ninja.yml + parameters: + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_darwin.h + +# } From c1a0e2e3b67ca307480eed326525d37767dc8022 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 20:34:45 -0400 Subject: [PATCH 111/210] Oops --- azure-pipelines.yml | 4 ++-- azure-pipelines/windows-artifacts.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c1e2542b..4ad5862a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -49,7 +49,7 @@ jobs: - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - afterBuild: ren build\meson-out\libui.a build\meson-out\libui.lib + afterBuild: ren build\meson-out\libui.a libui.lib - template: azure-pipelines/windows-artifacts.yml parameters: os: windows @@ -104,7 +104,7 @@ jobs: - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - afterBuild: ren build\meson-out\libui.a build\meson-out\libui.lib + afterBuild: ren build\meson-out\libui.a libui.lib - template: azure-pipelines/windows-artifacts.yml parameters: os: windows diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index 69d63145..828ef4dc 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -14,7 +14,7 @@ steps: Set-PSDebug pushd build\meson-out Copy-Item @("..\..\ui.h","..\..\${{ parameters.osHeader }}") -Destination . - Compress-Archive $(Build.ArtifactStagingDirectory)\libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }}.zip -Path $("${{ parameters.libfiles }}",ui.h,${{ parameters.osHeader}}) + Compress-Archive $(Build.ArtifactStagingDirectory)\libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }}.zip -Path @("${{ parameters.libfiles }}".Split(" ") + @("ui.h","${{ parameters.osHeader}}")) Compress-Archive -Destination $(Build.ArtifactStagingDirectory)\examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.zip -Path @("$(releaseExamples)".Split(" ") | % {$_ + ".exe"}) del ui.h ${{ parameters.osHeader }} popd From 08096e13a419d8ae3f0e50779345b39f73ccc7ff Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 20:45:14 -0400 Subject: [PATCH 112/210] Oops again --- azure-pipelines/windows-artifacts.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index 828ef4dc..9a1d364e 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -11,11 +11,11 @@ parameters: steps: - powershell: | echo $PSVersionTable - Set-PSDebug + Set-PSDebug -Trace 2 pushd build\meson-out Copy-Item @("..\..\ui.h","..\..\${{ parameters.osHeader }}") -Destination . - Compress-Archive $(Build.ArtifactStagingDirectory)\libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }}.zip -Path @("${{ parameters.libfiles }}".Split(" ") + @("ui.h","${{ parameters.osHeader}}")) - Compress-Archive -Destination $(Build.ArtifactStagingDirectory)\examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.zip -Path @("$(releaseExamples)".Split(" ") | % {$_ + ".exe"}) + echo Compress-Archive `-Destination $(Build.ArtifactStagingDirectory)\libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }}.zip `-Path @("${{ parameters.libfiles }}".Split(" ") + @("ui.h","${{ parameters.osHeader}}")) + echo Compress-Archive `-Destination $(Build.ArtifactStagingDirectory)\examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.zip `-Path @("$(releaseExamples)".Split(" ") | % {$_ + ".exe"}) del ui.h ${{ parameters.osHeader }} popd displayName: 'Create Artifacts' From 8d90ae1dc933ad1716ebba6cad5529a792d393c4 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 20:52:38 -0400 Subject: [PATCH 113/210] And another oops, but I confirmed the archive commands look right, so let's go for real now. --- azure-pipelines.yml | 2 +- azure-pipelines/windows-artifacts.yml | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4ad5862a..33980cb1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -22,7 +22,7 @@ jobs: - template: azure-pipelines/build-ninja.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - - template: azure-pipelines/darwinunix-artifacts.yml + - template: azure-pipelines/windows-artifacts.yml parameters: os: windows arch: 386 diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index 9a1d364e..b5682a9e 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -11,12 +11,11 @@ parameters: steps: - powershell: | echo $PSVersionTable - Set-PSDebug -Trace 2 pushd build\meson-out Copy-Item @("..\..\ui.h","..\..\${{ parameters.osHeader }}") -Destination . - echo Compress-Archive `-Destination $(Build.ArtifactStagingDirectory)\libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }}.zip `-Path @("${{ parameters.libfiles }}".Split(" ") + @("ui.h","${{ parameters.osHeader}}")) - echo Compress-Archive `-Destination $(Build.ArtifactStagingDirectory)\examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.zip `-Path @("$(releaseExamples)".Split(" ") | % {$_ + ".exe"}) - del ui.h ${{ parameters.osHeader }} + Compress-Archive -Destination $(Build.ArtifactStagingDirectory)\libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }}.zip -Path @("${{ parameters.libfiles }}".Split(" ") + @("ui.h","${{ parameters.osHeader}}")) + Compress-Archive -Destination $(Build.ArtifactStagingDirectory)\examples-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }}.zip -Path @("$(releaseExamples)".Split(" ") | % {$_ + ".exe"}) + Remove-Item @("ui.h","${{ parameters.osHeader }}") popd displayName: 'Create Artifacts' - task: PublishBuildArtifacts@1 From 6ba124ba83e40647085151091b9388a3d169a5ff Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 20:58:56 -0400 Subject: [PATCH 114/210] Oops, let's not clobber Windows artifacts. --- azure-pipelines/windows-artifacts.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index b5682a9e..d92a9f07 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -10,7 +10,6 @@ parameters: steps: - powershell: | - echo $PSVersionTable pushd build\meson-out Copy-Item @("..\..\ui.h","..\..\${{ parameters.osHeader }}") -Destination . Compress-Archive -Destination $(Build.ArtifactStagingDirectory)\libui-$(Build.SourceBranchName)-${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }}.zip -Path @("${{ parameters.libfiles }}".Split(" ") + @("ui.h","${{ parameters.osHeader}}")) @@ -21,4 +20,4 @@ steps: - task: PublishBuildArtifacts@1 inputs: pathToPublish: $(Build.ArtifactStagingDirectory) - artifactName: ${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }} + artifactName: ${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }} From 31adbb419e8646c0bb5a3ed477d1d9cc8cd56b22 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 21:13:16 -0400 Subject: [PATCH 115/210] Move the old Travis file out of the way and get rid of most of it. We still need some of its contents, but we will be getting rid of Travis entirely. --- .travis.yml | 101 ---------------------------------------------------- _travis_yml | 41 +++++++++++++++++++++ 2 files changed, 41 insertions(+), 101 deletions(-) delete mode 100644 .travis.yml create mode 100644 _travis_yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a6c70d85..00000000 --- a/.travis.yml +++ /dev/null @@ -1,101 +0,0 @@ -language: c - -include: &toolchain_linux_amd64 - os: linux - dist: trusty - addons: - apt: - update: true - packages: - - libgtk-3-dev - - ninja-build - -include: &toolchain_linux_386 - os: linux - dist: trusty - addons: - apt: - packages: - - ninja-build - - gcc-multilib - - g++-multilib - - libgtk-3-dev:i386 - # the rest fixes broken dependencies of libgtk:i386 - - libgirepository-1.0-1:i386 - - libglib2.0-dev:i386 - - gir1.2-glib-2.0:i386 - - gir1.2-atk-1.0:i386 - - libatk1.0-dev:i386 - - libfreetype6-dev:i386 - - libfontconfig1-dev:i386 - - libcairo2-dev:i386 - - libgdk-pixbuf2.0-dev:i386 - - libpango1.0-dev:i386 - - libxft-dev:i386 - - libpng12-dev:i386 - -include: &toolchain_osx_amd64 - os: osx - osx_image: xcode8 - -# Travis CI build matrix. -# Each entry below will trigger an extra, parallel build on Travis. -matrix: - include: - - env: linking=shared arch=amd64 - <<: *toolchain_linux_amd64 - - env: linking=static arch=amd64 - <<: *toolchain_linux_amd64 - - env: linking=shared arch=386 - <<: *toolchain_linux_386 - - env: linking=static arch=386 - <<: *toolchain_linux_386 - - env: linking=shared arch=amd64 - <<: *toolchain_osx_amd64 - - env: linking=static arch=amd64 - <<: *toolchain_osx_amd64 - -install: - - if [[ "${arch}" == "386" ]]; then - export CFLAGS=-m32; - export CXXFLAGS=-m32; - export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig; - fi - - if [[ "${linking}" == "static" ]]; then - export CMAKE_FLAGS=-DBUILD_SHARED_LIBS=OFF; - fi - -script: - - sudo pip3 install meson - - meson --version - - ninja --version - - mkdir build - - pushd build - - cmake -G "Unix Makefiles" ${CMAKE_FLAGS} .. - - make tester examples - - popd - -after_success: - - ls -lR build/out - - file build/out/test - - export platform="$TRAVIS_OS_NAME" - - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then cp ui.h ui_darwin.h build/out/; export platform=darwin; fi - - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cp ui.h ui_unix.h build/out/; fi - - if [[ "x${TRAVIS_TAG}" != "x" ]]; then export version=${TRAVIS_TAG}; else export version=${TRAVIS_BRANCH}; fi - - export artifact=${version}-${platform}-${arch}-${linking} - - echo ${artifact} - - pushd build/out - - # TODO do not include symlinks in the archive - - tar -czvf libui-${artifact}.tgz libui.* *.h - - tar -czvf examples-${artifact}.tgz `find . -type f ! -name "*.*"` - - popd - -deploy: - provider: releases - api_key: - secure: "fmgC97mlXQY/ASWAL/GyTJfiJIo/hsVFf6bP3Zz8odv259PJUFGgnZ9kNIgJcFQ5961lXDFi7pBMMSetm1GZ2EBZxIXnUfe1kfIhw62ybJHIwB2+g2tc8A4zzfkWJVY4xVYpitOU3iMuu5Z8U2n+68RYWKpcxhbkVw5v8Zu2Rms=" - file: build/out/*.tgz - file_glob: true - skip_cleanup: true - on: - tags: true diff --git a/_travis_yml b/_travis_yml new file mode 100644 index 00000000..7e7082ba --- /dev/null +++ b/_travis_yml @@ -0,0 +1,41 @@ + +include: &toolchain_linux_386 + os: linux + dist: trusty + addons: + apt: + packages: + - ninja-build + - gcc-multilib + - g++-multilib + - libgtk-3-dev:i386 + # the rest fixes broken dependencies of libgtk:i386 + - libgirepository-1.0-1:i386 + - libglib2.0-dev:i386 + - gir1.2-glib-2.0:i386 + - gir1.2-atk-1.0:i386 + - libatk1.0-dev:i386 + - libfreetype6-dev:i386 + - libfontconfig1-dev:i386 + - libcairo2-dev:i386 + - libgdk-pixbuf2.0-dev:i386 + - libpango1.0-dev:i386 + - libxft-dev:i386 + - libpng12-dev:i386 + +install: + - if [[ "${arch}" == "386" ]]; then + export CFLAGS=-m32; + export CXXFLAGS=-m32; + export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig; + fi + +deploy: + provider: releases + api_key: + secure: "fmgC97mlXQY/ASWAL/GyTJfiJIo/hsVFf6bP3Zz8odv259PJUFGgnZ9kNIgJcFQ5961lXDFi7pBMMSetm1GZ2EBZxIXnUfe1kfIhw62ybJHIwB2+g2tc8A4zzfkWJVY4xVYpitOU3iMuu5Z8U2n+68RYWKpcxhbkVw5v8Zu2Rms=" + file: build/out/*.tgz + file_glob: true + skip_cleanup: true + on: + tags: true From 26449f444f2974040f263da45e31d5d1874ba0d4 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 23:53:40 -0400 Subject: [PATCH 116/210] Executive decision: only run Ninja builds on CI. I only use these anyway, and this will let CI builds and releases go faster. If something breaks for other people, they will report bugs anyway, as they already have... --- azure-pipelines.yml | 32 ++--- azure-pipelines_linux | 28 ++--- azure-pipelines_main | 268 +++++------------------------------------- 3 files changed, 62 insertions(+), 266 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 33980cb1..4aa5ec5e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,8 +4,8 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: windows_386_msvc2015_shared_ninja - displayName: 'Windows 386 MSVC2015 Shared Ninja' +- job: windows_386_msvc2015_shared + displayName: 'Windows 386 MSVC2015 Shared' pool: vmImage: 'vs2015-win2012r2' workspace: @@ -13,13 +13,13 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 defaultLibrary: shared backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - template: azure-pipelines/windows-artifacts.yml @@ -31,8 +31,8 @@ jobs: libfiles: libui.dll libui.exp libui.lib osHeader: ui_windows.h -- job: windows_386_msvc2015_static_ninja - displayName: 'Windows 386 MSVC2015 Static Ninja' +- job: windows_386_msvc2015_static + displayName: 'Windows 386 MSVC2015 Static' pool: vmImage: 'vs2015-win2012r2' workspace: @@ -40,13 +40,13 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 defaultLibrary: static backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 afterBuild: ren build\meson-out\libui.a libui.lib @@ -59,8 +59,8 @@ jobs: libfiles: libui.lib osHeader: ui_windows.h -- job: windows_386_msvc2017_shared_ninja - displayName: 'Windows 386 MSVC2017 Shared Ninja' +- job: windows_386_msvc2017_shared + displayName: 'Windows 386 MSVC2017 Shared' pool: vmImage: 'vs2017-win2016' workspace: @@ -68,13 +68,13 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 defaultLibrary: shared backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - template: azure-pipelines/windows-artifacts.yml @@ -86,8 +86,8 @@ jobs: libfiles: libui.dll libui.exp libui.lib osHeader: ui_windows.h -- job: windows_386_msvc2017_static_ninja - displayName: 'Windows 386 MSVC2017 Static Ninja' +- job: windows_386_msvc2017_static + displayName: 'Windows 386 MSVC2017 Static' pool: vmImage: 'vs2017-win2016' workspace: @@ -95,13 +95,13 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 defaultLibrary: static backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 afterBuild: ren build\meson-out\libui.a libui.lib diff --git a/azure-pipelines_linux b/azure-pipelines_linux index 3beae09c..6ed4cc61 100644 --- a/azure-pipelines_linux +++ b/azure-pipelines_linux @@ -4,8 +4,8 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: linux_amd64_shared_ninja - displayName: 'Linux amd64 Shared with Ninja' +- job: linux_amd64_shared + displayName: 'Linux amd64 Shared' pool: vmImage: 'ubuntu-16.04' workspace: @@ -20,7 +20,7 @@ jobs: parameters: defaultLibrary: shared backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml - template: azure-pipelines/darwinunix-artifacts.yml parameters: os: linux @@ -29,8 +29,8 @@ jobs: libfiles: libui.so.0 osHeader: ui_unix.h -- job: linux_amd64_static_ninja - displayName: 'Linux amd64 Static with Ninja' +- job: linux_amd64_static + displayName: 'Linux amd64 Static' pool: vmImage: 'ubuntu-16.04' workspace: @@ -45,7 +45,7 @@ jobs: parameters: defaultLibrary: static backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml - template: azure-pipelines/darwinunix-artifacts.yml parameters: os: linux @@ -61,8 +61,8 @@ jobs: # TODO macosx10.14 doesn't work; it just uses the default SDK -- job: darwin_amd64_1014sdk_shared_ninja - displayName: 'Darwin amd64 10.14 SDK Shared with Ninja' +- job: darwin_amd64_1014sdk_shared + displayName: 'Darwin amd64 10.14 SDK Shared' pool: vmImage: 'macos-10.13' workspace: @@ -70,13 +70,13 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/darwin-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) defaultLibrary: shared backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - template: azure-pipelines/darwinunix-artifacts.yml @@ -87,8 +87,8 @@ jobs: libfiles: libui.A.dylib osHeader: ui_darwin.h -- job: darwin_amd64_1014sdk_static_ninja - displayName: 'Darwin amd64 10.14 SDK Static with Ninja' +- job: darwin_amd64_1014sdk_static + displayName: 'Darwin amd64 10.14 SDK Static' pool: vmImage: 'macos-10.13' workspace: @@ -96,13 +96,13 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/darwin-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) defaultLibrary: static backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - template: azure-pipelines/darwinunix-artifacts.yml diff --git a/azure-pipelines_main b/azure-pipelines_main index 6e491eb4..40926063 100644 --- a/azure-pipelines_main +++ b/azure-pipelines_main @@ -4,8 +4,8 @@ jobs: # vs2015 { -- job: windows_386_msvc2015_shared_ninja - displayName: 'Windows 386 MSVC2015 Shared Ninja' +- job: windows_amd64_msvc2015_shared + displayName: 'Windows amd64 MSVC2015 Shared' pool: vmImage: 'vs2015-win2012r2' workspace: @@ -13,88 +13,18 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - -- job: windows_386_msvc2015_static_ninja - displayName: 'Windows 386 MSVC2015 Static Ninja' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - -- job: windows_386_msvc2015_shared_msbuild - displayName: 'Windows 386 MSVC2015 Shared with MSBuild' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: shared - backend: vs2015 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_386_msvc2015_static_msbuild - displayName: 'Windows 386 MSVC2015 Static with MSBuild' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: static - backend: vs2015 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_amd64_msvc2015_shared_ninja - displayName: 'Windows amd64 MSVC2015 Shared Ninja' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 defaultLibrary: shared backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -- job: windows_amd64_msvc2015_static_ninja - displayName: 'Windows amd64 MSVC2015 Static Ninja' +- job: windows_amd64_msvc2015_static + displayName: 'Windows amd64 MSVC2015 Static' pool: vmImage: 'vs2015-win2012r2' workspace: @@ -102,54 +32,22 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 defaultLibrary: static backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -- job: windows_amd64_msvc2015_shared_msbuild - displayName: 'Windows amd64 MSVC2015 Shared with MSBuild' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: shared - backend: vs2015 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_amd64_msvc2015_static_msbuild - displayName: 'Windows amd64 MSVC2015 Static with MSBuild' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: static - backend: vs2015 - - template: azure-pipelines/build-msbuild.yml - # } # vs2017 { -- job: windows_386_msvc2017_shared_ninja - displayName: 'Windows 386 MSVC2017 Shared Ninja' +- job: windows_amd64_msvc2017_shared + displayName: 'Windows amd64 MSVC2017 Shared' pool: vmImage: 'vs2017-win2016' workspace: @@ -157,88 +55,18 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: shared - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - -- job: windows_386_msvc2017_static_ninja - displayName: 'Windows 386 MSVC2017 Static Ninja' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: static - backend: ninja - - template: azure-pipelines/build-ninja.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - -- job: windows_386_msvc2017_shared_msbuild - displayName: 'Windows 386 MSVC2017 Shared with MSBuild' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: shared - backend: vs2017 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_386_msvc2017_static_msbuild - displayName: 'Windows 386 MSVC2017 Static with MSBuild' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: static - backend: vs2017 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_amd64_msvc2017_shared_ninja - displayName: 'Windows amd64 MSVC2017 Shared Ninja' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 defaultLibrary: shared backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 -- job: windows_amd64_msvc2017_static_ninja - displayName: 'Windows amd64 MSVC2017 Static Ninja' +- job: windows_amd64_msvc2017_static + displayName: 'Windows amd64 MSVC2017 Static' pool: vmImage: 'vs2017-win2016' workspace: @@ -246,54 +74,22 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 defaultLibrary: static backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 -- job: windows_amd64_msvc2017_shared_msbuild - displayName: 'Windows amd64 MSVC2017 Shared with MSBuild' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: shared - backend: vs2017 - - template: azure-pipelines/build-msbuild.yml - -- job: windows_amd64_msvc2017_static_msbuild - displayName: 'Windows amd64 MSVC2017 Static with MSBuild' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: static - backend: vs2017 - - template: azure-pipelines/build-msbuild.yml - # } # more mac { -- job: darwin_amd64_1012sdk_shared_ninja - displayName: 'Darwin amd64 10.12 SDK Shared with Ninja' +- job: darwin_amd64_1012sdk_shared + displayName: 'Darwin amd64 10.12 SDK Shared' pool: vmImage: 'macos-10.13' workspace: @@ -301,18 +97,18 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/darwin-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) defaultLibrary: shared backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) -- job: darwin_amd64_1012sdk_static_ninja - displayName: 'Darwin amd64 10.12 SDK Static with Ninja' +- job: darwin_amd64_1012sdk_static + displayName: 'Darwin amd64 10.12 SDK Static' pool: vmImage: 'macos-10.13' workspace: @@ -320,18 +116,18 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/darwin-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) defaultLibrary: static backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) -- job: darwin_amd64_1013sdk_shared_ninja - displayName: 'Darwin amd64 10.13 SDK Shared with Ninja' +- job: darwin_amd64_1013sdk_shared + displayName: 'Darwin amd64 10.13 SDK Shared' pool: vmImage: 'macos-10.13' workspace: @@ -339,18 +135,18 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/darwin-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) defaultLibrary: shared backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) -- job: darwin_amd64_1013sdk_static_ninja - displayName: 'Darwin amd64 10.13 SDK Static with Ninja' +- job: darwin_amd64_1013sdk_static + displayName: 'Darwin amd64 10.13 SDK Static' pool: vmImage: 'macos-10.13' workspace: @@ -358,13 +154,13 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/darwin-install.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) defaultLibrary: static backend: ninja - - template: azure-pipelines/build-ninja.yml + - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) From 21d4ad54b6fd4c0200e588bfe9b8dfe4535aace2 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sat, 6 Apr 2019 23:56:05 -0400 Subject: [PATCH 117/210] Part 2 of previous change --- azure-pipelines.yml | 4 ---- azure-pipelines/build-msbuild.yml | 8 -------- azure-pipelines/{build-ninja.yml => build.yml} | 0 azure-pipelines/configure.yml | 3 +-- azure-pipelines_linux | 4 ---- azure-pipelines_main | 8 -------- 6 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 azure-pipelines/build-msbuild.yml rename azure-pipelines/{build-ninja.yml => build.yml} (100%) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4aa5ec5e..8317c684 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -18,7 +18,6 @@ jobs: parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 defaultLibrary: shared - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 @@ -45,7 +44,6 @@ jobs: parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 defaultLibrary: static - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 @@ -73,7 +71,6 @@ jobs: parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 defaultLibrary: shared - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 @@ -100,7 +97,6 @@ jobs: parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 defaultLibrary: static - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 diff --git a/azure-pipelines/build-msbuild.yml b/azure-pipelines/build-msbuild.yml deleted file mode 100644 index 69ab3598..00000000 --- a/azure-pipelines/build-msbuild.yml +++ /dev/null @@ -1,8 +0,0 @@ -# 5 april 2019 - -steps: -- task: MSBuild@1 - inputs: - solution: 'build/*.sln' - maximumCpuCount: true - displayName: 'Build' diff --git a/azure-pipelines/build-ninja.yml b/azure-pipelines/build.yml similarity index 100% rename from azure-pipelines/build-ninja.yml rename to azure-pipelines/build.yml diff --git a/azure-pipelines/configure.yml b/azure-pipelines/configure.yml index ec0c093e..aec307fe 100644 --- a/azure-pipelines/configure.yml +++ b/azure-pipelines/configure.yml @@ -3,10 +3,9 @@ parameters: beforeConfigure: '' defaultLibrary: 'must-be-set' - backend: 'must-be-set' steps: - script: | ${{ parameters.beforeConfigure }} - meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary }} --backend=${{ parameters.backend }} + meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary }} displayName: 'Configure' diff --git a/azure-pipelines_linux b/azure-pipelines_linux index 6ed4cc61..05cb6cb6 100644 --- a/azure-pipelines_linux +++ b/azure-pipelines_linux @@ -19,7 +19,6 @@ jobs: - template: azure-pipelines/configure.yml parameters: defaultLibrary: shared - backend: ninja - template: azure-pipelines/build.yml - template: azure-pipelines/darwinunix-artifacts.yml parameters: @@ -44,7 +43,6 @@ jobs: - template: azure-pipelines/configure.yml parameters: defaultLibrary: static - backend: ninja - template: azure-pipelines/build.yml - template: azure-pipelines/darwinunix-artifacts.yml parameters: @@ -75,7 +73,6 @@ jobs: parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) defaultLibrary: shared - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) @@ -101,7 +98,6 @@ jobs: parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) defaultLibrary: static - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) diff --git a/azure-pipelines_main b/azure-pipelines_main index 40926063..e0c7b312 100644 --- a/azure-pipelines_main +++ b/azure-pipelines_main @@ -18,7 +18,6 @@ jobs: parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 defaultLibrary: shared - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 @@ -37,7 +36,6 @@ jobs: parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 defaultLibrary: static - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 @@ -60,7 +58,6 @@ jobs: parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 defaultLibrary: shared - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 @@ -79,7 +76,6 @@ jobs: parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 defaultLibrary: static - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 @@ -102,7 +98,6 @@ jobs: parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) defaultLibrary: shared - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) @@ -121,7 +116,6 @@ jobs: parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) defaultLibrary: static - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) @@ -140,7 +134,6 @@ jobs: parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) defaultLibrary: shared - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) @@ -159,7 +152,6 @@ jobs: parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) defaultLibrary: static - backend: ninja - template: azure-pipelines/build.yml parameters: beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) From 1500c750b662ce7d5d48acecd41b2fef58bf347e Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 00:19:28 -0400 Subject: [PATCH 118/210] Let's try MinGW-w64! --- azure-pipelines.yml | 111 +++++------------ azure-pipelines/windows-setup-mingw.yml | 11 ++ azure-pipelines_linux | 4 +- azure-pipelines_main | 156 ++++++++++++++++++++++-- 4 files changed, 192 insertions(+), 90 deletions(-) create mode 100644 azure-pipelines/windows-setup-mingw.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8317c684..a5cf3605 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,61 +4,8 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: windows_386_msvc2015_shared - displayName: 'Windows 386 MSVC2015 Shared' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2015 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h - -- job: windows_386_msvc2015_static - displayName: 'Windows 386 MSVC2015 Static' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2015 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -- job: windows_386_msvc2017_shared - displayName: 'Windows 386 MSVC2017 Shared' +- job: windows_386_mingw_shared + displayName: 'Windows 386 MinGW-w64 Shared' pool: vmImage: 'vs2017-win2016' workspace: @@ -66,25 +13,27 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-setup-mingw.yml + parameters: + which: mingw32 - template: azure-pipelines/configure.yml parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 defaultLibrary: shared - template: azure-pipelines/build.yml parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2017 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h + afterBuild: dir build\meson-out +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: mingw +# libtype: shared +# libfiles: libui.dll +# osHeader: ui_windows.h -- job: windows_386_msvc2017_static - displayName: 'Windows 386 MSVC2017 Static' +- job: windows_386_mingw_static + displayName: 'Windows 386 MinGW-w64 Static' pool: vmImage: 'vs2017-win2016' workspace: @@ -92,20 +41,22 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-setup-mingw.yml + parameters: + which: mingw32 - template: azure-pipelines/configure.yml parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 defaultLibrary: static - template: azure-pipelines/build.yml parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2017 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h + afterBuild: dir build\meson-out +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: mingw +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml new file mode 100644 index 00000000..a895c9e7 --- /dev/null +++ b/azure-pipelines/windows-setup-mingw.yml @@ -0,0 +1,11 @@ +# 7 april 2019 + +parameters: + which: 'must-be-specified' + +steps: +- powershell: | + $chocopath = where.exe choco.exe | Get-Item + $chocopath = Join-Path $chocopath.Directory "install" ${{ parameters.which }} "bin" + echo "##vso[task.prependpath]$chocopath" + displayName: 'Set up MinGW-w64' diff --git a/azure-pipelines_linux b/azure-pipelines_linux index 05cb6cb6..6baf6f2c 100644 --- a/azure-pipelines_linux +++ b/azure-pipelines_linux @@ -68,7 +68,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install.yml + - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) @@ -93,7 +93,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install.yml + - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) diff --git a/azure-pipelines_main b/azure-pipelines_main index e0c7b312..79327218 100644 --- a/azure-pipelines_main +++ b/azure-pipelines_main @@ -4,6 +4,59 @@ jobs: # vs2015 { +- job: windows_386_msvc2015_shared + displayName: 'Windows 386 MSVC2015 Shared' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2015 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_386_msvc2015_static + displayName: 'Windows 386 MSVC2015 Static' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + - job: windows_amd64_msvc2015_shared displayName: 'Windows amd64 MSVC2015 Shared' pool: @@ -13,7 +66,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install.yml + - template: azure-pipelines/windows-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 @@ -21,6 +74,14 @@ jobs: - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2015 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h - job: windows_amd64_msvc2015_static displayName: 'Windows amd64 MSVC2015 Static' @@ -31,7 +92,7 @@ jobs: steps: - template: azure-pipelines/vs2015-install-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install.yml + - template: azure-pipelines/windows-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 @@ -39,11 +100,73 @@ jobs: - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h # } # vs2017 { +- job: windows_386_msvc2017_shared + displayName: 'Windows 386 MSVC2017 Shared' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_386_msvc2017_static + displayName: 'Windows 386 MSVC2017 Static' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + - job: windows_amd64_msvc2017_shared displayName: 'Windows amd64 MSVC2017 Shared' pool: @@ -53,7 +176,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install.yml + - template: azure-pipelines/windows-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 @@ -61,6 +184,14 @@ jobs: - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h - job: windows_amd64_msvc2017_static displayName: 'Windows amd64 MSVC2017 Static' @@ -71,7 +202,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install.yml + - template: azure-pipelines/windows-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 @@ -79,6 +210,15 @@ jobs: - template: azure-pipelines/build.yml parameters: beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2017 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h # } @@ -93,7 +233,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install.yml + - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) @@ -111,7 +251,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install.yml + - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) @@ -129,7 +269,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install.yml + - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) @@ -147,7 +287,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install.yml + - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) From 40100a17d1e1771ab667f9fd54712002acc2882f Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 00:22:19 -0400 Subject: [PATCH 119/210] Oops --- azure-pipelines/windows-setup-mingw.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index a895c9e7..f014a778 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,6 +6,6 @@ parameters: steps: - powershell: | $chocopath = where.exe choco.exe | Get-Item - $chocopath = Join-Path $chocopath.Directory "install" ${{ parameters.which }} "bin" + $chocopath = Join-Path $chocopath.Directory "install" "${{ parameters.which }}" "bin" echo "##vso[task.prependpath]$chocopath" - displayName: 'Set up MinGW-w64' + displayName: 'Set Up MinGW-w64' From a8f643c09cdda6ac83b85b311f4a957e5aaa24f1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 00:31:54 -0400 Subject: [PATCH 120/210] Sigh --- azure-pipelines/windows-setup-mingw.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index f014a778..3607e3a0 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,6 +6,7 @@ parameters: steps: - powershell: | $chocopath = where.exe choco.exe | Get-Item - $chocopath = Join-Path $chocopath.Directory "install" "${{ parameters.which }}" "bin" + # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) + $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" echo "##vso[task.prependpath]$chocopath" displayName: 'Set Up MinGW-w64' From d3c553c424b967d11c7e0c6166d7ae5a0bfc7113 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 00:39:27 -0400 Subject: [PATCH 121/210] Okay, things are not quite working right (and I forgot about shared builds not being available on MinGW-w64). Set up the next round of debugging early, and debug our PowerShell now. --- azure-pipelines.yml | 57 +++++++++++++------------ azure-pipelines/build.yml | 2 +- azure-pipelines/windows-setup-mingw.yml | 3 +- 3 files changed, 32 insertions(+), 30 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a5cf3605..cbbeeef1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,34 +4,6 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: windows_386_mingw_shared - displayName: 'Windows 386 MinGW-w64 Shared' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/windows-setup-mingw.yml - parameters: - which: mingw32 - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - afterBuild: dir build\meson-out -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: 386 -# toolchain: mingw -# libtype: shared -# libfiles: libui.dll -# osHeader: ui_windows.h - - job: windows_386_mingw_static displayName: 'Windows 386 MinGW-w64 Static' pool: @@ -60,3 +32,32 @@ jobs: # libtype: static # libfiles: libui.lib # osHeader: ui_windows.h + +- job: windows_amd64_mingw_static + displayName: 'Windows amd64 MinGW-w64 Static' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/windows-setup-mingw.yml + parameters: + which: mingw64 + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + afterBuild: dir build\meson-out +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: mingw +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h diff --git a/azure-pipelines/build.yml b/azure-pipelines/build.yml index b7f24b54..e4410d6f 100644 --- a/azure-pipelines/build.yml +++ b/azure-pipelines/build.yml @@ -7,6 +7,6 @@ parameters: steps: - script: | ${{ parameters.beforeBuild }} - ninja -C build + ninja -C build -v ${{ parameters.afterBuild }} displayName: 'Build' diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index 3607e3a0..b6c9e9be 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -8,5 +8,6 @@ steps: $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" - echo "##vso[task.prependpath]$chocopath" + echo "abcdef##vso[task.prependpath]$chocopath" + exit 1 displayName: 'Set Up MinGW-w64' From 651d5026244d385b14d8c936fbc71ff65e14e5d7 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 00:43:41 -0400 Subject: [PATCH 122/210] That didn't quite work --- azure-pipelines/windows-setup-mingw.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index b6c9e9be..d259a371 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -8,6 +8,7 @@ steps: $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" - echo "abcdef##vso[task.prependpath]$chocopath" + dir $chocopath | Write-Error + Write-Error "##vso[task.prependpath]$chocopath" exit 1 displayName: 'Set Up MinGW-w64' From 21591e4f6f77174b07ed19cfcc47cbb9ffae89ee Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:11:18 -0400 Subject: [PATCH 123/210] Hm, Chocolatey is being annoying... --- azure-pipelines/windows-setup-mingw.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index d259a371..03e487c1 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -5,6 +5,9 @@ parameters: steps: - powershell: | + WriteError "$env:ChocolateyInstall" + dir "$env:ChocolateyInstall" | Write-Error + dir "$env:ChocolateyInstall\lib" | Write-Error $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" From e9792a221663f1a0f0770d0e80218f5b5fcc5fd8 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:13:53 -0400 Subject: [PATCH 124/210] Oops again --- azure-pipelines/windows-setup-mingw.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index 03e487c1..bb86fcd4 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -5,7 +5,8 @@ parameters: steps: - powershell: | - WriteError "$env:ChocolateyInstall" + Set-PSDebug -Trace 2 + Write-Error "$env:ChocolateyInstall" dir "$env:ChocolateyInstall" | Write-Error dir "$env:ChocolateyInstall\lib" | Write-Error $chocopath = where.exe choco.exe | Get-Item From 98e814f013e3ee38e9440eb26040be60756395d1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:17:28 -0400 Subject: [PATCH 125/210] Grrr --- azure-pipelines/windows-setup-mingw.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index bb86fcd4..979f9177 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,13 +6,13 @@ parameters: steps: - powershell: | Set-PSDebug -Trace 2 - Write-Error "$env:ChocolateyInstall" - dir "$env:ChocolateyInstall" | Write-Error - dir "$env:ChocolateyInstall\lib" | Write-Error + echo "$env:ChocolateyInstall" 1>&2 + dir "$env:ChocolateyInstall" 1>&2 + dir "$env:ChocolateyInstall\lib" 1>&2 $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" - dir $chocopath | Write-Error + dir $chocopath 1>&2 Write-Error "##vso[task.prependpath]$chocopath" exit 1 displayName: 'Set Up MinGW-w64' From 58cdf151a58e26136f83c24e446c184902cf1689 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:20:09 -0400 Subject: [PATCH 126/210] Ah, Write-Host was the key --- azure-pipelines/windows-setup-mingw.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index 979f9177..743b1ff7 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,13 +6,13 @@ parameters: steps: - powershell: | Set-PSDebug -Trace 2 - echo "$env:ChocolateyInstall" 1>&2 - dir "$env:ChocolateyInstall" 1>&2 - dir "$env:ChocolateyInstall\lib" 1>&2 + Write-Host "$env:ChocolateyInstall" + dir "$env:ChocolateyInstall" | Write-Host + dir "$env:ChocolateyInstall\lib" | Write-Host $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" - dir $chocopath 1>&2 + dir $chocopath | Write-Host Write-Error "##vso[task.prependpath]$chocopath" exit 1 displayName: 'Set Up MinGW-w64' From 4ec1a642a23d848f725ce16ec313e1dffe667689 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:23:07 -0400 Subject: [PATCH 127/210] Getting closer... --- azure-pipelines/windows-setup-mingw.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index 743b1ff7..e46d4911 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -7,8 +7,7 @@ steps: - powershell: | Set-PSDebug -Trace 2 Write-Host "$env:ChocolateyInstall" - dir "$env:ChocolateyInstall" | Write-Host - dir "$env:ChocolateyInstall\lib" | Write-Host + dir "$env:ChocolateyInstall\lib\mingw" | Write-Host $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" From d994dcb0b09a0ddba278f4805bd97ddf63a7a5b5 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:29:44 -0400 Subject: [PATCH 128/210] Hmmm --- azure-pipelines/windows-setup-mingw.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index e46d4911..b6fdf1ac 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,12 +6,14 @@ parameters: steps: - powershell: | Set-PSDebug -Trace 2 - Write-Host "$env:ChocolateyInstall" - dir "$env:ChocolateyInstall\lib\mingw" | Write-Host + Write-Host "$MyInvocation.MyCommand.Definition" + Write-Host "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)" + ls "$env:ChocolateyInstall\lib\mingw" | Wite-Host + ls "$env:ChocolateyInstall\lib\mingw" | Write-Host $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" - dir $chocopath | Write-Host + ls $chocopath | Write-Host Write-Error "##vso[task.prependpath]$chocopath" exit 1 displayName: 'Set Up MinGW-w64' From 29b9e820da15f780fd9bfd57fe90cb9193affa72 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:34:20 -0400 Subject: [PATCH 129/210] Some more guesswork. I have an idea... --- azure-pipelines/windows-setup-mingw.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index b6fdf1ac..99dafdf6 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,10 +6,14 @@ parameters: steps: - powershell: | Set-PSDebug -Trace 2 + $MyInvocation | Get-Members | Write-Host + $MyInformation.MyCommand | Get-Members | Write-Host + $MyInformation.MyCommand.Definition | Get-Members | Write-Host Write-Host "$MyInvocation.MyCommand.Definition" Write-Host "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)" - ls "$env:ChocolateyInstall\lib\mingw" | Wite-Host + ls "$env:ChocolateyInstall" | Write-Host ls "$env:ChocolateyInstall\lib\mingw" | Write-Host + where.exe mingw32-make.exe | Write-Host $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" From 5ded8398bab02de0cc68fc4d4f2aee0665b1cc53 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:38:02 -0400 Subject: [PATCH 130/210] Bleh --- azure-pipelines/windows-setup-mingw.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index 99dafdf6..02c5268f 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,9 +6,9 @@ parameters: steps: - powershell: | Set-PSDebug -Trace 2 - $MyInvocation | Get-Members | Write-Host - $MyInformation.MyCommand | Get-Members | Write-Host - $MyInformation.MyCommand.Definition | Get-Members | Write-Host + $MyInvocation | Write-Host + $MyInformation.MyCommand | Write-Host + $MyInformation.MyCommand.Definition | Write-Host Write-Host "$MyInvocation.MyCommand.Definition" Write-Host "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)" ls "$env:ChocolateyInstall" | Write-Host From f7c1515ae1d7ca2ec13eaa97774cf9a4d66bc12d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:43:31 -0400 Subject: [PATCH 131/210] Roadblocks roadblocks --- azure-pipelines/windows-setup-mingw.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index 02c5268f..c76c35ba 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,13 +6,9 @@ parameters: steps: - powershell: | Set-PSDebug -Trace 2 - $MyInvocation | Write-Host - $MyInformation.MyCommand | Write-Host - $MyInformation.MyCommand.Definition | Write-Host - Write-Host "$MyInvocation.MyCommand.Definition" - Write-Host "$(Split-Path -Parent $MyInvocation.MyCommand.Definition)" ls "$env:ChocolateyInstall" | Write-Host - ls "$env:ChocolateyInstall\lib\mingw" | Write-Host + ls "$env:ChocolateyInstall\lib\mingw" + ls "$env:ChocolateyInstall\lib\mingw\tools" | Write-Host where.exe mingw32-make.exe | Write-Host $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) From 23a0a041f01a18cffcb8807d5a489612f60ce10a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:50:53 -0400 Subject: [PATCH 132/210] ??? --- azure-pipelines/windows-setup-mingw.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml index c76c35ba..609d61e5 100644 --- a/azure-pipelines/windows-setup-mingw.yml +++ b/azure-pipelines/windows-setup-mingw.yml @@ -6,14 +6,13 @@ parameters: steps: - powershell: | Set-PSDebug -Trace 2 - ls "$env:ChocolateyInstall" | Write-Host - ls "$env:ChocolateyInstall\lib\mingw" - ls "$env:ChocolateyInstall\lib\mingw\tools" | Write-Host + ls "$env:ChocolateyInstall\lib\mingw\tools\install" where.exe mingw32-make.exe | Write-Host + where.exe gcc.exe | Write-Host $chocopath = where.exe choco.exe | Get-Item # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" - ls $chocopath | Write-Host + ls $chocopath Write-Error "##vso[task.prependpath]$chocopath" exit 1 displayName: 'Set Up MinGW-w64' From efd7e8d07da1d9bab17170db07085a06ff5db646 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 01:57:47 -0400 Subject: [PATCH 133/210] Okay, so MinGW-w64 on Azure Pipelines is a non-starter. Let's find out what the macOS SDKs are *actually* called. --- azure-pipelines.yml | 63 +++++++------------------ azure-pipelines/windows-setup-mingw.yml | 18 ------- 2 files changed, 17 insertions(+), 64 deletions(-) delete mode 100644 azure-pipelines/windows-setup-mingw.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cbbeeef1..87fcc79d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,60 +4,31 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: windows_386_mingw_static - displayName: 'Windows 386 MinGW-w64 Static' +- job: darwin_amd64_1014sdk_shared + displayName: 'Darwin amd64 10.14 SDK Shared' pool: - vmImage: 'vs2017-win2016' + vmImage: 'macos-10.13' workspace: clean: all steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/windows-setup-mingw.yml - parameters: - which: mingw32 + - template: azure-pipelines/darwin-install-ninja.yml + - script: | + xcodebuild -showsdks + exit 1 + displayName: "Help" - template: azure-pipelines/configure.yml parameters: - defaultLibrary: static + beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + defaultLibrary: shared - template: azure-pipelines/build.yml parameters: - afterBuild: dir build\meson-out -# afterBuild: ren build\meson-out\libui.a libui.lib -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: 386 -# toolchain: mingw -# libtype: static -# libfiles: libui.lib -# osHeader: ui_windows.h - -- job: windows_amd64_mingw_static - displayName: 'Windows amd64 MinGW-w64 Static' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/windows-setup-mingw.yml + beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + - template: azure-pipelines/darwinunix-artifacts.yml parameters: - which: mingw64 - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - afterBuild: dir build\meson-out -# afterBuild: ren build\meson-out\libui.a libui.lib -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: amd64 -# toolchain: mingw -# libtype: static -# libfiles: libui.lib -# osHeader: ui_windows.h + os: darwin + arch: amd64 + libtype: shared + libfiles: libui.A.dylib + osHeader: ui_darwin.h diff --git a/azure-pipelines/windows-setup-mingw.yml b/azure-pipelines/windows-setup-mingw.yml deleted file mode 100644 index 609d61e5..00000000 --- a/azure-pipelines/windows-setup-mingw.yml +++ /dev/null @@ -1,18 +0,0 @@ -# 7 april 2019 - -parameters: - which: 'must-be-specified' - -steps: -- powershell: | - Set-PSDebug -Trace 2 - ls "$env:ChocolateyInstall\lib\mingw\tools\install" - where.exe mingw32-make.exe | Write-Host - where.exe gcc.exe | Write-Host - $chocopath = where.exe choco.exe | Get-Item - # apparently they didn't think to add this functionality from the start (multiple joins was only added in PowerShell 6 and Azure Pipelines is using 5.x), and the direct-CLR approach actually behaves differently (and I would need to check which version of .net Azure Pipelines is using anyway, since our use case isn't one of those cases where it behaves differently) - $chocopath = Join-Path -Path $chocopath.Directory -ChildPath "install" | Join-Path -ChildPath "${{ parameters.which }}" | Join-Path -ChildPath "bin" - ls $chocopath - Write-Error "##vso[task.prependpath]$chocopath" - exit 1 - displayName: 'Set Up MinGW-w64' From 60687e6affff67fcb78ccdd0feb726f0a3f66059 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:02:32 -0400 Subject: [PATCH 134/210] So apparently only macosx10.13 is valid?! Just use the default SDK. --- azure-pipelines_linux | 17 ++-------- azure-pipelines_main | 76 ------------------------------------------- 2 files changed, 3 insertions(+), 90 deletions(-) diff --git a/azure-pipelines_linux b/azure-pipelines_linux index 6baf6f2c..adf3ed34 100644 --- a/azure-pipelines_linux +++ b/azure-pipelines_linux @@ -54,13 +54,8 @@ jobs: # mac { -# notes: -# [18:36:55] <@jpakkane> Don't use the xcode backend for anything serious, it's a bit crap. - -# TODO macosx10.14 doesn't work; it just uses the default SDK - -- job: darwin_amd64_1014sdk_shared - displayName: 'Darwin amd64 10.14 SDK Shared' +- job: darwin_amd64_shared + displayName: 'Darwin amd64 Shared' pool: vmImage: 'macos-10.13' workspace: @@ -71,11 +66,8 @@ jobs: - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) defaultLibrary: shared - template: azure-pipelines/build.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - template: azure-pipelines/darwinunix-artifacts.yml parameters: os: darwin @@ -84,7 +76,7 @@ jobs: libfiles: libui.A.dylib osHeader: ui_darwin.h -- job: darwin_amd64_1014sdk_static +- job: darwin_amd64_static displayName: 'Darwin amd64 10.14 SDK Static' pool: vmImage: 'macos-10.13' @@ -96,11 +88,8 @@ jobs: - template: azure-pipelines/darwin-install-ninja.yml - template: azure-pipelines/configure.yml parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) defaultLibrary: static - template: azure-pipelines/build.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - template: azure-pipelines/darwinunix-artifacts.yml parameters: os: darwin diff --git a/azure-pipelines_main b/azure-pipelines_main index 79327218..17cbdc5f 100644 --- a/azure-pipelines_main +++ b/azure-pipelines_main @@ -221,79 +221,3 @@ jobs: osHeader: ui_windows.h # } - -# more mac { - -- job: darwin_amd64_1012sdk_shared - displayName: 'Darwin amd64 10.12 SDK Shared' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) - -- job: darwin_amd64_1012sdk_static - displayName: 'Darwin amd64 10.12 SDK Static' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.12 Path) - -- job: darwin_amd64_1013sdk_shared - displayName: 'Darwin amd64 10.13 SDK Shared' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) - -- job: darwin_amd64_1013sdk_static - displayName: 'Darwin amd64 10.13 SDK Static' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path) - -# } From 5452f8258fff0c7e24c4df4c8c62d18416a7be66 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:12:35 -0400 Subject: [PATCH 135/210] Let's try a Linux 386 build next! NumPy uses Docker; let's see if the Travis CI thing we did works here too instead. --- azure-pipelines.yml | 51 +++++++++++++++++++++++++++++++------------ azure-pipelines_linux | 3 +++ 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 87fcc79d..34494121 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,31 +4,54 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: darwin_amd64_1014sdk_shared - displayName: 'Darwin amd64 10.14 SDK Shared' +- job: linux_386_shared + displayName: 'Linux 386 Shared' pool: - vmImage: 'macos-10.13' + vmImage: 'ubuntu-16.04' workspace: clean: all steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - script: | - xcodebuild -showsdks - exit 1 - displayName: "Help" + # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 + sudo apt-get install gcc-multilib g++-multilib libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: - beforeConfigure: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig defaultLibrary: shared - template: azure-pipelines/build.yml - parameters: - beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.14 Path) - template: azure-pipelines/darwinunix-artifacts.yml parameters: - os: darwin - arch: amd64 + os: linux + arch: 386 libtype: shared - libfiles: libui.A.dylib - osHeader: ui_darwin.h + libfiles: libui.so.0 + osHeader: ui_unix.h + +- job: linux_386_static + displayName: 'Linux 386 Static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - script: | + # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 + sudo apt-get install gcc-multilib g++-multilib libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + displayName: 'Install Dependencies' + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: static + - template: azure-pipelines/build.yml + - template: azure-pipelines/darwinunix-artifacts.yml + parameters: + os: linux + arch: 386 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h diff --git a/azure-pipelines_linux b/azure-pipelines_linux index adf3ed34..c484d052 100644 --- a/azure-pipelines_linux +++ b/azure-pipelines_linux @@ -54,6 +54,9 @@ jobs: # mac { +# TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? + + - job: darwin_amd64_shared displayName: 'Darwin amd64 Shared' pool: From 6e688b64766ac4a4fae635938c2b2d5acbcb2ee3 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:22:20 -0400 Subject: [PATCH 136/210] Okay, that wasn't quite right... --- azure-pipelines.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 34494121..2940baa5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -14,8 +14,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | + sudo dpkg --add-architecture :i386 + sudo apt-get update + sudo apt-get install libc-dev-i386 gcc-multilib g++-multilib # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install gcc-multilib g++-multilib libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: @@ -40,8 +43,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | + sudo dpkg --add-architecture :i386 + sudo apt-get update + sudo apt-get install libc-dev-i386 gcc-multilib g++-multilib # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install gcc-multilib g++-multilib libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: From 6f26d869f2f7dccb400710b69ff3ff0a7e9e42f6 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:24:47 -0400 Subject: [PATCH 137/210] Oops --- azure-pipelines.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2940baa5..f7f0586d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -14,11 +14,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | - sudo dpkg --add-architecture :i386 + sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install libc-dev-i386 gcc-multilib g++-multilib + sudo apt-get install gcc-multilib g++-multilib # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libc-dev:i386 libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: @@ -43,11 +43,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | - sudo dpkg --add-architecture :i386 + sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install libc-dev-i386 gcc-multilib g++-multilib + sudo apt-get install gcc-multilib g++-multilib # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libc-dev:i386 libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: From 6b2453ab4d557a5e4a13791a8c1405dfd86015c7 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:30:47 -0400 Subject: [PATCH 138/210] Okay, that wasn't quite right; we don't want GCC 5, and I'm not sure why it doesn't want to install GTK+ 3 itself... --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f7f0586d..f8465952 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,9 +16,9 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib + sudo apt-get install gcc-6-multilib g++-6-multilib libc-dev:i386 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libc-dev:i386 libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: From e66257a2b580eaa4323a1770330023f5c23fe5ce Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:33:53 -0400 Subject: [PATCH 139/210] Okay which version of GCC do we want --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f8465952..780cedcd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -14,6 +14,7 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | + gcc --version; exit 1 sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-6-multilib g++-6-multilib libc-dev:i386 From 2ee12f0bcbc2b9c3bae7ae5d423fc9aab8c9ce5d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:36:45 -0400 Subject: [PATCH 140/210] Okay we do want GCC 5 after all, and also ugh in general --- azure-pipelines.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 780cedcd..8ac8a186 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -14,12 +14,11 @@ jobs: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | - gcc --version; exit 1 sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install gcc-6-multilib g++-6-multilib libc-dev:i386 + sudo apt-get install gcc-multilib g++-multilib # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libc6:i386 libc6-dev:i386 libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: @@ -48,7 +47,7 @@ jobs: sudo apt-get update sudo apt-get install gcc-multilib g++-multilib # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libc-dev:i386 libgtk-3-dev:i386 ninja-build libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libc6:i386 libc6-dev:i386 libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: From 9c623253671d28d91d92a37aeff2d7039d1f5279 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:45:37 -0400 Subject: [PATCH 141/210] What is held --- azure-pipelines.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8ac8a186..3d142f78 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,9 +16,10 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib + sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 + dpkg --get-selections | grep hold ; exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libc6:i386 libc6-dev:i386 libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: From b2d3d7f29db4ba032479651ab40823fb1a9705d8 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 02:49:34 -0400 Subject: [PATCH 142/210] Okay, some people say apt-get upgrade is also needed. I'm doubtful, but let's try it. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3d142f78..2574795f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,8 +16,8 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update + sudo apt-get upgrade sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 - dpkg --get-selections | grep hold ; exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' From 574971c58d1033ce071bcc6d33e92bbe7bdc592b Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:00:16 -0400 Subject: [PATCH 143/210] Yep that's what I thought; it tried to update the entire system instead :| Let's check the apt-cache policy. --- azure-pipelines.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2574795f..f91e7b67 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,8 +16,10 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get upgrade sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 + sudo apt-cache policy libwayland-egl1-mesa:i386 + sudo apt-get install libwayland-egl1-mesa:i386 + exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' From 92f0163563745012a173b71e9f8ce803caaf0016 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:05:57 -0400 Subject: [PATCH 144/210] Follow the chain: libwayland-egl1-mesa:i386 -> libegl1-mesa:i386 --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f91e7b67..166c47a2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,8 +17,8 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 - sudo apt-cache policy libwayland-egl1-mesa:i386 - sudo apt-get install libwayland-egl1-mesa:i386 + sudo apt-cache policy libegl1-mesa:i386 + sudo apt-get install libegl1-mesa:i386 exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 From 1372d0d12835240cf0564be6fa2f38d22ff61551 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:15:42 -0400 Subject: [PATCH 145/210] Follow the chain: libeg1-mesa:i386 -> libgl1-mesa-dri:i386 --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 166c47a2..5da16f71 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,8 +17,8 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 - sudo apt-cache policy libegl1-mesa:i386 - sudo apt-get install libegl1-mesa:i386 + sudo apt-cache policy libgl1-mesa-dri:i386 + sudo apt-get install libgl1-mesa-dri:i386 exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 From e98a50b51cccfd6c77902d0ecd774fa84daaaee1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:23:44 -0400 Subject: [PATCH 146/210] Shot in the dark; I'm starting to think the problem really is just outdated packages. --- azure-pipelines.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5da16f71..77ba761a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -15,11 +15,11 @@ jobs: - template: azure-pipelines/install-latest-meson.yml - script: | sudo dpkg --add-architecture i386 - sudo apt-get update + sudo apt-get update --no-download sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 - sudo apt-cache policy libgl1-mesa-dri:i386 - sudo apt-get install libgl1-mesa-dri:i386 - exit 1 + #sudo apt-cache policy libgl1-mesa-dri:i386 + #sudo apt-get install libgl1-mesa-dri:i386 + #exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' From f6022bdcc03045db690ff32626e673ecc97ff1cd Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:30:05 -0400 Subject: [PATCH 147/210] Okay, we have to run sudo apt-get update without --no-download. Try to force apt-get install to ignore updates. --- azure-pipelines.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 77ba761a..69800289 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -15,13 +15,13 @@ jobs: - template: azure-pipelines/install-latest-meson.yml - script: | sudo dpkg --add-architecture i386 - sudo apt-get update --no-download - sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 + sudo apt-get update + sudo apt-get install -t xenial gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 #sudo apt-cache policy libgl1-mesa-dri:i386 #sudo apt-get install libgl1-mesa-dri:i386 #exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install -t xenial libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: From 8634048aba627869e66cbe77401b7f8ad63ae643 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:35:01 -0400 Subject: [PATCH 148/210] Okay, looks like for it to take effect I also need --no-upgrade. --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 69800289..fa9f6ceb 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,12 +16,12 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install -t xenial gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 + sudo apt-get install --no-upgrade -t xenial gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 #sudo apt-cache policy libgl1-mesa-dri:i386 #sudo apt-get install libgl1-mesa-dri:i386 #exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install -t xenial libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install --no-upgrade -t xenial libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: From 16849b0a57c8d9299f177869091b6a150e01f096 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:40:16 -0400 Subject: [PATCH 149/210] Okay, that had no effect, so follow the chain again: libgl1-mesa-dri:i386 -> libllvm6.0:i386 --- azure-pipelines.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fa9f6ceb..e72e82bd 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,12 +16,12 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install --no-upgrade -t xenial gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 - #sudo apt-cache policy libgl1-mesa-dri:i386 - #sudo apt-get install libgl1-mesa-dri:i386 - #exit 1 + sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 + sudo apt-cache policy libllvm6.0:i386 + sudo apt-get install libllvm6.0:i386 + exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install --no-upgrade -t xenial libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 + sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' - template: azure-pipelines/configure.yml parameters: From 08abc9972cd45d8b7d1a185fb378b1425fa196d5 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:50:07 -0400 Subject: [PATCH 150/210] Oh it's lib32 stuff. There used to be a metapackage for this why did they get rid of it --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e72e82bd..194cdcc6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,8 +16,8 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 - sudo apt-cache policy libllvm6.0:i386 + sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 lib32bsd0 lib32bsd0-dev lib32edit2 lib32edit2-dev lib32ffi6 lib32ffi6-dev lib32stdc++6 lib32stdc++6-dev lib32tinfo5 lib32tinfo5-dev lib32z1 lib32z1-dev + #sudo apt-cache policy libllvm6.0:i386 sudo apt-get install libllvm6.0:i386 exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 From d8781c961feebe88c22abc45cf589340f60b6f22 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 03:57:26 -0400 Subject: [PATCH 151/210] One more, because I should have slept an hour ago. Not all those packages are lib32-able, and apparently libc6-i386 is a thing. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 194cdcc6..b750c6d3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,7 +16,7 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib libc6:i386 libc6-dev:i386 lib32bsd0 lib32bsd0-dev lib32edit2 lib32edit2-dev lib32ffi6 lib32ffi6-dev lib32stdc++6 lib32stdc++6-dev lib32tinfo5 lib32tinfo5-dev lib32z1 lib32z1-dev + sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386 lib32edit2 lib32edit2-dev lib32stdc++6 lib32tinfo5 lib32tinfo5-dev lib32z1 lib32z1-dev #sudo apt-cache policy libllvm6.0:i386 sudo apt-get install libllvm6.0:i386 exit 1 From a564d66304f8c8e3e4f15f1d344837f964bf0165 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 04:01:27 -0400 Subject: [PATCH 152/210] Oops, missed a spot. Good night for real. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b750c6d3..018b81bb 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,7 +16,7 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386 lib32edit2 lib32edit2-dev lib32stdc++6 lib32tinfo5 lib32tinfo5-dev lib32z1 lib32z1-dev + sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 #sudo apt-cache policy libllvm6.0:i386 sudo apt-get install libllvm6.0:i386 exit 1 From 416f4b4f70f9b41983d77f4ac2898584c91dec07 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 09:06:49 -0400 Subject: [PATCH 153/210] Let's try installing libgtk-3-0:amd64 just for the heck of it --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 018b81bb..d0c56c0d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,7 +16,7 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 + sudo apt-get install libgtk-3-0 gcc-multilib g++-multilib libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 #sudo apt-cache policy libllvm6.0:i386 sudo apt-get install libllvm6.0:i386 exit 1 From 3129cd7b46d9e9f3b8d82bc521b48b81afe75bf7 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 10:19:44 -0400 Subject: [PATCH 154/210] OKay, let's use apt-cache to see how the packages here are set up. We'll go up the chain. --- azure-pipelines.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d0c56c0d..43a9b78d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,9 +16,10 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install libgtk-3-0 gcc-multilib g++-multilib libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 + sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 + for i in libllvm6.0:i386 libeg1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6.0:i386 - sudo apt-get install libllvm6.0:i386 + #sudo apt-get install libllvm6.0:i386 exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 From a0ce3f1793189a5931716c6c06508d3dabcedfb4 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 10:57:11 -0400 Subject: [PATCH 155/210] Try some more things --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 43a9b78d..d4186c68 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,7 +17,7 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - for i in libllvm6.0:i386 libeg1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done + for i in libllvm6.0:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6.0:i386 #sudo apt-get install libllvm6.0:i386 exit 1 From 9f1b19eb9398ae145dd6a403c3f6981117a4b1ee Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:06:55 -0400 Subject: [PATCH 156/210] Try something else --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d4186c68..c56a7e47 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,6 +17,7 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 + sudo apt-cache search '.*-lts-xenial$' ; exit 1 for i in libllvm6.0:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6.0:i386 #sudo apt-get install libllvm6.0:i386 From c2f79d98c51a703a59d5d7b7f46b34e647836957 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:15:56 -0400 Subject: [PATCH 157/210] Okay I think we've got it this time???? --- azure-pipelines.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c56a7e47..dc726225 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,11 +17,10 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-cache search '.*-lts-xenial$' ; exit 1 - for i in libllvm6.0:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done + sudo apt-get install libwayland-egl1-mesa-lts-xenial:i386 || exit 1 + #for i in libllvm6.0:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6.0:i386 #sudo apt-get install libllvm6.0:i386 - exit 1 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' From 4e3a69c5f3a0a657d5e5b8fd40cddb1cda7d665c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:20:12 -0400 Subject: [PATCH 158/210] Not yet --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index dc726225..adf6cdab 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,7 +17,7 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-get install libwayland-egl1-mesa-lts-xenial:i386 || exit 1 + sudo apt-get install libegl1-mesa-lts-xenial:i386 || exit 1 #for i in libllvm6.0:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6.0:i386 #sudo apt-get install libllvm6.0:i386 From e33612e1c98f67a6e80264df70336ffa1c591608 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:25:27 -0400 Subject: [PATCH 159/210] One more shot here --- azure-pipelines.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index adf6cdab..0e9a05fa 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,8 +17,9 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-get install libegl1-mesa-lts-xenial:i386 || exit 1 - #for i in libllvm6.0:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done + sudo apt-cache show libgl1-mesa-dri:i386 + sudo apt-get install libgl1-mesa-dri-lts-xenial:i386 || exit 1 + #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6.0:i386 #sudo apt-get install libllvm6.0:i386 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 From cebfec8c2c7c1003a849dd9a9512fcc3962bc212 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:35:05 -0400 Subject: [PATCH 160/210] Try doing what the wiki suggests. --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0e9a05fa..ba128783 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,8 +17,7 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-cache show libgl1-mesa-dri:i386 - sudo apt-get install libgl1-mesa-dri-lts-xenial:i386 || exit 1 + sudo apt-get install --install-recommends linux-generic-lts-xenial xserver-xorg-core-lts-xenial xserver-xorg-lts-xenial xserver-xorg-video-all-lts-xenial xserver-xorg-input-all-lts-xenial libwayland-egl1-mesa-lts-xenial libgl1-mesa-glx-lts-xenial libgl1-mesa-glx-lts-xenial:i386 libglapi-mesa-lts-xenial:i386 || exit 1 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6.0:i386 #sudo apt-get install libllvm6.0:i386 @@ -45,6 +44,7 @@ jobs: workspace: clean: all steps: + - script 1 - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | From 8b9fa82616ca35ddd38696de21a8edeee8363aae Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:37:58 -0400 Subject: [PATCH 161/210] Oops --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ba128783..ad48fc3f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -44,7 +44,7 @@ jobs: workspace: clean: all steps: - - script 1 + - script: exit 1 - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - script: | From ef87e005435ede821ea5cd1280e1c0516c37ddd3 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:44:28 -0400 Subject: [PATCH 162/210] Let's try other stuff --- azure-pipelines.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ad48fc3f..26c21ad9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,7 +17,8 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-get install --install-recommends linux-generic-lts-xenial xserver-xorg-core-lts-xenial xserver-xorg-lts-xenial xserver-xorg-video-all-lts-xenial xserver-xorg-input-all-lts-xenial libwayland-egl1-mesa-lts-xenial libgl1-mesa-glx-lts-xenial libgl1-mesa-glx-lts-xenial:i386 libglapi-mesa-lts-xenial:i386 || exit 1 + sudo apt-cache policy libllvm6-0:i386 + sudo apt-cache show libllvm6-0:i386 ; exit 1 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6.0:i386 #sudo apt-get install libllvm6.0:i386 From f7d6d2db894ca453e25527d225f139bd30e78faa Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:49:46 -0400 Subject: [PATCH 163/210] Oops; also I might have one last trick up my sleeves... --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 26c21ad9..aeb2f995 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -20,8 +20,8 @@ jobs: sudo apt-cache policy libllvm6-0:i386 sudo apt-cache show libllvm6-0:i386 ; exit 1 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done - #sudo apt-cache policy libllvm6.0:i386 - #sudo apt-get install libllvm6.0:i386 + #sudo apt-cache policy libllvm6-0:i386 + #sudo apt-get install libllvm6-0:i386 # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 displayName: 'Install Dependencies' From 9fad02d6891188ba3b416f38fe6f54e81684c23d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 11:55:41 -0400 Subject: [PATCH 164/210] ?????? --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index aeb2f995..00c2c3e3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,8 +17,8 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-cache policy libllvm6-0:i386 - sudo apt-cache show libllvm6-0:i386 ; exit 1 + sudo apt-cache policy libllvm6.0 + sudo apt-cache show libllvm6.0 ; exit 1 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6-0:i386 #sudo apt-get install libllvm6-0:i386 From b6ba770c1239630f9131fd8a077047250bdf7a0b Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 12:05:05 -0400 Subject: [PATCH 165/210] Okay let's try this now --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 00c2c3e3..f32bb6c5 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,8 +17,8 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-cache policy libllvm6.0 - sudo apt-cache show libllvm6.0 ; exit 1 + sudo apt-get install libllvm6.0:i386=1:6.0.1~svn334776-1~exp1~20190124082834.118 ; echo 1 + sudo apt-get upgrade libgtk-3-0 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6-0:i386 #sudo apt-get install libllvm6-0:i386 From 3813e520b577af25448208a4793a25b7adc13f92 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 12:51:19 -0400 Subject: [PATCH 166/210] Urgh. I guess we'll have to try downgrading? --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f32bb6c5..225b54b2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,7 +17,7 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-get install libllvm6.0:i386=1:6.0.1~svn334776-1~exp1~20190124082834.118 ; echo 1 + sudo apt-get install libllvm6.0=1:6.0-1ubuntu2~16.04.1 ; exit 1 sudo apt-get upgrade libgtk-3-0 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6-0:i386 From d53d68226db87be9657c78056ae62106b6fdf354 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 13:02:23 -0400 Subject: [PATCH 167/210] I guess we'll need to do this :/ --- azure-pipelines.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 225b54b2..86df4006 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,8 +17,11 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - sudo apt-get install libllvm6.0=1:6.0-1ubuntu2~16.04.1 ; exit 1 - sudo apt-get upgrade libgtk-3-0 + # Azure Pipelines ships with a patched version of this and that patch is only available on 64-bit systems + # This is a dependency of Mesa, so we'll have to downgrade to the stock distro ones :/ + llvmPackages= + for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done + sudo apt-get install $llvmPackages; exit 1 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6-0:i386 #sudo apt-get install libllvm6-0:i386 From b2c44efd7f9abd671846c6d130587dbd53a2c362 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 13:07:37 -0400 Subject: [PATCH 168/210] More complete package list --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 86df4006..2fcdbe08 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,10 +17,10 @@ jobs: sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 - # Azure Pipelines ships with a patched version of this and that patch is only available on 64-bit systems + # Azure Pipelines ships with a patched version of this and that patch is only available on 64-bit systems, so trying to install the 32-bit versions will remove the 64-bit versions outright # This is a dependency of Mesa, so we'll have to downgrade to the stock distro ones :/ llvmPackages= - for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done + for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0 libclang1-6.0 llvm-6.0; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done sudo apt-get install $llvmPackages; exit 1 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6-0:i386 From 9660c15fd131af3efa19931ec9a701912482d43a Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 13:13:44 -0400 Subject: [PATCH 169/210] More missing packages --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2fcdbe08..a0777971 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -20,7 +20,7 @@ jobs: # Azure Pipelines ships with a patched version of this and that patch is only available on 64-bit systems, so trying to install the 32-bit versions will remove the 64-bit versions outright # This is a dependency of Mesa, so we'll have to downgrade to the stock distro ones :/ llvmPackages= - for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0 libclang1-6.0 llvm-6.0; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done + for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0 libclang1-6.0 llvm-6.0 llvm-6.0-runtime; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done sudo apt-get install $llvmPackages; exit 1 #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6-0:i386 From dffdb63f014030d46d7b9b39b6033f04de8106d6 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 13:27:48 -0400 Subject: [PATCH 170/210] All right, that's the full list of packages. Now let's actually try this! --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a0777971..f381a263 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,12 +16,12 @@ jobs: - script: | sudo dpkg --add-architecture i386 sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev || exit 1 + sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev # Azure Pipelines ships with a patched version of this and that patch is only available on 64-bit systems, so trying to install the 32-bit versions will remove the 64-bit versions outright # This is a dependency of Mesa, so we'll have to downgrade to the stock distro ones :/ llvmPackages= for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0 libclang1-6.0 llvm-6.0 llvm-6.0-runtime; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done - sudo apt-get install $llvmPackages; exit 1 + sudo apt-get install --allow-downgrades $llvmPackages #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done #sudo apt-cache policy libllvm6-0:i386 #sudo apt-get install libllvm6-0:i386 From 85544275d02968c535104ee53c895dd3ce29d2c7 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 13:45:02 -0400 Subject: [PATCH 171/210] All right, now split all those steps into its own file, clean up all the debugging nonsense, and apply it to the static build as well. Let's hope the artifacts are useful! --- azure-pipelines.yml | 25 ++----------------- .../linux-386-install-gtk-dev-ninja.yml | 16 ++++++++++++ 2 files changed, 18 insertions(+), 23 deletions(-) create mode 100644 azure-pipelines/linux-386-install-gtk-dev-ninja.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f381a263..86bd91ec 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,21 +13,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev - # Azure Pipelines ships with a patched version of this and that patch is only available on 64-bit systems, so trying to install the 32-bit versions will remove the 64-bit versions outright - # This is a dependency of Mesa, so we'll have to downgrade to the stock distro ones :/ - llvmPackages= - for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0 libclang1-6.0 llvm-6.0 llvm-6.0-runtime; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done - sudo apt-get install --allow-downgrades $llvmPackages - #for i in libllvm6.0:i386 libgl1-mea-dri:i386 libegl1-mesa:i386 libwayland-egl1-mesa:i386 libgtk-3-0:i386 libwayland-egl1:i386; do sudo apt-cache show $i ; echo ; echo '----------------' ; echo ; done - #sudo apt-cache policy libllvm6-0:i386 - #sudo apt-get install libllvm6-0:i386 - # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 - displayName: 'Install Dependencies' + - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig @@ -48,16 +34,9 @@ jobs: workspace: clean: all steps: - - script: exit 1 - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib - # the ones after ninja-build fix broken dependencies of libgtk-3-0:i386 - sudo apt-get install libc6:i386 libc6-dev:i386 libgtk-3-0:i386 libgtk-3-dev:i386 ninja-build # libgirepository-1.0-1:i386 libglib2.0-dev:i386 gir1.2-glib-2.0:i386 gir1.2-atk-1.0:i386 libatk1.0-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcairo2-dev:i386 libgdk-pixbuf2.0-dev:i386 libpango1.0-dev:i386 libxft-dev:i386 libpng12-dev:i386 - displayName: 'Install Dependencies' + - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml - template: azure-pipelines/configure.yml parameters: beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig diff --git a/azure-pipelines/linux-386-install-gtk-dev-ninja.yml b/azure-pipelines/linux-386-install-gtk-dev-ninja.yml new file mode 100644 index 00000000..5c094de8 --- /dev/null +++ b/azure-pipelines/linux-386-install-gtk-dev-ninja.yml @@ -0,0 +1,16 @@ +# 7 april 2019 + +# TODO figure out how to get meson to recognize the compiler is producing 32-bit output + +steps: +- script: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev + # Azure Pipelines ships with a patched version of this and that patch is only available on 64-bit systems, so trying to install the 32-bit versions will remove the 64-bit versions outright + # This is a dependency of Mesa, so we'll have to downgrade to the stock distro ones :/ + llvmPackages= + for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0 libclang1-6.0 llvm-6.0 llvm-6.0-runtime; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done + sudo apt-get install --allow-downgrades $llvmPackages + sudo apt-get install libgtk-3-dev:i386 ninja-build + displayName: 'Install GTK+ Dev Files and Ninja' From 9dc7a2bc7fb890e376826fcfab9bf7ca25fd2070 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 14:04:57 -0400 Subject: [PATCH 172/210] Try to speed up the build process by consolidating all the apt-get installs into one. These 386 binaries do work, at least. --- _travis_yml | 31 ------------------- .../linux-386-install-gtk-dev-ninja.yml | 11 ++++--- 2 files changed, 6 insertions(+), 36 deletions(-) diff --git a/_travis_yml b/_travis_yml index 7e7082ba..244e8fc6 100644 --- a/_travis_yml +++ b/_travis_yml @@ -1,35 +1,4 @@ -include: &toolchain_linux_386 - os: linux - dist: trusty - addons: - apt: - packages: - - ninja-build - - gcc-multilib - - g++-multilib - - libgtk-3-dev:i386 - # the rest fixes broken dependencies of libgtk:i386 - - libgirepository-1.0-1:i386 - - libglib2.0-dev:i386 - - gir1.2-glib-2.0:i386 - - gir1.2-atk-1.0:i386 - - libatk1.0-dev:i386 - - libfreetype6-dev:i386 - - libfontconfig1-dev:i386 - - libcairo2-dev:i386 - - libgdk-pixbuf2.0-dev:i386 - - libpango1.0-dev:i386 - - libxft-dev:i386 - - libpng12-dev:i386 - -install: - - if [[ "${arch}" == "386" ]]; then - export CFLAGS=-m32; - export CXXFLAGS=-m32; - export PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig; - fi - deploy: provider: releases api_key: diff --git a/azure-pipelines/linux-386-install-gtk-dev-ninja.yml b/azure-pipelines/linux-386-install-gtk-dev-ninja.yml index 5c094de8..4856279a 100644 --- a/azure-pipelines/linux-386-install-gtk-dev-ninja.yml +++ b/azure-pipelines/linux-386-install-gtk-dev-ninja.yml @@ -4,13 +4,14 @@ steps: - script: | - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install gcc-multilib g++-multilib || echo 1 # libc6-i386 libc6-dev-i386 lib32stdc++6 lib32tinfo5 lib32tinfo-dev lib32z1 lib32z1-dev # Azure Pipelines ships with a patched version of this and that patch is only available on 64-bit systems, so trying to install the 32-bit versions will remove the 64-bit versions outright # This is a dependency of Mesa, so we'll have to downgrade to the stock distro ones :/ llvmPackages= for i in libllvm6.0 clang-6.0 libclang-common-6.0-dev liblldb-6.0 liblldb-6.0-dev lld-6.0 lldb-6.0 llvm-6.0-dev python-lldb-6.0 libclang1-6.0 llvm-6.0 llvm-6.0-runtime; do llvmPackages="$llvmPackages $i=1:6.0-1ubuntu2~16.04.1"; done - sudo apt-get install --allow-downgrades $llvmPackages - sudo apt-get install libgtk-3-dev:i386 ninja-build + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install --allow-downgrades \ + gcc-multilib g++-multilib \ + $llvmPackages \ + libgtk-3-dev:i386 ninja-build displayName: 'Install GTK+ Dev Files and Ninja' From 30a363baf147eaae51cd02e7a7982d5d9bd3c998 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 14:24:16 -0400 Subject: [PATCH 173/210] Normalized template filenames and split the 64-bit apt-get step into its own template. --- azure-pipelines.yml | 4 ++-- .../{darwinunix-artifacts.yml => artifacts.yml} | 0 azure-pipelines/linux-install-gtk-dev-ninja.yml | 6 ++++++ azure-pipelines_linux | 16 ++++++---------- 4 files changed, 14 insertions(+), 12 deletions(-) rename azure-pipelines/{darwinunix-artifacts.yml => artifacts.yml} (100%) create mode 100644 azure-pipelines/linux-install-gtk-dev-ninja.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 86bd91ec..44874fc7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -19,7 +19,7 @@ jobs: beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig defaultLibrary: shared - template: azure-pipelines/build.yml - - template: azure-pipelines/darwinunix-artifacts.yml + - template: azure-pipelines/artifacts.yml parameters: os: linux arch: 386 @@ -42,7 +42,7 @@ jobs: beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig defaultLibrary: static - template: azure-pipelines/build.yml - - template: azure-pipelines/darwinunix-artifacts.yml + - template: azure-pipelines/artifacts.yml parameters: os: linux arch: 386 diff --git a/azure-pipelines/darwinunix-artifacts.yml b/azure-pipelines/artifacts.yml similarity index 100% rename from azure-pipelines/darwinunix-artifacts.yml rename to azure-pipelines/artifacts.yml diff --git a/azure-pipelines/linux-install-gtk-dev-ninja.yml b/azure-pipelines/linux-install-gtk-dev-ninja.yml new file mode 100644 index 00000000..959d4c11 --- /dev/null +++ b/azure-pipelines/linux-install-gtk-dev-ninja.yml @@ -0,0 +1,6 @@ +# 7 april 2019 + +steps: +- script: | + sudo apt-get install libgtk-3-dev ninja-build + displayName: 'Install GTK+ Dev Files and Ninja' diff --git a/azure-pipelines_linux b/azure-pipelines_linux index c484d052..1fbf9b23 100644 --- a/azure-pipelines_linux +++ b/azure-pipelines_linux @@ -13,14 +13,12 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - sudo apt-get install libgtk-3-dev ninja-build - displayName: 'Install Dependencies' + - template: azure-pipelines/linux-install-gtk-dev-ninja.yml - template: azure-pipelines/configure.yml parameters: defaultLibrary: shared - template: azure-pipelines/build.yml - - template: azure-pipelines/darwinunix-artifacts.yml + - template: azure-pipelines/artifacts.yml parameters: os: linux arch: amd64 @@ -37,14 +35,12 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: | - sudo apt-get install libgtk-3-dev ninja-build - displayName: 'Install Dependencies' + - template: azure-pipelines/linux-install-gtk-dev-ninja.yml - template: azure-pipelines/configure.yml parameters: defaultLibrary: static - template: azure-pipelines/build.yml - - template: azure-pipelines/darwinunix-artifacts.yml + - template: azure-pipelines/artifacts.yml parameters: os: linux arch: amd64 @@ -71,7 +67,7 @@ jobs: parameters: defaultLibrary: shared - template: azure-pipelines/build.yml - - template: azure-pipelines/darwinunix-artifacts.yml + - template: azure-pipelines/artifacts.yml parameters: os: darwin arch: amd64 @@ -93,7 +89,7 @@ jobs: parameters: defaultLibrary: static - template: azure-pipelines/build.yml - - template: azure-pipelines/darwinunix-artifacts.yml + - template: azure-pipelines/artifacts.yml parameters: os: darwin arch: amd64 From 87bdb4e736623f8d6c0e22b483622e42456a792d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 14:28:08 -0400 Subject: [PATCH 174/210] Moved the linux 386 steps to azure-pipelines_linux. Next up is trying the MinGW-w64 setup again, but using the MinGW-w64 in Linux instead of Windows. --- azure-pipelines.yml | 23 ------------------- azure-pipelines_linux | 52 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 24 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 44874fc7..61ab748d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,29 +4,6 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: linux_386_shared - displayName: 'Linux 386 Shared' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig - defaultLibrary: shared - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: 386 - libtype: shared - libfiles: libui.so.0 - osHeader: ui_unix.h - - job: linux_386_static displayName: 'Linux 386 Static' pool: diff --git a/azure-pipelines_linux b/azure-pipelines_linux index 1fbf9b23..a828ec4d 100644 --- a/azure-pipelines_linux +++ b/azure-pipelines_linux @@ -4,6 +4,55 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: + +# linux { + +- job: linux_386_shared + displayName: 'Linux 386 Shared' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: shared + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: 386 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h + +- job: linux_386_static + displayName: 'Linux 386 Static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: static + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: 386 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h + - job: linux_amd64_shared displayName: 'Linux amd64 Shared' pool: @@ -48,11 +97,12 @@ jobs: libfiles: libui.a osHeader: ui_unix.h +# } + # mac { # TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? - - job: darwin_amd64_shared displayName: 'Darwin amd64 Shared' pool: From 2dcdbe02c9a1525cd732646138b6cd689f459f82 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 15:32:01 -0400 Subject: [PATCH 175/210] Let's try using Linxu MinGW-w64. --- azure-pipelines.yml | 18 +++++++++--------- azure-pipelines/configure.yml | 3 ++- azure-pipelines/cross-386-mingw.txt | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 10 deletions(-) create mode 100644 azure-pipelines/cross-386-mingw.txt diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 61ab748d..4732411a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,16 +13,16 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml + - script: sudo apt-get install ninja-build - template: azure-pipelines/configure.yml parameters: - beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig defaultLibrary: static + extraOptions: --cross-file=azure-pipelines/cross-386-mingw.txt - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: 386 - libtype: static - libfiles: libui.a - osHeader: ui_unix.h +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: linux +# arch: 386 +# libtype: static +# libfiles: libui.a +# osHeader: ui_unix.h diff --git a/azure-pipelines/configure.yml b/azure-pipelines/configure.yml index aec307fe..f4bada4d 100644 --- a/azure-pipelines/configure.yml +++ b/azure-pipelines/configure.yml @@ -3,9 +3,10 @@ parameters: beforeConfigure: '' defaultLibrary: 'must-be-set' + extraOptions: '' steps: - script: | ${{ parameters.beforeConfigure }} - meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary }} + meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary }} ${{ parameters.extraOptions }} displayName: 'Configure' diff --git a/azure-pipelines/cross-386-mingw.txt b/azure-pipelines/cross-386-mingw.txt new file mode 100644 index 00000000..7e6d221d --- /dev/null +++ b/azure-pipelines/cross-386-mingw.txt @@ -0,0 +1,16 @@ +[binaries] +c = '/usr/bin/i686-w64-mingw32-gcc-win32' +cpp = '/usr/bin/i686-w64-mingw32-g++-win32' +ar = '/usr/bin/i686-w64-mingw32-gcc-ar-win32' +strip = '/usr/bin/i686-w64-mingw32-strip' +pkgconfig = '/usr/bin/i686-w64-mingw32-pkg-config' +windres = '/usr/bin/i686-w64-mingw32-windres' + +[properties] +root = '/usr/i686-w64-mingw32' + +[host_machine] +system = 'windows' +cpu_family = 'x86' +cpu = 'i686' +endian = 'little' From 8b908aedc182b6589e5ebb8b65cf8aa2f050ce67 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 15:34:40 -0400 Subject: [PATCH 176/210] Oops, MinGW-w64 isn't installed by default. --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4732411a..175bcf5d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,7 +13,7 @@ jobs: steps: - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - script: sudo apt-get install ninja-build + - script: sudo apt-get install mingw-w64 ninja-build - template: azure-pipelines/configure.yml parameters: defaultLibrary: static From 31a91d6fc0b63afb8cea039f2f72009a687d257d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 15:45:27 -0400 Subject: [PATCH 177/210] Hm. --- azure-pipelines/cross-386-mingw.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/azure-pipelines/cross-386-mingw.txt b/azure-pipelines/cross-386-mingw.txt index 7e6d221d..c980dd16 100644 --- a/azure-pipelines/cross-386-mingw.txt +++ b/azure-pipelines/cross-386-mingw.txt @@ -8,6 +8,8 @@ windres = '/usr/bin/i686-w64-mingw32-windres' [properties] root = '/usr/i686-w64-mingw32' +c_args = ['--std=c99'] +cpp_args = ['--std=c++11'] [host_machine] system = 'windows' From 46459dc8b2aa52f9b82950f51d7e246706227ee3 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 15:52:41 -0400 Subject: [PATCH 178/210] OK then, it's a meson bug. Also -win32 doesn't have C++11 threads :| --- azure-pipelines/cross-386-mingw.txt | 8 +++----- azure-pipelines/install-latest-meson.yml | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/azure-pipelines/cross-386-mingw.txt b/azure-pipelines/cross-386-mingw.txt index c980dd16..4e5b5b49 100644 --- a/azure-pipelines/cross-386-mingw.txt +++ b/azure-pipelines/cross-386-mingw.txt @@ -1,15 +1,13 @@ [binaries] -c = '/usr/bin/i686-w64-mingw32-gcc-win32' -cpp = '/usr/bin/i686-w64-mingw32-g++-win32' -ar = '/usr/bin/i686-w64-mingw32-gcc-ar-win32' +c = '/usr/bin/i686-w64-mingw32-gcc' +cpp = '/usr/bin/i686-w64-mingw32-g++' +ar = '/usr/bin/i686-w64-mingw32-gcc-ar' strip = '/usr/bin/i686-w64-mingw32-strip' pkgconfig = '/usr/bin/i686-w64-mingw32-pkg-config' windres = '/usr/bin/i686-w64-mingw32-windres' [properties] root = '/usr/i686-w64-mingw32' -c_args = ['--std=c99'] -cpp_args = ['--std=c++11'] [host_machine] system = 'windows' diff --git a/azure-pipelines/install-latest-meson.yml b/azure-pipelines/install-latest-meson.yml index 4c86a01e..588bd9d7 100644 --- a/azure-pipelines/install-latest-meson.yml +++ b/azure-pipelines/install-latest-meson.yml @@ -3,5 +3,6 @@ steps: - script: | python -m pip install --upgrade pip setuptools wheel - pip install meson + # 0.50.0 has a bug that prevents cross-builds (like our MinGW-w64 build) to not work properly + pip install 'meson!=0.50.0' displayName: 'Install Latest Meson' From 93383cd45a0dada3fe44ab4eee87dd5884ae03fd Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 15:57:53 -0400 Subject: [PATCH 179/210] Oh, the altenratives use win32 by default. --- azure-pipelines/cross-386-mingw.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines/cross-386-mingw.txt b/azure-pipelines/cross-386-mingw.txt index 4e5b5b49..d5ef59ad 100644 --- a/azure-pipelines/cross-386-mingw.txt +++ b/azure-pipelines/cross-386-mingw.txt @@ -1,7 +1,7 @@ [binaries] -c = '/usr/bin/i686-w64-mingw32-gcc' -cpp = '/usr/bin/i686-w64-mingw32-g++' -ar = '/usr/bin/i686-w64-mingw32-gcc-ar' +c = '/usr/bin/i686-w64-mingw32-gcc-posix' +cpp = '/usr/bin/i686-w64-mingw32-g++-posix' +ar = '/usr/bin/i686-w64-mingw32-gcc-ar-posix' strip = '/usr/bin/i686-w64-mingw32-strip' pkgconfig = '/usr/bin/i686-w64-mingw32-pkg-config' windres = '/usr/bin/i686-w64-mingw32-windres' From 851bbfe74f665d934fdab859f1724a0c70960602 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 16:06:17 -0400 Subject: [PATCH 180/210] And the MinGW-w64 in Ubuntu 16.04 is too old. Oh well. --- azure-pipelines.yml | 22 ---------------------- azure-pipelines/configure.yml | 3 +-- azure-pipelines/cross-386-mingw.txt | 16 ---------------- azure-pipelines/install-latest-meson.yml | 3 +-- 4 files changed, 2 insertions(+), 42 deletions(-) delete mode 100644 azure-pipelines/cross-386-mingw.txt diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 175bcf5d..e6df8338 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,25 +4,3 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: -- job: linux_386_static - displayName: 'Linux 386 Static' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - script: sudo apt-get install mingw-w64 ninja-build - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - extraOptions: --cross-file=azure-pipelines/cross-386-mingw.txt - - template: azure-pipelines/build.yml -# - template: azure-pipelines/artifacts.yml -# parameters: -# os: linux -# arch: 386 -# libtype: static -# libfiles: libui.a -# osHeader: ui_unix.h diff --git a/azure-pipelines/configure.yml b/azure-pipelines/configure.yml index f4bada4d..aec307fe 100644 --- a/azure-pipelines/configure.yml +++ b/azure-pipelines/configure.yml @@ -3,10 +3,9 @@ parameters: beforeConfigure: '' defaultLibrary: 'must-be-set' - extraOptions: '' steps: - script: | ${{ parameters.beforeConfigure }} - meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary }} ${{ parameters.extraOptions }} + meson setup build --buildtype=release --default-library=${{ parameters.defaultLibrary }} displayName: 'Configure' diff --git a/azure-pipelines/cross-386-mingw.txt b/azure-pipelines/cross-386-mingw.txt deleted file mode 100644 index d5ef59ad..00000000 --- a/azure-pipelines/cross-386-mingw.txt +++ /dev/null @@ -1,16 +0,0 @@ -[binaries] -c = '/usr/bin/i686-w64-mingw32-gcc-posix' -cpp = '/usr/bin/i686-w64-mingw32-g++-posix' -ar = '/usr/bin/i686-w64-mingw32-gcc-ar-posix' -strip = '/usr/bin/i686-w64-mingw32-strip' -pkgconfig = '/usr/bin/i686-w64-mingw32-pkg-config' -windres = '/usr/bin/i686-w64-mingw32-windres' - -[properties] -root = '/usr/i686-w64-mingw32' - -[host_machine] -system = 'windows' -cpu_family = 'x86' -cpu = 'i686' -endian = 'little' diff --git a/azure-pipelines/install-latest-meson.yml b/azure-pipelines/install-latest-meson.yml index 588bd9d7..4c86a01e 100644 --- a/azure-pipelines/install-latest-meson.yml +++ b/azure-pipelines/install-latest-meson.yml @@ -3,6 +3,5 @@ steps: - script: | python -m pip install --upgrade pip setuptools wheel - # 0.50.0 has a bug that prevents cross-builds (like our MinGW-w64 build) to not work properly - pip install 'meson!=0.50.0' + pip install meson displayName: 'Install Latest Meson' From b85c5c542acd826b66c355a2e70a63b7e9f40241 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 16:11:59 -0400 Subject: [PATCH 181/210] Merged all the files back together. --- azure-pipelines.yml | 364 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 364 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e6df8338..d6f807b1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,3 +4,367 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' jobs: + +# linux { + +- job: linux_386_shared + displayName: 'Linux 386 Shared' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: shared + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: 386 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h + +- job: linux_386_static + displayName: 'Linux 386 Static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: static + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: 386 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h + +- job: linux_amd64_shared + displayName: 'Linux amd64 Shared' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: shared + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h + +- job: linux_amd64_static + displayName: 'Linux amd64 Static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h + +# } + +# windows vs2015 { + +- job: windows_386_msvc2015_shared + displayName: 'Windows 386 MSVC2015 Shared' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2015 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_386_msvc2015_static + displayName: 'Windows 386 MSVC2015 Static' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +- job: windows_amd64_msvc2015_shared + displayName: 'Windows amd64 MSVC2015 Shared' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2015 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_amd64_msvc2015_static + displayName: 'Windows amd64 MSVC2015 Static' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +# } + +# windows vs2017 { + +- job: windows_386_msvc2017_shared + displayName: 'Windows 386 MSVC2017 Shared' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_386_msvc2017_static + displayName: 'Windows 386 MSVC2017 Static' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +- job: windows_amd64_msvc2017_shared + displayName: 'Windows amd64 MSVC2017 Shared' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_amd64_msvc2017_static + displayName: 'Windows amd64 MSVC2017 Static' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2017 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +# } + +# mac { + +# TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? + +- job: darwin_amd64_shared + displayName: 'Darwin amd64 Shared' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: shared + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: shared + libfiles: libui.A.dylib + osHeader: ui_darwin.h + +- job: darwin_amd64_static + displayName: 'Darwin amd64 10.14 SDK Static' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_darwin.h + +# } From 0969f4319648f89b2b10905fd31cb261dc53e14d Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 16:12:12 -0400 Subject: [PATCH 182/210] Delete the now-merged files. --- azure-pipelines_linux | 150 ---------------------------- azure-pipelines_main | 223 ------------------------------------------ 2 files changed, 373 deletions(-) delete mode 100644 azure-pipelines_linux delete mode 100644 azure-pipelines_main diff --git a/azure-pipelines_linux b/azure-pipelines_linux deleted file mode 100644 index a828ec4d..00000000 --- a/azure-pipelines_linux +++ /dev/null @@ -1,150 +0,0 @@ -# 31 march 2019 - -variables: - releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' - -jobs: - -# linux { - -- job: linux_386_shared - displayName: 'Linux 386 Shared' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig - defaultLibrary: shared - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: 386 - libtype: shared - libfiles: libui.so.0 - osHeader: ui_unix.h - -- job: linux_386_static - displayName: 'Linux 386 Static' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig - defaultLibrary: static - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: 386 - libtype: static - libfiles: libui.a - osHeader: ui_unix.h - -- job: linux_amd64_shared - displayName: 'Linux amd64 Shared' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-install-gtk-dev-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: shared - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: amd64 - libtype: shared - libfiles: libui.so.0 - osHeader: ui_unix.h - -- job: linux_amd64_static - displayName: 'Linux amd64 Static' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-install-gtk-dev-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: amd64 - libtype: static - libfiles: libui.a - osHeader: ui_unix.h - -# } - -# mac { - -# TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? - -- job: darwin_amd64_shared - displayName: 'Darwin amd64 Shared' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: shared - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: darwin - arch: amd64 - libtype: shared - libfiles: libui.A.dylib - osHeader: ui_darwin.h - -- job: darwin_amd64_static - displayName: 'Darwin amd64 10.14 SDK Static' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: darwin - arch: amd64 - libtype: static - libfiles: libui.a - osHeader: ui_darwin.h - -# } diff --git a/azure-pipelines_main b/azure-pipelines_main deleted file mode 100644 index 17cbdc5f..00000000 --- a/azure-pipelines_main +++ /dev/null @@ -1,223 +0,0 @@ -# 31 march 2019 - -jobs: - -# vs2015 { - -- job: windows_386_msvc2015_shared - displayName: 'Windows 386 MSVC2015 Shared' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2015 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h - -- job: windows_386_msvc2015_static - displayName: 'Windows 386 MSVC2015 Static' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2015 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -- job: windows_amd64_msvc2015_shared - displayName: 'Windows amd64 MSVC2015 Shared' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: amd64 - toolchain: msvc2015 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h - -- job: windows_amd64_msvc2015_static - displayName: 'Windows amd64 MSVC2015 Static' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: amd64 - toolchain: msvc2015 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -# } - -# vs2017 { - -- job: windows_386_msvc2017_shared - displayName: 'Windows 386 MSVC2017 Shared' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2017 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h - -- job: windows_386_msvc2017_static - displayName: 'Windows 386 MSVC2017 Static' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2017 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -- job: windows_amd64_msvc2017_shared - displayName: 'Windows amd64 MSVC2017 Shared' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: amd64 - toolchain: msvc2017 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h - -- job: windows_amd64_msvc2017_static - displayName: 'Windows amd64 MSVC2017 Static' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: amd64 - toolchain: msvc2017 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -# } From 9b483d972d23840afe84303470eac99a3cf25e15 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 16:34:22 -0400 Subject: [PATCH 183/210] Wrote a script to diff all the jobs we have so I can matrix-ify them. --- azure-pipelines.yml | 2 +- collapse.awk | 43 +++++++ collapsed | 298 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 342 insertions(+), 1 deletion(-) create mode 100644 collapse.awk create mode 100644 collapsed diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d6f807b1..125cfb34 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -346,7 +346,7 @@ jobs: osHeader: ui_darwin.h - job: darwin_amd64_static - displayName: 'Darwin amd64 10.14 SDK Static' + displayName: 'Darwin amd64 Static' pool: vmImage: 'macos-10.13' workspace: diff --git a/collapse.awk b/collapse.awk new file mode 100644 index 00000000..d10b9bba --- /dev/null +++ b/collapse.awk @@ -0,0 +1,43 @@ +# 7 april 2019 + +BEGIN { + RS = "" + FS = "\n +- " +} + +/^- job:/ { + for (i = 1; i <= NF; i++) { + if (!(i in nextindex)) { + # fast path for first occurrence + lines[i, 0] = $i + nextindex[i] = 1 + if (maxIndex < i) + maxIndex = i + continue + } + found = 0 + for (j = 0; j < nextindex[i]; j++) + if (lines[i, j] == $i) { + found = 1 + break + } + if (!found) { + lines[i, nextindex[i]] = $i + nextindex[i]++ + } + } +} + +END { + for (i = 1; i <= maxIndex; i++) { + if (nextindex[i] == 1) { + # only one entry here, just print it + print "- " lines[i, 0] + continue + } + print "{" + for (j = 0; j < nextindex[i]; j++) + print "- " lines[i, j] + print "}" + } +} diff --git a/collapsed b/collapsed new file mode 100644 index 00000000..fde0a40d --- /dev/null +++ b/collapsed @@ -0,0 +1,298 @@ +{ +- - job: linux_386_shared + displayName: 'Linux 386 Shared' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: +- - job: linux_386_static + displayName: 'Linux 386 Static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: +- - job: linux_amd64_shared + displayName: 'Linux amd64 Shared' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: +- - job: linux_amd64_static + displayName: 'Linux amd64 Static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: +- - job: windows_386_msvc2015_shared + displayName: 'Windows 386 MSVC2015 Shared' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: +- - job: windows_386_msvc2015_static + displayName: 'Windows 386 MSVC2015 Static' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: +- - job: windows_amd64_msvc2015_shared + displayName: 'Windows amd64 MSVC2015 Shared' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: +- - job: windows_amd64_msvc2015_static + displayName: 'Windows amd64 MSVC2015 Static' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: +- - job: windows_386_msvc2017_shared + displayName: 'Windows 386 MSVC2017 Shared' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: +- - job: windows_386_msvc2017_static + displayName: 'Windows 386 MSVC2017 Static' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: +- - job: windows_amd64_msvc2017_shared + displayName: 'Windows amd64 MSVC2017 Shared' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: +- - job: windows_amd64_msvc2017_static + displayName: 'Windows amd64 MSVC2017 Static' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: +- - job: darwin_amd64_shared + displayName: 'Darwin amd64 Shared' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: +- - job: darwin_amd64_static + displayName: 'Darwin amd64 Static' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: +} +{ +- template: azure-pipelines/setup-python3.yml +- template: azure-pipelines/vs2015-install-python3.yml +} +- template: azure-pipelines/install-latest-meson.yml +{ +- template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml +- template: azure-pipelines/linux-install-gtk-dev-ninja.yml +- template: azure-pipelines/windows-install-ninja.yml +- template: azure-pipelines/darwin-install-ninja.yml +} +{ +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: shared +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: static +- template: azure-pipelines/configure.yml + parameters: + defaultLibrary: shared +- template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: shared +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: shared +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: static +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: static +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: shared +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: static +} +{ +- template: azure-pipelines/build.yml +- template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +- template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a libui.lib +- template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +- template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + afterBuild: ren build\meson-out\libui.a libui.lib +- template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +- template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a libui.lib +- template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +- template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + afterBuild: ren build\meson-out\libui.a libui.lib +} +{ +- template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: 386 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h +- template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: 386 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h +- template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h +- template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h +- template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2015 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h +- template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h +- template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2015 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h +- template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h +- template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h +- template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h +- template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h +- template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2017 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h +- template: azure-pipelines/artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: shared + libfiles: libui.A.dylib + osHeader: ui_darwin.h +- template: azure-pipelines/artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_darwin.h +} From c2eb806992faa578ede79090f75bc597fbe55f0e Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:01:28 -0400 Subject: [PATCH 184/210] Start the matrixification --- azure-pipelines.yml | 736 +++++++++++++++++++++++--------------------- 1 file changed, 382 insertions(+), 354 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 125cfb34..85b585d7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,368 +3,396 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' +strategy: +# targetname: +# os: 'fill this in' +# arch: 'fill this in' +# toolchain: 'fill this in' +# libtype: 'fill this in' +# vmImage: 'fill this in' +# python3Template: 'fill filename' +# depsAndNinjaTemplate: 'fill filename' +# beforeConfigure: 'fill this in' +# beforeBuild: 'fill this in' +# afterBuild: 'fill this in' +# artifactTemplate: 'fill filename' +# libfiles: 'fill this in' +# osHeader: 'fill this in' + linux_386_shared: + os: 'linux' + arch: '386' + libtype: 'shared' + vmImage: 'ubuntu-16.04' + python3Template: 'setup-python3.yml' + depsAndNinjaTemplate: 'linux-386-install-gtk-dev-ninja.yml' + beforeConfigure: 'export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig' + artifactTemplate: 'artifacts.yml' + libfiles: 'libui.so.0' + osHeader: 'ui_unix.h' + jobs: - -# linux { - -- job: linux_386_shared - displayName: 'Linux 386 Shared' +- job: $(join('_', [os, arch] + coalesce(toolchain, []) + [libtype])) + displayName: $(join(' ', [os, arch] + coalesce(toolchain, []) + [libtype])) pool: - vmImage: 'ubuntu-16.04' + vmImage: $(vmImage) workspace: clean: all steps: - - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/$(python3Template) - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml + - template: azure-pipelines/$(depsAndNinjaTemplate) - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig - defaultLibrary: shared - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: 386 - libtype: shared - libfiles: libui.so.0 - osHeader: ui_unix.h - -- job: linux_386_static - displayName: 'Linux 386 Static' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig - defaultLibrary: static - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: 386 - libtype: static - libfiles: libui.a - osHeader: ui_unix.h - -- job: linux_amd64_shared - displayName: 'Linux amd64 Shared' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-install-gtk-dev-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: shared - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: amd64 - libtype: shared - libfiles: libui.so.0 - osHeader: ui_unix.h - -- job: linux_amd64_static - displayName: 'Linux amd64 Static' - pool: - vmImage: 'ubuntu-16.04' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/linux-install-gtk-dev-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: linux - arch: amd64 - libtype: static - libfiles: libui.a - osHeader: ui_unix.h - -# } - -# windows vs2015 { - -- job: windows_386_msvc2015_shared - displayName: 'Windows 386 MSVC2015 Shared' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: shared + beforeConfigure: $(beforeConfigure) + defaultLibrary: $(libtype) - template: azure-pipelines/build.yml parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - - template: azure-pipelines/windows-artifacts.yml + beforeBuild: $(beforeBuild) + afterBuild: $(afterBuild) + - template: azure-pipelines/$(artifactTemplate) parameters: - os: windows - arch: 386 - toolchain: msvc2015 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h + os: $(os) + arch: $(arch) + toolchain: $(toolchain) + libtype: $(libtype) + libfiles: $(libfiles) + osHeader: $(osHeader) -- job: windows_386_msvc2015_static - displayName: 'Windows 386 MSVC2015 Static' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2015 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -- job: windows_amd64_msvc2015_shared - displayName: 'Windows amd64 MSVC2015 Shared' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: amd64 - toolchain: msvc2015 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h - -- job: windows_amd64_msvc2015_static - displayName: 'Windows amd64 MSVC2015 Static' - pool: - vmImage: 'vs2015-win2012r2' - workspace: - clean: all - steps: - - template: azure-pipelines/vs2015-install-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: amd64 - toolchain: msvc2015 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -# } - -# windows vs2017 { - -- job: windows_386_msvc2017_shared - displayName: 'Windows 386 MSVC2017 Shared' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2017 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h - -- job: windows_386_msvc2017_static - displayName: 'Windows 386 MSVC2017 Static' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: 386 - toolchain: msvc2017 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -- job: windows_amd64_msvc2017_shared - displayName: 'Windows amd64 MSVC2017 Shared' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: shared - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: amd64 - toolchain: msvc2017 - libtype: shared - libfiles: libui.dll libui.exp libui.lib - osHeader: ui_windows.h - -- job: windows_amd64_msvc2017_static - displayName: 'Windows amd64 MSVC2017 Static' - pool: - vmImage: 'vs2017-win2016' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/windows-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - defaultLibrary: static - - template: azure-pipelines/build.yml - parameters: - beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 - afterBuild: ren build\meson-out\libui.a libui.lib - - template: azure-pipelines/windows-artifacts.yml - parameters: - os: windows - arch: amd64 - toolchain: msvc2017 - libtype: static - libfiles: libui.lib - osHeader: ui_windows.h - -# } - -# mac { - -# TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? - -- job: darwin_amd64_shared - displayName: 'Darwin amd64 Shared' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: shared - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: darwin - arch: amd64 - libtype: shared - libfiles: libui.A.dylib - osHeader: ui_darwin.h - -- job: darwin_amd64_static - displayName: 'Darwin amd64 Static' - pool: - vmImage: 'macos-10.13' - workspace: - clean: all - steps: - - template: azure-pipelines/setup-python3.yml - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/darwin-install-ninja.yml - - template: azure-pipelines/configure.yml - parameters: - defaultLibrary: static - - template: azure-pipelines/build.yml - - template: azure-pipelines/artifacts.yml - parameters: - os: darwin - arch: amd64 - libtype: static - libfiles: libui.a - osHeader: ui_darwin.h - -# } +## linux { +#- job: linux_386_static +# displayName: 'Linux 386 Static' +# pool: +# vmImage: 'ubuntu-16.04' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: linux +# arch: 386 +# libtype: static +# libfiles: libui.a +# osHeader: ui_unix.h +# +#- job: linux_amd64_shared +# displayName: 'Linux amd64 Shared' +# pool: +# vmImage: 'ubuntu-16.04' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/linux-install-gtk-dev-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: linux +# arch: amd64 +# libtype: shared +# libfiles: libui.so.0 +# osHeader: ui_unix.h +# +#- job: linux_amd64_static +# displayName: 'Linux amd64 Static' +# pool: +# vmImage: 'ubuntu-16.04' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/linux-install-gtk-dev-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: linux +# arch: amd64 +# libtype: static +# libfiles: libui.a +# osHeader: ui_unix.h +# +## } +# +## windows vs2015 { +# +#- job: windows_386_msvc2015_shared +# displayName: 'Windows 386 MSVC2015 Shared' +# pool: +# vmImage: 'vs2015-win2012r2' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/vs2015-install-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: msvc2015 +# libtype: shared +# libfiles: libui.dll libui.exp libui.lib +# osHeader: ui_windows.h +# +#- job: windows_386_msvc2015_static +# displayName: 'Windows 386 MSVC2015 Static' +# pool: +# vmImage: 'vs2015-win2012r2' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/vs2015-install-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: msvc2015 +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h +# +#- job: windows_amd64_msvc2015_shared +# displayName: 'Windows amd64 MSVC2015 Shared' +# pool: +# vmImage: 'vs2015-win2012r2' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/vs2015-install-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: msvc2015 +# libtype: shared +# libfiles: libui.dll libui.exp libui.lib +# osHeader: ui_windows.h +# +#- job: windows_amd64_msvc2015_static +# displayName: 'Windows amd64 MSVC2015 Static' +# pool: +# vmImage: 'vs2015-win2012r2' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/vs2015-install-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: msvc2015 +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h +# +## } +# +## windows vs2017 { +# +#- job: windows_386_msvc2017_shared +# displayName: 'Windows 386 MSVC2017 Shared' +# pool: +# vmImage: 'vs2017-win2016' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: msvc2017 +# libtype: shared +# libfiles: libui.dll libui.exp libui.lib +# osHeader: ui_windows.h +# +#- job: windows_386_msvc2017_static +# displayName: 'Windows 386 MSVC2017 Static' +# pool: +# vmImage: 'vs2017-win2016' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: msvc2017 +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h +# +#- job: windows_amd64_msvc2017_shared +# displayName: 'Windows amd64 MSVC2017 Shared' +# pool: +# vmImage: 'vs2017-win2016' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: msvc2017 +# libtype: shared +# libfiles: libui.dll libui.exp libui.lib +# osHeader: ui_windows.h +# +#- job: windows_amd64_msvc2017_static +# displayName: 'Windows amd64 MSVC2017 Static' +# pool: +# vmImage: 'vs2017-win2016' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: msvc2017 +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h +# +## } +# +## mac { +# +## TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? +# +#- job: darwin_amd64_shared +# displayName: 'Darwin amd64 Shared' +# pool: +# vmImage: 'macos-10.13' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/darwin-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: darwin +# arch: amd64 +# libtype: shared +# libfiles: libui.A.dylib +# osHeader: ui_darwin.h +# +#- job: darwin_amd64_static +# displayName: 'Darwin amd64 Static' +# pool: +# vmImage: 'macos-10.13' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/darwin-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: darwin +# arch: amd64 +# libtype: static +# libfiles: libui.a +# osHeader: ui_darwin.h +# +## } From ac26cf75212fbea8b1a7d67e736bd9be03ac4ac8 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:02:32 -0400 Subject: [PATCH 185/210] Oops --- azure-pipelines.yml | 51 +++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 85b585d7..df04aaca 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,31 +4,32 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' strategy: -# targetname: -# os: 'fill this in' -# arch: 'fill this in' -# toolchain: 'fill this in' -# libtype: 'fill this in' -# vmImage: 'fill this in' -# python3Template: 'fill filename' -# depsAndNinjaTemplate: 'fill filename' -# beforeConfigure: 'fill this in' -# beforeBuild: 'fill this in' -# afterBuild: 'fill this in' -# artifactTemplate: 'fill filename' -# libfiles: 'fill this in' -# osHeader: 'fill this in' - linux_386_shared: - os: 'linux' - arch: '386' - libtype: 'shared' - vmImage: 'ubuntu-16.04' - python3Template: 'setup-python3.yml' - depsAndNinjaTemplate: 'linux-386-install-gtk-dev-ninja.yml' - beforeConfigure: 'export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig' - artifactTemplate: 'artifacts.yml' - libfiles: 'libui.so.0' - osHeader: 'ui_unix.h' + matrix: +# targetname: +# os: 'fill this in' +# arch: 'fill this in' +# toolchain: 'fill this in' +# libtype: 'fill this in' +# vmImage: 'fill this in' +# python3Template: 'fill filename' +# depsAndNinjaTemplate: 'fill filename' +# beforeConfigure: 'fill this in' +# beforeBuild: 'fill this in' +# afterBuild: 'fill this in' +# artifactTemplate: 'fill filename' +# libfiles: 'fill this in' +# osHeader: 'fill this in' + linux_386_shared: + os: 'linux' + arch: '386' + libtype: 'shared' + vmImage: 'ubuntu-16.04' + python3Template: 'setup-python3.yml' + depsAndNinjaTemplate: 'linux-386-install-gtk-dev-ninja.yml' + beforeConfigure: 'export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig' + artifactTemplate: 'artifacts.yml' + libfiles: 'libui.so.0' + osHeader: 'ui_unix.h' jobs: - job: $(join('_', [os, arch] + coalesce(toolchain, []) + [libtype])) From 9af82be7f700e8282b17b9d5254c8aaf38b49b67 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:03:50 -0400 Subject: [PATCH 186/210] Oops again --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index df04aaca..eb31ceb2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -43,6 +43,7 @@ jobs: - template: azure-pipelines/install-latest-meson.yml - template: azure-pipelines/$(depsAndNinjaTemplate) - template: azure-pipelines/configure.yml + parameters: beforeConfigure: $(beforeConfigure) defaultLibrary: $(libtype) - template: azure-pipelines/build.yml From c0c9a3ae920a6de6b9d7a3308d0afc4567d2d3aa Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:06:23 -0400 Subject: [PATCH 187/210] Ah --- azure-pipelines.yml | 53 ++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index eb31ceb2..ee37821a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -31,33 +31,32 @@ strategy: libfiles: 'libui.so.0' osHeader: 'ui_unix.h' -jobs: -- job: $(join('_', [os, arch] + coalesce(toolchain, []) + [libtype])) - displayName: $(join(' ', [os, arch] + coalesce(toolchain, []) + [libtype])) - pool: - vmImage: $(vmImage) - workspace: - clean: all - steps: - - template: azure-pipelines/$(python3Template) - - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/$(depsAndNinjaTemplate) - - template: azure-pipelines/configure.yml - parameters: - beforeConfigure: $(beforeConfigure) - defaultLibrary: $(libtype) - - template: azure-pipelines/build.yml - parameters: - beforeBuild: $(beforeBuild) - afterBuild: $(afterBuild) - - template: azure-pipelines/$(artifactTemplate) - parameters: - os: $(os) - arch: $(arch) - toolchain: $(toolchain) - libtype: $(libtype) - libfiles: $(libfiles) - osHeader: $(osHeader) +pool: + vmImage: $(vmImage) + +workspace: + clean: all + +steps: +- template: azure-pipelines/$(python3Template) +- template: azure-pipelines/install-latest-meson.yml +- template: azure-pipelines/$(depsAndNinjaTemplate) +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: $(beforeConfigure) + defaultLibrary: $(libtype) +- template: azure-pipelines/build.yml + parameters: + beforeBuild: $(beforeBuild) + afterBuild: $(afterBuild) +- template: azure-pipelines/$(artifactTemplate) + parameters: + os: $(os) + arch: $(arch) + toolchain: $(toolchain) + libtype: $(libtype) + libfiles: $(libfiles) + osHeader: $(osHeader) ## linux { #- job: linux_386_static From a0ef6f6ca7832403c8388ebcca3358bb5c1d83f5 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:09:45 -0400 Subject: [PATCH 188/210] Okay, I guess I need to use the full pathname for templates? --- azure-pipelines.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ee37821a..f674a206 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -24,10 +24,10 @@ strategy: arch: '386' libtype: 'shared' vmImage: 'ubuntu-16.04' - python3Template: 'setup-python3.yml' - depsAndNinjaTemplate: 'linux-386-install-gtk-dev-ninja.yml' + python3Template: 'azure-pipelines/setup-python3.yml' + depsAndNinjaTemplate: 'azure-pipelines/linux-386-install-gtk-dev-ninja.yml' beforeConfigure: 'export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig' - artifactTemplate: 'artifacts.yml' + artifactTemplate: 'azure-pipelines/artifacts.yml' libfiles: 'libui.so.0' osHeader: 'ui_unix.h' @@ -38,9 +38,9 @@ workspace: clean: all steps: -- template: azure-pipelines/$(python3Template) +- template: $(python3Template) - template: azure-pipelines/install-latest-meson.yml -- template: azure-pipelines/$(depsAndNinjaTemplate) +- template: $(depsAndNinjaTemplate) - template: azure-pipelines/configure.yml parameters: beforeConfigure: $(beforeConfigure) @@ -49,7 +49,7 @@ steps: parameters: beforeBuild: $(beforeBuild) afterBuild: $(afterBuild) -- template: azure-pipelines/$(artifactTemplate) +- template: $(artifactTemplate) parameters: os: $(os) arch: $(arch) From 5492d34bce74ef193092caed0e6c6c3f21cba5d5 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:13:59 -0400 Subject: [PATCH 189/210] Do I need to use variables.? --- azure-pipelines.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f674a206..dab8b98b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -38,9 +38,9 @@ workspace: clean: all steps: -- template: $(python3Template) +- template: $(variables.python3Template) - template: azure-pipelines/install-latest-meson.yml -- template: $(depsAndNinjaTemplate) +- template: $(variables.depsAndNinjaTemplate) - template: azure-pipelines/configure.yml parameters: beforeConfigure: $(beforeConfigure) @@ -49,7 +49,7 @@ steps: parameters: beforeBuild: $(beforeBuild) afterBuild: $(afterBuild) -- template: $(artifactTemplate) +- template: $(variables.artifactTemplate) parameters: os: $(os) arch: $(arch) From 36594e37592cda701353b86fe38ba7e10499c7dd Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:20:52 -0400 Subject: [PATCH 190/210] Okay, so it seems I can't insert template names as matrix fields, and I'd rather not have a bunch of tiny jobs for all these different templates. So forget it for now. --- azure-pipelines.yml | 103 +++-- azure-pipelines/TODOMatrix | 399 +++++++++++++++++++ collapse.awk => azure-pipelines/collapse.awk | 0 collapsed => azure-pipelines/collapsed | 0 4 files changed, 450 insertions(+), 52 deletions(-) create mode 100644 azure-pipelines/TODOMatrix rename collapse.awk => azure-pipelines/collapse.awk (100%) rename collapsed => azure-pipelines/collapsed (100%) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index dab8b98b..85b585d7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,59 +4,58 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' strategy: - matrix: -# targetname: -# os: 'fill this in' -# arch: 'fill this in' -# toolchain: 'fill this in' -# libtype: 'fill this in' -# vmImage: 'fill this in' -# python3Template: 'fill filename' -# depsAndNinjaTemplate: 'fill filename' -# beforeConfigure: 'fill this in' -# beforeBuild: 'fill this in' -# afterBuild: 'fill this in' -# artifactTemplate: 'fill filename' -# libfiles: 'fill this in' -# osHeader: 'fill this in' - linux_386_shared: - os: 'linux' - arch: '386' - libtype: 'shared' - vmImage: 'ubuntu-16.04' - python3Template: 'azure-pipelines/setup-python3.yml' - depsAndNinjaTemplate: 'azure-pipelines/linux-386-install-gtk-dev-ninja.yml' - beforeConfigure: 'export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig' - artifactTemplate: 'azure-pipelines/artifacts.yml' - libfiles: 'libui.so.0' - osHeader: 'ui_unix.h' +# targetname: +# os: 'fill this in' +# arch: 'fill this in' +# toolchain: 'fill this in' +# libtype: 'fill this in' +# vmImage: 'fill this in' +# python3Template: 'fill filename' +# depsAndNinjaTemplate: 'fill filename' +# beforeConfigure: 'fill this in' +# beforeBuild: 'fill this in' +# afterBuild: 'fill this in' +# artifactTemplate: 'fill filename' +# libfiles: 'fill this in' +# osHeader: 'fill this in' + linux_386_shared: + os: 'linux' + arch: '386' + libtype: 'shared' + vmImage: 'ubuntu-16.04' + python3Template: 'setup-python3.yml' + depsAndNinjaTemplate: 'linux-386-install-gtk-dev-ninja.yml' + beforeConfigure: 'export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig' + artifactTemplate: 'artifacts.yml' + libfiles: 'libui.so.0' + osHeader: 'ui_unix.h' -pool: - vmImage: $(vmImage) - -workspace: - clean: all - -steps: -- template: $(variables.python3Template) -- template: azure-pipelines/install-latest-meson.yml -- template: $(variables.depsAndNinjaTemplate) -- template: azure-pipelines/configure.yml - parameters: - beforeConfigure: $(beforeConfigure) - defaultLibrary: $(libtype) -- template: azure-pipelines/build.yml - parameters: - beforeBuild: $(beforeBuild) - afterBuild: $(afterBuild) -- template: $(variables.artifactTemplate) - parameters: - os: $(os) - arch: $(arch) - toolchain: $(toolchain) - libtype: $(libtype) - libfiles: $(libfiles) - osHeader: $(osHeader) +jobs: +- job: $(join('_', [os, arch] + coalesce(toolchain, []) + [libtype])) + displayName: $(join(' ', [os, arch] + coalesce(toolchain, []) + [libtype])) + pool: + vmImage: $(vmImage) + workspace: + clean: all + steps: + - template: azure-pipelines/$(python3Template) + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/$(depsAndNinjaTemplate) + - template: azure-pipelines/configure.yml + beforeConfigure: $(beforeConfigure) + defaultLibrary: $(libtype) + - template: azure-pipelines/build.yml + parameters: + beforeBuild: $(beforeBuild) + afterBuild: $(afterBuild) + - template: azure-pipelines/$(artifactTemplate) + parameters: + os: $(os) + arch: $(arch) + toolchain: $(toolchain) + libtype: $(libtype) + libfiles: $(libfiles) + osHeader: $(osHeader) ## linux { #- job: linux_386_static diff --git a/azure-pipelines/TODOMatrix b/azure-pipelines/TODOMatrix new file mode 100644 index 00000000..dab8b98b --- /dev/null +++ b/azure-pipelines/TODOMatrix @@ -0,0 +1,399 @@ +# 31 march 2019 + +variables: + releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' + +strategy: + matrix: +# targetname: +# os: 'fill this in' +# arch: 'fill this in' +# toolchain: 'fill this in' +# libtype: 'fill this in' +# vmImage: 'fill this in' +# python3Template: 'fill filename' +# depsAndNinjaTemplate: 'fill filename' +# beforeConfigure: 'fill this in' +# beforeBuild: 'fill this in' +# afterBuild: 'fill this in' +# artifactTemplate: 'fill filename' +# libfiles: 'fill this in' +# osHeader: 'fill this in' + linux_386_shared: + os: 'linux' + arch: '386' + libtype: 'shared' + vmImage: 'ubuntu-16.04' + python3Template: 'azure-pipelines/setup-python3.yml' + depsAndNinjaTemplate: 'azure-pipelines/linux-386-install-gtk-dev-ninja.yml' + beforeConfigure: 'export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig' + artifactTemplate: 'azure-pipelines/artifacts.yml' + libfiles: 'libui.so.0' + osHeader: 'ui_unix.h' + +pool: + vmImage: $(vmImage) + +workspace: + clean: all + +steps: +- template: $(variables.python3Template) +- template: azure-pipelines/install-latest-meson.yml +- template: $(variables.depsAndNinjaTemplate) +- template: azure-pipelines/configure.yml + parameters: + beforeConfigure: $(beforeConfigure) + defaultLibrary: $(libtype) +- template: azure-pipelines/build.yml + parameters: + beforeBuild: $(beforeBuild) + afterBuild: $(afterBuild) +- template: $(variables.artifactTemplate) + parameters: + os: $(os) + arch: $(arch) + toolchain: $(toolchain) + libtype: $(libtype) + libfiles: $(libfiles) + osHeader: $(osHeader) + +## linux { +#- job: linux_386_static +# displayName: 'Linux 386 Static' +# pool: +# vmImage: 'ubuntu-16.04' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: linux +# arch: 386 +# libtype: static +# libfiles: libui.a +# osHeader: ui_unix.h +# +#- job: linux_amd64_shared +# displayName: 'Linux amd64 Shared' +# pool: +# vmImage: 'ubuntu-16.04' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/linux-install-gtk-dev-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: linux +# arch: amd64 +# libtype: shared +# libfiles: libui.so.0 +# osHeader: ui_unix.h +# +#- job: linux_amd64_static +# displayName: 'Linux amd64 Static' +# pool: +# vmImage: 'ubuntu-16.04' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/linux-install-gtk-dev-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: linux +# arch: amd64 +# libtype: static +# libfiles: libui.a +# osHeader: ui_unix.h +# +## } +# +## windows vs2015 { +# +#- job: windows_386_msvc2015_shared +# displayName: 'Windows 386 MSVC2015 Shared' +# pool: +# vmImage: 'vs2015-win2012r2' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/vs2015-install-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: msvc2015 +# libtype: shared +# libfiles: libui.dll libui.exp libui.lib +# osHeader: ui_windows.h +# +#- job: windows_386_msvc2015_static +# displayName: 'Windows 386 MSVC2015 Static' +# pool: +# vmImage: 'vs2015-win2012r2' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/vs2015-install-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: msvc2015 +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h +# +#- job: windows_amd64_msvc2015_shared +# displayName: 'Windows amd64 MSVC2015 Shared' +# pool: +# vmImage: 'vs2015-win2012r2' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/vs2015-install-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: msvc2015 +# libtype: shared +# libfiles: libui.dll libui.exp libui.lib +# osHeader: ui_windows.h +# +#- job: windows_amd64_msvc2015_static +# displayName: 'Windows amd64 MSVC2015 Static' +# pool: +# vmImage: 'vs2015-win2012r2' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/vs2015-install-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: msvc2015 +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h +# +## } +# +## windows vs2017 { +# +#- job: windows_386_msvc2017_shared +# displayName: 'Windows 386 MSVC2017 Shared' +# pool: +# vmImage: 'vs2017-win2016' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: msvc2017 +# libtype: shared +# libfiles: libui.dll libui.exp libui.lib +# osHeader: ui_windows.h +# +#- job: windows_386_msvc2017_static +# displayName: 'Windows 386 MSVC2017 Static' +# pool: +# vmImage: 'vs2017-win2016' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: 386 +# toolchain: msvc2017 +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h +# +#- job: windows_amd64_msvc2017_shared +# displayName: 'Windows amd64 MSVC2017 Shared' +# pool: +# vmImage: 'vs2017-win2016' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: msvc2017 +# libtype: shared +# libfiles: libui.dll libui.exp libui.lib +# osHeader: ui_windows.h +# +#- job: windows_amd64_msvc2017_static +# displayName: 'Windows amd64 MSVC2017 Static' +# pool: +# vmImage: 'vs2017-win2016' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/windows-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# parameters: +# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 +# afterBuild: ren build\meson-out\libui.a libui.lib +# - template: azure-pipelines/windows-artifacts.yml +# parameters: +# os: windows +# arch: amd64 +# toolchain: msvc2017 +# libtype: static +# libfiles: libui.lib +# osHeader: ui_windows.h +# +## } +# +## mac { +# +## TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? +# +#- job: darwin_amd64_shared +# displayName: 'Darwin amd64 Shared' +# pool: +# vmImage: 'macos-10.13' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/darwin-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# defaultLibrary: shared +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: darwin +# arch: amd64 +# libtype: shared +# libfiles: libui.A.dylib +# osHeader: ui_darwin.h +# +#- job: darwin_amd64_static +# displayName: 'Darwin amd64 Static' +# pool: +# vmImage: 'macos-10.13' +# workspace: +# clean: all +# steps: +# - template: azure-pipelines/setup-python3.yml +# - template: azure-pipelines/install-latest-meson.yml +# - template: azure-pipelines/darwin-install-ninja.yml +# - template: azure-pipelines/configure.yml +# parameters: +# defaultLibrary: static +# - template: azure-pipelines/build.yml +# - template: azure-pipelines/artifacts.yml +# parameters: +# os: darwin +# arch: amd64 +# libtype: static +# libfiles: libui.a +# osHeader: ui_darwin.h +# +## } diff --git a/collapse.awk b/azure-pipelines/collapse.awk similarity index 100% rename from collapse.awk rename to azure-pipelines/collapse.awk diff --git a/collapsed b/azure-pipelines/collapsed similarity index 100% rename from collapsed rename to azure-pipelines/collapsed From 102693e1bed7d858d7323b7b0263dcd941f6d5f5 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:22:10 -0400 Subject: [PATCH 191/210] Wrong backup --- azure-pipelines.yml | 736 +++++++++++++++++++++----------------------- 1 file changed, 354 insertions(+), 382 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 85b585d7..125cfb34 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,396 +3,368 @@ variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' -strategy: -# targetname: -# os: 'fill this in' -# arch: 'fill this in' -# toolchain: 'fill this in' -# libtype: 'fill this in' -# vmImage: 'fill this in' -# python3Template: 'fill filename' -# depsAndNinjaTemplate: 'fill filename' -# beforeConfigure: 'fill this in' -# beforeBuild: 'fill this in' -# afterBuild: 'fill this in' -# artifactTemplate: 'fill filename' -# libfiles: 'fill this in' -# osHeader: 'fill this in' - linux_386_shared: - os: 'linux' - arch: '386' - libtype: 'shared' - vmImage: 'ubuntu-16.04' - python3Template: 'setup-python3.yml' - depsAndNinjaTemplate: 'linux-386-install-gtk-dev-ninja.yml' - beforeConfigure: 'export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig' - artifactTemplate: 'artifacts.yml' - libfiles: 'libui.so.0' - osHeader: 'ui_unix.h' - jobs: -- job: $(join('_', [os, arch] + coalesce(toolchain, []) + [libtype])) - displayName: $(join(' ', [os, arch] + coalesce(toolchain, []) + [libtype])) + +# linux { + +- job: linux_386_shared + displayName: 'Linux 386 Shared' pool: - vmImage: $(vmImage) + vmImage: 'ubuntu-16.04' workspace: clean: all steps: - - template: azure-pipelines/$(python3Template) + - template: azure-pipelines/setup-python3.yml - template: azure-pipelines/install-latest-meson.yml - - template: azure-pipelines/$(depsAndNinjaTemplate) + - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml - template: azure-pipelines/configure.yml - beforeConfigure: $(beforeConfigure) - defaultLibrary: $(libtype) + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: shared + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: 386 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h + +- job: linux_386_static + displayName: 'Linux 386 Static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig + defaultLibrary: static + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: 386 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h + +- job: linux_amd64_shared + displayName: 'Linux amd64 Shared' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: shared + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: shared + libfiles: libui.so.0 + osHeader: ui_unix.h + +- job: linux_amd64_static + displayName: 'Linux amd64 Static' + pool: + vmImage: 'ubuntu-16.04' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/linux-install-gtk-dev-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: linux + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_unix.h + +# } + +# windows vs2015 { + +- job: windows_386_msvc2015_shared + displayName: 'Windows 386 MSVC2015 Shared' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: shared - template: azure-pipelines/build.yml parameters: - beforeBuild: $(beforeBuild) - afterBuild: $(afterBuild) - - template: azure-pipelines/$(artifactTemplate) + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + - template: azure-pipelines/windows-artifacts.yml parameters: - os: $(os) - arch: $(arch) - toolchain: $(toolchain) - libtype: $(libtype) - libfiles: $(libfiles) - osHeader: $(osHeader) + os: windows + arch: 386 + toolchain: msvc2015 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h -## linux { -#- job: linux_386_static -# displayName: 'Linux 386 Static' -# pool: -# vmImage: 'ubuntu-16.04' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/linux-386-install-gtk-dev-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: export CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig -# defaultLibrary: static -# - template: azure-pipelines/build.yml -# - template: azure-pipelines/artifacts.yml -# parameters: -# os: linux -# arch: 386 -# libtype: static -# libfiles: libui.a -# osHeader: ui_unix.h -# -#- job: linux_amd64_shared -# displayName: 'Linux amd64 Shared' -# pool: -# vmImage: 'ubuntu-16.04' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/linux-install-gtk-dev-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# defaultLibrary: shared -# - template: azure-pipelines/build.yml -# - template: azure-pipelines/artifacts.yml -# parameters: -# os: linux -# arch: amd64 -# libtype: shared -# libfiles: libui.so.0 -# osHeader: ui_unix.h -# -#- job: linux_amd64_static -# displayName: 'Linux amd64 Static' -# pool: -# vmImage: 'ubuntu-16.04' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/linux-install-gtk-dev-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# defaultLibrary: static -# - template: azure-pipelines/build.yml -# - template: azure-pipelines/artifacts.yml -# parameters: -# os: linux -# arch: amd64 -# libtype: static -# libfiles: libui.a -# osHeader: ui_unix.h -# -## } -# -## windows vs2015 { -# -#- job: windows_386_msvc2015_shared -# displayName: 'Windows 386 MSVC2015 Shared' -# pool: -# vmImage: 'vs2015-win2012r2' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/vs2015-install-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/windows-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 -# defaultLibrary: shared -# - template: azure-pipelines/build.yml -# parameters: -# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: 386 -# toolchain: msvc2015 -# libtype: shared -# libfiles: libui.dll libui.exp libui.lib -# osHeader: ui_windows.h -# -#- job: windows_386_msvc2015_static -# displayName: 'Windows 386 MSVC2015 Static' -# pool: -# vmImage: 'vs2015-win2012r2' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/vs2015-install-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/windows-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 -# defaultLibrary: static -# - template: azure-pipelines/build.yml -# parameters: -# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 -# afterBuild: ren build\meson-out\libui.a libui.lib -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: 386 -# toolchain: msvc2015 -# libtype: static -# libfiles: libui.lib -# osHeader: ui_windows.h -# -#- job: windows_amd64_msvc2015_shared -# displayName: 'Windows amd64 MSVC2015 Shared' -# pool: -# vmImage: 'vs2015-win2012r2' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/vs2015-install-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/windows-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -# defaultLibrary: shared -# - template: azure-pipelines/build.yml -# parameters: -# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: amd64 -# toolchain: msvc2015 -# libtype: shared -# libfiles: libui.dll libui.exp libui.lib -# osHeader: ui_windows.h -# -#- job: windows_amd64_msvc2015_static -# displayName: 'Windows amd64 MSVC2015 Static' -# pool: -# vmImage: 'vs2015-win2012r2' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/vs2015-install-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/windows-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -# defaultLibrary: static -# - template: azure-pipelines/build.yml -# parameters: -# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 -# afterBuild: ren build\meson-out\libui.a libui.lib -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: amd64 -# toolchain: msvc2015 -# libtype: static -# libfiles: libui.lib -# osHeader: ui_windows.h -# -## } -# -## windows vs2017 { -# -#- job: windows_386_msvc2017_shared -# displayName: 'Windows 386 MSVC2017 Shared' -# pool: -# vmImage: 'vs2017-win2016' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/windows-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 -# defaultLibrary: shared -# - template: azure-pipelines/build.yml -# parameters: -# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: 386 -# toolchain: msvc2017 -# libtype: shared -# libfiles: libui.dll libui.exp libui.lib -# osHeader: ui_windows.h -# -#- job: windows_386_msvc2017_static -# displayName: 'Windows 386 MSVC2017 Static' -# pool: -# vmImage: 'vs2017-win2016' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/windows-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 -# defaultLibrary: static -# - template: azure-pipelines/build.yml -# parameters: -# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 -# afterBuild: ren build\meson-out\libui.a libui.lib -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: 386 -# toolchain: msvc2017 -# libtype: static -# libfiles: libui.lib -# osHeader: ui_windows.h -# -#- job: windows_amd64_msvc2017_shared -# displayName: 'Windows amd64 MSVC2017 Shared' -# pool: -# vmImage: 'vs2017-win2016' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/windows-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 -# defaultLibrary: shared -# - template: azure-pipelines/build.yml -# parameters: -# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: amd64 -# toolchain: msvc2017 -# libtype: shared -# libfiles: libui.dll libui.exp libui.lib -# osHeader: ui_windows.h -# -#- job: windows_amd64_msvc2017_static -# displayName: 'Windows amd64 MSVC2017 Static' -# pool: -# vmImage: 'vs2017-win2016' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/windows-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 -# defaultLibrary: static -# - template: azure-pipelines/build.yml -# parameters: -# beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 -# afterBuild: ren build\meson-out\libui.a libui.lib -# - template: azure-pipelines/windows-artifacts.yml -# parameters: -# os: windows -# arch: amd64 -# toolchain: msvc2017 -# libtype: static -# libfiles: libui.lib -# osHeader: ui_windows.h -# -## } -# -## mac { -# -## TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? -# -#- job: darwin_amd64_shared -# displayName: 'Darwin amd64 Shared' -# pool: -# vmImage: 'macos-10.13' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/darwin-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# defaultLibrary: shared -# - template: azure-pipelines/build.yml -# - template: azure-pipelines/artifacts.yml -# parameters: -# os: darwin -# arch: amd64 -# libtype: shared -# libfiles: libui.A.dylib -# osHeader: ui_darwin.h -# -#- job: darwin_amd64_static -# displayName: 'Darwin amd64 Static' -# pool: -# vmImage: 'macos-10.13' -# workspace: -# clean: all -# steps: -# - template: azure-pipelines/setup-python3.yml -# - template: azure-pipelines/install-latest-meson.yml -# - template: azure-pipelines/darwin-install-ninja.yml -# - template: azure-pipelines/configure.yml -# parameters: -# defaultLibrary: static -# - template: azure-pipelines/build.yml -# - template: azure-pipelines/artifacts.yml -# parameters: -# os: darwin -# arch: amd64 -# libtype: static -# libfiles: libui.a -# osHeader: ui_darwin.h -# -## } +- job: windows_386_msvc2015_static + displayName: 'Windows 386 MSVC2015 Static' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +- job: windows_amd64_msvc2015_shared + displayName: 'Windows amd64 MSVC2015 Shared' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2015 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_amd64_msvc2015_static + displayName: 'Windows amd64 MSVC2015 Static' + pool: + vmImage: 'vs2015-win2012r2' + workspace: + clean: all + steps: + - template: azure-pipelines/vs2015-install-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2015 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +# } + +# windows vs2017 { + +- job: windows_386_msvc2017_shared + displayName: 'Windows 386 MSVC2017 Shared' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_386_msvc2017_static + displayName: 'Windows 386 MSVC2017 Static' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x86 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: 386 + toolchain: msvc2017 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +- job: windows_amd64_msvc2017_shared + displayName: 'Windows amd64 MSVC2017 Shared' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: shared + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2017 + libtype: shared + libfiles: libui.dll libui.exp libui.lib + osHeader: ui_windows.h + +- job: windows_amd64_msvc2017_static + displayName: 'Windows amd64 MSVC2017 Static' + pool: + vmImage: 'vs2017-win2016' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/windows-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + beforeConfigure: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + defaultLibrary: static + - template: azure-pipelines/build.yml + parameters: + beforeBuild: call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" amd64 + afterBuild: ren build\meson-out\libui.a libui.lib + - template: azure-pipelines/windows-artifacts.yml + parameters: + os: windows + arch: amd64 + toolchain: msvc2017 + libtype: static + libfiles: libui.lib + osHeader: ui_windows.h + +# } + +# mac { + +# TODO beforeConfigure/beforeBuild: export SDKROOT=$(xcodebuild -version -sdk macosx10.13 Path)? + +- job: darwin_amd64_shared + displayName: 'Darwin amd64 Shared' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: shared + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: shared + libfiles: libui.A.dylib + osHeader: ui_darwin.h + +- job: darwin_amd64_static + displayName: 'Darwin amd64 Static' + pool: + vmImage: 'macos-10.13' + workspace: + clean: all + steps: + - template: azure-pipelines/setup-python3.yml + - template: azure-pipelines/install-latest-meson.yml + - template: azure-pipelines/darwin-install-ninja.yml + - template: azure-pipelines/configure.yml + parameters: + defaultLibrary: static + - template: azure-pipelines/build.yml + - template: azure-pipelines/artifacts.yml + parameters: + os: darwin + arch: amd64 + libtype: static + libfiles: libui.a + osHeader: ui_darwin.h + +# } From 69bfbbf19cb44ecfc06ca323ac5d8bfaeff90475 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 17:47:30 -0400 Subject: [PATCH 192/210] And set up tagging and GitHub releases. That'll be all for the Azure Pipelines configuration; now we just need the AppVeyor configuration. --- _travis_yml | 10 ---------- azure-pipelines.yml | 8 ++++++++ azure-pipelines/artifacts.yml | 10 +++++++--- azure-pipelines/windows-artifacts.yml | 10 +++++++--- 4 files changed, 22 insertions(+), 16 deletions(-) delete mode 100644 _travis_yml diff --git a/_travis_yml b/_travis_yml deleted file mode 100644 index 244e8fc6..00000000 --- a/_travis_yml +++ /dev/null @@ -1,10 +0,0 @@ - -deploy: - provider: releases - api_key: - secure: "fmgC97mlXQY/ASWAL/GyTJfiJIo/hsVFf6bP3Zz8odv259PJUFGgnZ9kNIgJcFQ5961lXDFi7pBMMSetm1GZ2EBZxIXnUfe1kfIhw62ybJHIwB2+g2tc8A4zzfkWJVY4xVYpitOU3iMuu5Z8U2n+68RYWKpcxhbkVw5v8Zu2Rms=" - file: build/out/*.tgz - file_glob: true - skip_cleanup: true - on: - tags: true diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 125cfb34..d7d3d4c9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,5 +1,13 @@ # 31 march 2019 +trigger: + branches: + include: + - '*' + tags: + include: + - '*' + variables: releaseExamples: 'controlgallery cpp-multithread datetime drawtext histogram tester timer' diff --git a/azure-pipelines/artifacts.yml b/azure-pipelines/artifacts.yml index 8f9d28b5..9a3161e2 100644 --- a/azure-pipelines/artifacts.yml +++ b/azure-pipelines/artifacts.yml @@ -17,7 +17,11 @@ steps: rm ui.h ${{ parameters.osHeader }} popd displayName: 'Create Artifacts' -- task: PublishBuildArtifacts@1 +- task: GitHubRelease@0 inputs: - pathToPublish: $(Build.ArtifactStagingDirectory) - artifactName: ${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.libtype }} + gitHubConnection: andlabs + repositoryName: andlabs/libui + action: 'edit' + addChangelog: false + assets: '$(Build.ArtifactStagingDirectory)/*' + assetUploadMode: 'replace' diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index d92a9f07..acf2831d 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -17,7 +17,11 @@ steps: Remove-Item @("ui.h","${{ parameters.osHeader }}") popd displayName: 'Create Artifacts' -- task: PublishBuildArtifacts@1 +- task: GitHubRelease@0 inputs: - pathToPublish: $(Build.ArtifactStagingDirectory) - artifactName: ${{ parameters.os }}-${{ parameters.arch }}-${{ parameters.toolchain }}-${{ parameters.libtype }} + gitHubConnection: andlabs + repositoryName: andlabs/libui + action: 'edit' + addChangelog: false + assets: '$(Build.ArtifactStagingDirectory)/*' + assetUploadMode: 'replace' From 3037d7b87f3474ffe284583a31b2d2648bd436f3 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 18:15:45 -0400 Subject: [PATCH 193/210] Completely update the AppVeyor proejct. It now only handles MinGW and VS2013 builds, and uses YAML better. Partially based on guidance in the meson documentation. --- .appveyor.yml | 121 ++++++++++++++++++++++++++++++++------------------ 1 file changed, 77 insertions(+), 44 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 0d579851..cb564e1c 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -2,66 +2,99 @@ version: 'build #{build}' environment: matrix: - - linking: shared + - arch: 386 + libtype: shared + libfiles: libui.dll libui.lib compiler: msvc2013 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 - - linking: static + - arch: 386 + libtype: static + libfiles: libui.lib compiler: msvc2013 APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 - - linking: shared - compiler: msvc2015 + - arch: amd64 + libtype: shared + libfiles: libui.dll libui.lib + compiler: msvc2013 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 + - arch: amd64 + libtype: static + libfiles: libui.lib + compiler: msvc2013 + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 + - arch: 386 + libtype: static + libfiles: libui.lib + compiler: mingw APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - - linking: static - compiler: msvc2015 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - - linking: shared - compiler: msvc2017 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - - linking: static - compiler: msvc2017 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017 - - linking: static + - arch: amd64 + libtype: static + libfiles: libui.lib compiler: mingw APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 platform: - - Win32 - x64 before_build: - - if %compiler%==msvc2013 ( set "CMAKE_GENERATOR=Visual Studio 12 2013" ) - else if %compiler%==msvc2015 ( set "CMAKE_GENERATOR=Visual Studio 14 2015" ) - else if %compiler%==msvc2017 ( set "CMAKE_GENERATOR=Visual Studio 15 2017" ) - else if %compiler%==mingw ( set "CMAKE_GENERATOR=MinGW Makefiles" ) - - if %compiler%-%platform%==mingw-Win32 ( set "PATH=C:\msys64\mingw32\bin;%PATH%" ) - else if %compiler%-%platform%==mingw-x64 ( set "PATH=C:\msys64\mingw64\bin;%PATH%" ) - else if %platform%==x64 ( set "CMAKE_GENERATOR=%CMAKE_GENERATOR% Win64" ) - - if %linking%==static ( set CMAKE_FLAGS=-DBUILD_SHARED_LIBS=OFF ) - - if %compiler%==mingw ( set "outdir=build\out" ) else ( set "outdir=build\out\Release" ) - - ren "C:\Program Files\Git\usr\bin\sh.exe" _sh.exe - - set "simultaneous=3" + - cmd: | + rem Set Python Version + if %arch%==386 ( + set PYTHON_ROOT=C:\python37 + ) else ( + set PYTHON_ROOT=C:\python37-x64 + ) + set "PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\Scripts;%PATH%" + + rem Install Latest Meson + pip install meson + + rem Install Ninja + powershell -Command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip" + mkdir C:\ninja + powershell -Command "Expand-Archive -LiteralPath C:\ninja-win.zip -DestinationPath C:\ninja" + set "PATH=C:\ninja;%PATH%" build_script: - - md build && cd build - - if not %compiler%==mingw ( set "CFLAGS=/MP%simultaneous% %CFLAGS%" ) - - if not %compiler%==mingw ( set "CPPFLAGS=/MP%simultaneous% %CPPFLAGS%" ) - - if not %compiler%==mingw ( set "CXXFLAGS=/MP%simultaneous% %CXXFLAGS%" ) - - cmake -G "%CMAKE_GENERATOR%" %CMAKE_FLAGS% .. - - if %compiler%==mingw ( mingw32-make -j%simultaneous% tester examples ) - else ( msbuild libui.sln /t:Build /p:Configuration=Release /p:Platform=%platform% ) - - cd %APPVEYOR_BUILD_FOLDER% + - cmd: | + if %compiler%==mingw-Win32 ( + if %arch%==386 ( + set "PATH=C:\msys64\mingw32\bin;%PATH%" + ) else ( + set "PATH=C:\msys64\mingw64\bin;%PATH%" + ) + ) else ( + if %arch%==386 ( + call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86 + ) else ( + call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64 + ) + ) + meson setup build --buildtype=release --default-library=%libtype% + ninja -C build after_build: - - if %platform%==x64 ( set "arch=amd64" ) else ( set "arch=386" ) - - if %APPVEYOR_REPO_TAG%==true ( set "version=%APPVEYOR_REPO_TAG_NAME%" ) - else ( set "version=%APPVEYOR_REPO_BRANCH%" ) - - if %linking%==shared ( set "artifact=shared" ) else ( set "artifact=%compiler%-static" ) - - set "artifact=%version%-windows-%arch%-%artifact%" - - del .\%outdir%\libui.exp # remove unnecessary files - - 7z a libui-%artifact%.zip .\%outdir%\libui.* ui.h ui_windows.h - - 7z l libui-%artifact%.zip - - 7z a examples-%artifact%.zip .\%outdir%\*.exe - - 7z l examples-%artifact%.zip + - cmd: | + if %APPVEYOR_REPO_TAG%==true ( + set "version=%APPVEYOR_REPO_TAG_NAME%" + ) else ( + set "version=%APPVEYOR_REPO_BRANCH%" + ) + set "artifact=%version%-windows-%arch%-%compiler%- +%libtype%" + pushd build\meson-out + if %buildtype%==static ( + rem TODO msvc only? + ren libui.a libui.lib + ) + copy ..\..\ui.h . + copy ..\..\ui_windows.h . + rem remove unnecessary files + rem TODO should we do this on Azure too? + del libui.exp + 7z a "%APPVEYOR_BUILD_FOLDER%\libui-%artifact%.zip" %libfiles% ui.h ui_windows.h + 7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" *.exe + popd artifacts: - path: libui-*.zip From 3f815718b115e8f074db6a64d58868811f50e835 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 18:17:10 -0400 Subject: [PATCH 194/210] Oops --- .appveyor.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index cb564e1c..c56ae801 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -80,8 +80,7 @@ after_build: ) else ( set "version=%APPVEYOR_REPO_BRANCH%" ) - set "artifact=%version%-windows-%arch%-%compiler%- -%libtype%" + set "artifact=%version%-windows-%arch%-%compiler%-%libtype%" pushd build\meson-out if %buildtype%==static ( rem TODO msvc only? From acc0586fd66206bb66bb1f33d06b3e7e83814179 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 20:16:04 -0400 Subject: [PATCH 195/210] Okay so .appveyor.yml cmd scripts must not have multiline commands, ugh. --- .appveyor.yml | 46 +++++++++++++++++----------------------------- 1 file changed, 17 insertions(+), 29 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index c56ae801..9f48090d 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -36,14 +36,12 @@ environment: platform: - x64 -before_build: +# Note: AppVeyor tries to be "helpful" and splits cmd.exe scripts into their constitutent lines to check their error codes. There is no way to switch this off; for true multi-line scripts we have to use PowerShell. But we need to use vcvarsall.bat, so that's out of the question. +install: - cmd: | rem Set Python Version - if %arch%==386 ( - set PYTHON_ROOT=C:\python37 - ) else ( - set PYTHON_ROOT=C:\python37-x64 - ) + set PYTHON_ROOT=C:\python37-x64 + if %arch%==386 ( set PYTHON_ROOT=C:\python37 ) set "PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\Scripts;%PATH%" rem Install Latest Meson @@ -54,45 +52,35 @@ before_build: mkdir C:\ninja powershell -Command "Expand-Archive -LiteralPath C:\ninja-win.zip -DestinationPath C:\ninja" set "PATH=C:\ninja;%PATH%" + + rem Parameters for the build_script phase, to reduce their noise. + set "mingwPath=C:\msys64\mingw64\bin" + set vcvarsallArch=x86 + if %arch%==386 ( set "mingwPath=C:\msys64\mingw32\bin" ) + if %arch%==386 ( set vcvarsallArch=amd64 ) build_script: - cmd: | - if %compiler%==mingw-Win32 ( - if %arch%==386 ( - set "PATH=C:\msys64\mingw32\bin;%PATH%" - ) else ( - set "PATH=C:\msys64\mingw64\bin;%PATH%" - ) - ) else ( - if %arch%==386 ( - call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86 - ) else ( - call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64 - ) - ) + if %compiler%==mingw ( set "PATH=%mingwPath%;%PATH%" ) + if %compiler%<>mingw ( call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %vcvarsallArch% ) meson setup build --buildtype=release --default-library=%libtype% ninja -C build after_build: - cmd: | - if %APPVEYOR_REPO_TAG%==true ( - set "version=%APPVEYOR_REPO_TAG_NAME%" - ) else ( - set "version=%APPVEYOR_REPO_BRANCH%" - ) + set "version=%APPVEYOR_REPO_BRANCH%" + if %APPVEYOR_REPO_TAG%==true ( set "version=%APPVEYOR_REPO_TAG_NAME%" ) set "artifact=%version%-windows-%arch%-%compiler%-%libtype%" pushd build\meson-out - if %buildtype%==static ( - rem TODO msvc only? - ren libui.a libui.lib - ) + rem TODO msvc only? + if %buildtype%==static ( ren libui.a libui.lib ) copy ..\..\ui.h . copy ..\..\ui_windows.h . rem remove unnecessary files rem TODO should we do this on Azure too? del libui.exp 7z a "%APPVEYOR_BUILD_FOLDER%\libui-%artifact%.zip" %libfiles% ui.h ui_windows.h - 7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" *.exe + 7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" controlgallery.exe cpp-multithread.exe datetime.exe drawtext.exe histogram.exe tester.exe timer.exe popd artifacts: From 52f07b05332eb5fb1d59b08bed4a67ea4244b3c4 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 20:23:07 -0400 Subject: [PATCH 196/210] No reason pip shouldn't work... --- .appveyor.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 9f48090d..ac2e9540 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -40,11 +40,14 @@ platform: install: - cmd: | rem Set Python Version - set PYTHON_ROOT=C:\python37-x64 - if %arch%==386 ( set PYTHON_ROOT=C:\python37 ) + set "PYTHON_ROOT=C:\python37-x64" + if %arch%==386 ( set "PYTHON_ROOT=C:\python37" ) set "PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\Scripts;%PATH%" rem Install Latest Meson + echo %PATH% + echo %PYTHON_ROOT% + where.exe pip.exe pip install meson rem Install Ninja From 6e915321ccf285c1d25a56b68a43196f6ba8e250 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 20:29:46 -0400 Subject: [PATCH 197/210] Oops --- .appveyor.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index ac2e9540..0f5d8156 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -45,9 +45,6 @@ install: set "PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\Scripts;%PATH%" rem Install Latest Meson - echo %PATH% - echo %PYTHON_ROOT% - where.exe pip.exe pip install meson rem Install Ninja @@ -65,7 +62,7 @@ install: build_script: - cmd: | if %compiler%==mingw ( set "PATH=%mingwPath%;%PATH%" ) - if %compiler%<>mingw ( call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %vcvarsallArch% ) + if not %compiler%==mingw ( call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %vcvarsallArch% ) meson setup build --buildtype=release --default-library=%libtype% ninja -C build From d08ab7d2600b7bda2edb15f4d72108ecd33e3e0f Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 20:35:56 -0400 Subject: [PATCH 198/210] Double oops. But this should work now! --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 0f5d8156..16d65f42 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -73,7 +73,7 @@ after_build: set "artifact=%version%-windows-%arch%-%compiler%-%libtype%" pushd build\meson-out rem TODO msvc only? - if %buildtype%==static ( ren libui.a libui.lib ) + if %libtype%==static ( ren libui.a libui.lib ) copy ..\..\ui.h . copy ..\..\ui_windows.h . rem remove unnecessary files From fbdd84ac86f2329f6ab0cec512fe6c0c8ea95b88 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 20:43:49 -0400 Subject: [PATCH 199/210] Not sure why popd is exiting with status 1... --- .appveyor.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.appveyor.yml b/.appveyor.yml index 16d65f42..f32fff47 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -81,7 +81,9 @@ after_build: del libui.exp 7z a "%APPVEYOR_BUILD_FOLDER%\libui-%artifact%.zip" %libfiles% ui.h ui_windows.h 7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" controlgallery.exe cpp-multithread.exe datetime.exe drawtext.exe histogram.exe tester.exe timer.exe + del ui.h ui_windows.h popd + popd /? artifacts: - path: libui-*.zip From 0b319032b68e97e52207d5ff96a5e83b7c5e03b9 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 20:44:19 -0400 Subject: [PATCH 200/210] Other way --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index f32fff47..65aa82b4 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -82,8 +82,8 @@ after_build: 7z a "%APPVEYOR_BUILD_FOLDER%\libui-%artifact%.zip" %libfiles% ui.h ui_windows.h 7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" controlgallery.exe cpp-multithread.exe datetime.exe drawtext.exe histogram.exe tester.exe timer.exe del ui.h ui_windows.h - popd popd /? + popd artifacts: - path: libui-*.zip From 73e4e58c80dc6602da65025b733c3dcb0d0e4f73 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 20:53:32 -0400 Subject: [PATCH 201/210] Okay, let's see if it's because of the multiline scripts. --- .appveyor.yml | 77 +++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 42 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 65aa82b4..d5e43acb 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -38,52 +38,45 @@ platform: # Note: AppVeyor tries to be "helpful" and splits cmd.exe scripts into their constitutent lines to check their error codes. There is no way to switch this off; for true multi-line scripts we have to use PowerShell. But we need to use vcvarsall.bat, so that's out of the question. install: - - cmd: | - rem Set Python Version - set "PYTHON_ROOT=C:\python37-x64" - if %arch%==386 ( set "PYTHON_ROOT=C:\python37" ) - set "PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\Scripts;%PATH%" - - rem Install Latest Meson - pip install meson - - rem Install Ninja - powershell -Command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip" - mkdir C:\ninja - powershell -Command "Expand-Archive -LiteralPath C:\ninja-win.zip -DestinationPath C:\ninja" - set "PATH=C:\ninja;%PATH%" - - rem Parameters for the build_script phase, to reduce their noise. - set "mingwPath=C:\msys64\mingw64\bin" - set vcvarsallArch=x86 - if %arch%==386 ( set "mingwPath=C:\msys64\mingw32\bin" ) - if %arch%==386 ( set vcvarsallArch=amd64 ) + # Set Python Version + - set "PYTHON_ROOT=C:\python37-x64" + - if %arch%==386 ( set "PYTHON_ROOT=C:\python37" ) + - set "PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\Scripts;%PATH%" + # Install Latest Meson + - pip install meson + # Install Ninja + - powershell -Command "Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-win.zip -OutFile C:\ninja-win.zip" + - mkdir C:\ninja + - powershell -Command "Expand-Archive -LiteralPath C:\ninja-win.zip -DestinationPath C:\ninja" + - set "PATH=C:\ninja;%PATH%" + # Parameters for the build_script phase, to reduce their noise. + - set "mingwPath=C:\msys64\mingw64\bin" + - set vcvarsallArch=x86 + - if %arch%==386 ( set "mingwPath=C:\msys64\mingw32\bin" ) + - if %arch%==386 ( set vcvarsallArch=amd64 ) build_script: - - cmd: | - if %compiler%==mingw ( set "PATH=%mingwPath%;%PATH%" ) - if not %compiler%==mingw ( call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %vcvarsallArch% ) - meson setup build --buildtype=release --default-library=%libtype% - ninja -C build + - if %compiler%==mingw ( set "PATH=%mingwPath%;%PATH%" ) + - if not %compiler%==mingw ( call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %vcvarsallArch% ) + - meson setup build --buildtype=release --default-library=%libtype% + - ninja -C build after_build: - - cmd: | - set "version=%APPVEYOR_REPO_BRANCH%" - if %APPVEYOR_REPO_TAG%==true ( set "version=%APPVEYOR_REPO_TAG_NAME%" ) - set "artifact=%version%-windows-%arch%-%compiler%-%libtype%" - pushd build\meson-out - rem TODO msvc only? - if %libtype%==static ( ren libui.a libui.lib ) - copy ..\..\ui.h . - copy ..\..\ui_windows.h . - rem remove unnecessary files - rem TODO should we do this on Azure too? - del libui.exp - 7z a "%APPVEYOR_BUILD_FOLDER%\libui-%artifact%.zip" %libfiles% ui.h ui_windows.h - 7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" controlgallery.exe cpp-multithread.exe datetime.exe drawtext.exe histogram.exe tester.exe timer.exe - del ui.h ui_windows.h - popd /? - popd + - set "version=%APPVEYOR_REPO_BRANCH%" + - if %APPVEYOR_REPO_TAG%==true ( set "version=%APPVEYOR_REPO_TAG_NAME%" ) + - set "artifact=%version%-windows-%arch%-%compiler%-%libtype%" + - pushd build\meson-out + # TODO msvc only? + - if %libtype%==static ( ren libui.a libui.lib ) + - copy ..\..\ui.h . + - copy ..\..\ui_windows.h . + # remove unnecessary files + # TODO should we do this on Azure too? + - del libui.exp + - 7z a "%APPVEYOR_BUILD_FOLDER%\libui-%artifact%.zip" %libfiles% ui.h ui_windows.h + - 7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" controlgallery.exe cpp-multithread.exe datetime.exe drawtext.exe histogram.exe tester.exe timer.exe + - del ui.h ui_windows.h + - popd artifacts: - path: libui-*.zip From 9c164a2c5cd1dea7b8020af06261e758aa6b0a3c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 21:03:20 -0400 Subject: [PATCH 202/210] Okay, at this point I'm betting pushd/popd just don't work on AppVeyor's cmd.exe. I'm betting it has to do with popd /? showing me the output of call /? instead. Just use cd. --- .appveyor.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index d5e43acb..3540a722 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -65,7 +65,7 @@ after_build: - set "version=%APPVEYOR_REPO_BRANCH%" - if %APPVEYOR_REPO_TAG%==true ( set "version=%APPVEYOR_REPO_TAG_NAME%" ) - set "artifact=%version%-windows-%arch%-%compiler%-%libtype%" - - pushd build\meson-out + - cd build\meson-out # TODO msvc only? - if %libtype%==static ( ren libui.a libui.lib ) - copy ..\..\ui.h . @@ -76,7 +76,6 @@ after_build: - 7z a "%APPVEYOR_BUILD_FOLDER%\libui-%artifact%.zip" %libfiles% ui.h ui_windows.h - 7z a "%APPVEYOR_BUILD_FOLDER%\examples-%artifact%.zip" controlgallery.exe cpp-multithread.exe datetime.exe drawtext.exe histogram.exe tester.exe timer.exe - del ui.h ui_windows.h - - popd artifacts: - path: libui-*.zip From e8daaf659eb20d365a947b6a2f6168398731175c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 21:56:35 -0400 Subject: [PATCH 203/210] windows/direct2d: fix ID2D1RenderTarget::GetPixelFormat() and ID2D1RenderTarget::GetSize() typedefs in MinGW-w64 ABI workaround MinGW-w64 recently added manual workarounds directly into the class via overloads that make existing Direct2D code source-compatible. However, that exposed an error in my definition of the typedefs I was using in my own workaround: both of these methods are const, even in MSVC, but I neglected to include the const qualifier. I'm not sure how this code compiled in the past, but now the overload resolution engine finds no match. I want to remain compatible with versions of MinGW-w64 old enough to not have their fix, so our fix remains. Fixes #446. --- windows/colordialog.cpp | 2 +- windows/winutil.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/windows/colordialog.cpp b/windows/colordialog.cpp index d7030a4f..a04c4461 100644 --- a/windows/colordialog.cpp +++ b/windows/colordialog.cpp @@ -314,7 +314,7 @@ static void drawGrid(ID2D1RenderTarget *rt, D2D1_RECT_F *fillRect) pformat = rt->GetPixelFormat(); #else { - typedef D2D1_PIXEL_FORMAT *(__stdcall ID2D1RenderTarget::* GetPixelFormatF)(D2D1_PIXEL_FORMAT *); + typedef D2D1_PIXEL_FORMAT *(__stdcall ID2D1RenderTarget::* GetPixelFormatF)(D2D1_PIXEL_FORMAT *) const; GetPixelFormatF gpf; gpf = (GetPixelFormatF) (&(rt->GetPixelFormat)); diff --git a/windows/winutil.cpp b/windows/winutil.cpp index 507c5a3f..67f06068 100644 --- a/windows/winutil.cpp +++ b/windows/winutil.cpp @@ -144,7 +144,7 @@ D2D1_SIZE_F realGetSize(ID2D1RenderTarget *rt) return rt->GetSize(); #else D2D1_SIZE_F size; - typedef D2D1_SIZE_F *(__stdcall ID2D1RenderTarget::* GetSizeF)(D2D1_SIZE_F *); + typedef D2D1_SIZE_F *(__stdcall ID2D1RenderTarget::* GetSizeF)(D2D1_SIZE_F *) const; GetSizeF gs; gs = (GetSizeF) (&(rt->GetSize)); From 6d1e1d7f26737c1d3dafbf807968441d84ee6538 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 22:55:28 -0400 Subject: [PATCH 204/210] Try to fix Azure Pipelines. I won't be able to make a tag to test the binaries until I merge back in, but I can't figure out how to set the default branch with YAML configurations (unless I have to do it on master), so. --- azure-pipelines/artifacts.yml | 1 + azure-pipelines/windows-artifacts.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/azure-pipelines/artifacts.yml b/azure-pipelines/artifacts.yml index 9a3161e2..0e3373c4 100644 --- a/azure-pipelines/artifacts.yml +++ b/azure-pipelines/artifacts.yml @@ -18,6 +18,7 @@ steps: popd displayName: 'Create Artifacts' - task: GitHubRelease@0 + condition: eq(Build.SourceBranchName, "master") inputs: gitHubConnection: andlabs repositoryName: andlabs/libui diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index acf2831d..91efcb77 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -18,6 +18,7 @@ steps: popd displayName: 'Create Artifacts' - task: GitHubRelease@0 + condition: eq(Build.SourceBranchName, "master") inputs: gitHubConnection: andlabs repositoryName: andlabs/libui From d62e7670569616765c85684de88ad380a1bde75c Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 22:58:21 -0400 Subject: [PATCH 205/210] That didn't work; try it with template syntax instead. --- azure-pipelines/artifacts.yml | 18 +++++++++--------- azure-pipelines/windows-artifacts.yml | 19 ++++++++++--------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/azure-pipelines/artifacts.yml b/azure-pipelines/artifacts.yml index 0e3373c4..fa699fbc 100644 --- a/azure-pipelines/artifacts.yml +++ b/azure-pipelines/artifacts.yml @@ -17,12 +17,12 @@ steps: rm ui.h ${{ parameters.osHeader }} popd displayName: 'Create Artifacts' -- task: GitHubRelease@0 - condition: eq(Build.SourceBranchName, "master") - inputs: - gitHubConnection: andlabs - repositoryName: andlabs/libui - action: 'edit' - addChangelog: false - assets: '$(Build.ArtifactStagingDirectory)/*' - assetUploadMode: 'replace' +- {{ if eq(Build.SourceBranchName, "master") }} + - task: GitHubRelease@0 + inputs: + gitHubConnection: andlabs + repositoryName: andlabs/libui + action: 'edit' + addChangelog: false + assets: '$(Build.ArtifactStagingDirectory)/*' + assetUploadMode: 'replace' diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index 91efcb77..ed21e990 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -17,12 +17,13 @@ steps: Remove-Item @("ui.h","${{ parameters.osHeader }}") popd displayName: 'Create Artifacts' -- task: GitHubRelease@0 - condition: eq(Build.SourceBranchName, "master") - inputs: - gitHubConnection: andlabs - repositoryName: andlabs/libui - action: 'edit' - addChangelog: false - assets: '$(Build.ArtifactStagingDirectory)/*' - assetUploadMode: 'replace' +- {{ if eq(Build.SourceBranchName, "master") }} + - task: GitHubRelease@0 + condition: eq(Build.SourceBranchName, "master") + inputs: + gitHubConnection: andlabs + repositoryName: andlabs/libui + action: 'edit' + addChangelog: false + assets: '$(Build.ArtifactStagingDirectory)/*' + assetUploadMode: 'replace' From 50f019abef2758d273a0180995e409b13f053944 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 23:00:50 -0400 Subject: [PATCH 206/210] Oops --- azure-pipelines/artifacts.yml | 4 +++- azure-pipelines/windows-artifacts.yml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/azure-pipelines/artifacts.yml b/azure-pipelines/artifacts.yml index fa699fbc..f60a0d29 100644 --- a/azure-pipelines/artifacts.yml +++ b/azure-pipelines/artifacts.yml @@ -1,5 +1,7 @@ # 6 april 2019 +# TODO the github task requires authorization for the connection on non-master branches but I can't seem to figure out how to do that with a YAML pipeline + parameters: os: '' arch: '' @@ -17,7 +19,7 @@ steps: rm ui.h ${{ parameters.osHeader }} popd displayName: 'Create Artifacts' -- {{ if eq(Build.SourceBranchName, "master") }} +- {{ if eq(Build.SourceBranchName, "master") }}: - task: GitHubRelease@0 inputs: gitHubConnection: andlabs diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index ed21e990..d5ff70b2 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -17,7 +17,7 @@ steps: Remove-Item @("ui.h","${{ parameters.osHeader }}") popd displayName: 'Create Artifacts' -- {{ if eq(Build.SourceBranchName, "master") }} +- {{ if eq(Build.SourceBranchName, "master") }}: - task: GitHubRelease@0 condition: eq(Build.SourceBranchName, "master") inputs: From 7fb9cfae215af18cdda015ed84f39c0711810556 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 23:01:50 -0400 Subject: [PATCH 207/210] Double oops --- azure-pipelines/artifacts.yml | 2 +- azure-pipelines/windows-artifacts.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines/artifacts.yml b/azure-pipelines/artifacts.yml index f60a0d29..c8134c39 100644 --- a/azure-pipelines/artifacts.yml +++ b/azure-pipelines/artifacts.yml @@ -19,7 +19,7 @@ steps: rm ui.h ${{ parameters.osHeader }} popd displayName: 'Create Artifacts' -- {{ if eq(Build.SourceBranchName, "master") }}: +- ${{ if eq(Build.SourceBranchName, "master") }}: - task: GitHubRelease@0 inputs: gitHubConnection: andlabs diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index d5ff70b2..44965c4d 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -17,7 +17,7 @@ steps: Remove-Item @("ui.h","${{ parameters.osHeader }}") popd displayName: 'Create Artifacts' -- {{ if eq(Build.SourceBranchName, "master") }}: +- ${{ if eq(Build.SourceBranchName, "master") }}: - task: GitHubRelease@0 condition: eq(Build.SourceBranchName, "master") inputs: From 1761f99e810653270a110f3c5d202b8336a6f2b1 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 23:03:43 -0400 Subject: [PATCH 208/210] Triple oops, maybe?? --- azure-pipelines/artifacts.yml | 2 +- azure-pipelines/windows-artifacts.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines/artifacts.yml b/azure-pipelines/artifacts.yml index c8134c39..51c16c0b 100644 --- a/azure-pipelines/artifacts.yml +++ b/azure-pipelines/artifacts.yml @@ -19,7 +19,7 @@ steps: rm ui.h ${{ parameters.osHeader }} popd displayName: 'Create Artifacts' -- ${{ if eq(Build.SourceBranchName, "master") }}: +- ${{ if eq(variables['Build.SourceBranchName'], "master") }}: - task: GitHubRelease@0 inputs: gitHubConnection: andlabs diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index 44965c4d..e461abcb 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -17,7 +17,7 @@ steps: Remove-Item @("ui.h","${{ parameters.osHeader }}") popd displayName: 'Create Artifacts' -- ${{ if eq(Build.SourceBranchName, "master") }}: +- ${{ if eq(variables['Build.SourceBranchName'], "master") }}: - task: GitHubRelease@0 condition: eq(Build.SourceBranchName, "master") inputs: From c9ae167d90d806758b7932d5e594f72de77ddf03 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 23:08:08 -0400 Subject: [PATCH 209/210] I'm a dumb --- azure-pipelines/artifacts.yml | 2 +- azure-pipelines/windows-artifacts.yml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/azure-pipelines/artifacts.yml b/azure-pipelines/artifacts.yml index 51c16c0b..04bdfb8f 100644 --- a/azure-pipelines/artifacts.yml +++ b/azure-pipelines/artifacts.yml @@ -19,7 +19,7 @@ steps: rm ui.h ${{ parameters.osHeader }} popd displayName: 'Create Artifacts' -- ${{ if eq(variables['Build.SourceBranchName'], "master") }}: +- ${{ if eq(variables['Build.SourceBranchName'], 'master') }}: - task: GitHubRelease@0 inputs: gitHubConnection: andlabs diff --git a/azure-pipelines/windows-artifacts.yml b/azure-pipelines/windows-artifacts.yml index e461abcb..101e3b0d 100644 --- a/azure-pipelines/windows-artifacts.yml +++ b/azure-pipelines/windows-artifacts.yml @@ -17,9 +17,8 @@ steps: Remove-Item @("ui.h","${{ parameters.osHeader }}") popd displayName: 'Create Artifacts' -- ${{ if eq(variables['Build.SourceBranchName'], "master") }}: +- ${{ if eq(variables['Build.SourceBranchName'], 'master') }}: - task: GitHubRelease@0 - condition: eq(Build.SourceBranchName, "master") inputs: gitHubConnection: andlabs repositoryName: andlabs/libui From 425c9209523ec5a9cf17dd6998c617ae1272b330 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Sun, 7 Apr 2019 23:22:09 -0400 Subject: [PATCH 210/210] And updated the README with both the Azure Pipelines badge and Meson merge date. We're good to go! --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f9808cdd..790f63fd 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # libui: a portable GUI library for C This README is being written.
-[![Build Status, Linux and macOS](https://travis-ci.org/andlabs/libui.svg?branch=master)](https://travis-ci.org/andlabs/libui)
-[![Build Status, Windows](https://ci.appveyor.com/api/projects/status/ouyk78c52mmisa31?svg=true)](https://ci.appveyor.com/project/andlabs/libui) +[![Build Status, Azure Pipelines](https://dev.azure.com/andlabs/libui/_apis/build/status/andlabs.libui?branchName=master)](https://dev.azure.com/andlabs/libui/_build/latest?definitionId=1&branchName=master)
+[![Build Status, AppVeyor](https://ci.appveyor.com/api/projects/status/ouyk78c52mmisa31?svg=true)](https://ci.appveyor.com/project/andlabs/libui) ## Status @@ -30,8 +30,9 @@ But libui is not dead; I am working on it whenever I can, and I hope to get it t *Note that today's entry (Eastern Time) may be updated later today.* -* **