blob: 3044d294b5182512f77243a9498f93566fc549d8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
name: Continuous Integration
on: [push, pull_request]
jobs:
ubuntu:
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
compiler: ['CC=gcc CXX=g++', 'CC=clang CXX=clang++']
interface: [ncurses, gtk]
# NOTE: The virtual environments already contain both GCC and Clang
runs-on: ${{ matrix.os }}
steps:
- name: Git Clone
uses: actions/checkout@v4.1.6
with:
submodules: true
- name: Update Repositories
run: sudo apt-get update
- name: Install Build Dependencies
run: >
sudo apt-get install -y
build-essential
autoconf automake libtool
libglib2.0-dev libncurses-dev libgtk-3-dev xvfb
groff doxygen
- name: Configure Build
run: |
autoreconf -i
./configure --with-interface=${{ matrix.interface }} --enable-debug --enable-html-manual \
${{ matrix.compiler }}
# NOTE: xvfb-run emulates an XServer and is required when building
# Gtk versions (since SciTECO calls itself during the build).
- name: make
run: xvfb-run -a make
- name: make install
run: sudo xvfb-run -a make install
# NOTE: The test suite must be run in verbose mode because if it fails
# we won't be able to analyze testsuite.log.
- name: Run Test Suite
run: xvfb-run -a make check TESTSUITEFLAGS="--verbose"
- name: Build Developer Documentation
run: cd doc && make devdoc
# FIXME: Will try to perform an out-of-tree build which will not
# work without manual intervention due to Scintilla.
# - name: make distcheck
# run: xvfb-run -a make distcheck
- name: Build Source Tarball
run: make dist
macos:
runs-on: macos-latest
steps:
- name: Git Clone
uses: actions/checkout@v4.1.6
with:
submodules: true
# NOTE: macOS already ships with ncurses and
# XCode already comes with the autotools.
- name: Install Build Dependencies
run: brew install autoconf automake libtool glib groff doxygen
- name: Configure Build
env:
# Make sure we don't pick up GCC by accident.
CC: clang
CXX: clang++
run: |
autoreconf -i
./configure --with-interface=ncurses --enable-debug --enable-html-manual
- run: make
- run: make install
# NOTE: The test suite must be run in verbose mode because if it fails
# we won't be able to analyze testsuite.log.
- name: Run Test Suite
run: make check TESTSUITEFLAGS="--verbose"
- name: Build Developer Documentation
run: cd doc && make devdoc
# FIXME: Will try to perform an out-of-tree build which will not
# work without manual intervention due to Scintilla.
# - run: make distcheck
- name: Build Source Tarball
run: make dist
win32:
runs-on: windows-latest
defaults:
run:
shell: bash.exe --login -eo pipefail "{0}"
env:
MSYSTEM: MINGW32
CHERE_INVOKING: 1
steps:
- name: Git Clone
uses: actions/checkout@v4.1.6
with:
submodules: true
- name: Set Up Shell
run: echo C:\msys64\usr\bin\ | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
shell: pwsh
- name: Install Build Dependencies
run: >
pacman -S --noconfirm --needed
base-devel autotools mingw-w64-i686-toolchain
mingw-w64-i686-glib2 mingw-w64-i686-pdcurses
groff mingw-w64-i686-doxygen
- name: Configure Build
env:
PDCURSES_CFLAGS: -I/mingw32/include/pdcurses/
run: |
autoreconf -i
./configure --with-interface=pdcurses-gui --enable-debug --enable-html-manual
- run: make
- run: make install
# NOTE: The test suite must be run in verbose mode because if it fails
# we won't be able to analyze testsuite.log.
- name: Run Test Suite
run: make check TESTSUITEFLAGS="--verbose"
- name: Build Developer Documentation
run: cd doc && make devdoc
# FIXME: Will try to perform an out-of-tree build which will not
# work without manual intervention due to Scintilla.
# - run: make distcheck
- name: Build Source Tarball
run: make dist
|