Skip to content

Commit

Permalink
Merge pull request #85 from jrincayc/release_6_2_work
Browse files Browse the repository at this point in the history
Release 6.2 work.
  • Loading branch information
jrincayc authored Dec 30, 2020
2 parents d8fc446 + 873caa5 commit 33bc656
Show file tree
Hide file tree
Showing 11 changed files with 305 additions and 34 deletions.
271 changes: 271 additions & 0 deletions .github/workflows/cd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,271 @@
name: CD

on:
push:
branches:
- cd_*
- master
- release*

env:
INNO_VERSION: 6.1.2
WX_WIDGETS_VERSION: 3.0.5

jobs:

# ############################################################################
# The build_wxwidgets_<platform> jobs handle building and caching wxWidgets.
#
# This reduces total build time by a measurable amount, as wxWidgets can take
# over 30 minutes to build.
# ############################################################################

build_wxwidgets_osx:
name: Build wxWidgets for OSX
runs-on: macos-latest
timeout-minutes: 60
steps:
- name: Cache wxWidgets
uses: actions/cache@v2
id: wxwidgets-cache
with:
path: ${{ runner.temp }}/wxWidgets-${{ env.WX_WIDGETS_VERSION }}
key: ${{ runner.os }}-wxWidgets-${{ env.WX_WIDGETS_VERSION }}
- name: Download wxWidgets
if: steps.wxwidgets-cache.outputs.cache-hit != 'true'
working-directory: ${{ runner.temp }}
run: |
wget https://github.com/wxWidgets/wxWidgets/releases/download/v${{ env.WX_WIDGETS_VERSION }}/wxWidgets-${{ env.WX_WIDGETS_VERSION }}.tar.bz2
tar -xjf wxWidgets-${{ env.WX_WIDGETS_VERSION }}.tar.bz2
- name: Build wxwidgets
if: steps.wxwidgets-cache.outputs.cache-hit != 'true'
working-directory: ${{ runner.temp }}/wxWidgets-${{ env.WX_WIDGETS_VERSION }}
run: |
mkdir build-static
cd build-static
../configure --disable-shared --enable-unicode --with-macosx-version-min=10.14
make -j2
build_wxwidgets_windows:
name: Build wxWidgets for Windows
runs-on: windows-latest
timeout-minutes: 60
steps:
- name: Cache wxWidgets
uses: actions/cache@v2
id: wxwidgets-cache
with:
path: ${{ runner.temp }}\wxWidgets-${{ env.WX_WIDGETS_VERSION }}
key: ${{ runner.os }}-wxWidgets-${{ env.WX_WIDGETS_VERSION }}
- name: Install Dependencies
if: steps.wxwidgets-cache.outputs.cache-hit != 'true'
uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
install: >
git
base-devel
mingw-w64-i686-toolchain
unzip
- name: Download wxWidgets
if: steps.wxwidgets-cache.outputs.cache-hit != 'true'
working-directory: ${{ runner.temp }}
shell: msys2 {0}
run: |
mkdir wxWidgets-${{ env.WX_WIDGETS_VERSION }}
cd wxWidgets-${{ env.WX_WIDGETS_VERSION }}
wget -q https://github.com/wxWidgets/wxWidgets/releases/download/v${{ env.WX_WIDGETS_VERSION }}/wxWidgets-${{ env.WX_WIDGETS_VERSION }}.zip
unzip -q wxWidgets-${{ env.WX_WIDGETS_VERSION }}.zip
rm wxWidgets-${{ env.WX_WIDGETS_VERSION }}.zip
- name: Build wxWidgets
if: steps.wxwidgets-cache.outputs.cache-hit != 'true'
working-directory: ${{ runner.temp }}\wxWidgets-${{ env.WX_WIDGETS_VERSION }}\build\msw
shell: msys2 {0}
env:
# NOTE: wxWidgets 3.1.x has a fix for the narrowing issue; but, this
# approach should work for now given with wxWidgets 3.0.x
CFLAGS: -Wno-narrowing
CXXFLAGS: -Wno-narrowing
# NOTE: using -j2 appears to cause problems on the MinGW builds
run: |
mingw32-make -f makefile.gcc SHARED=0 UNICODE=1 BUILD=release clean
mingw32-make -f makefile.gcc SHARED=0 UNICODE=1 BUILD=release
# ############################################################################
# The build_<platform> jobs handle building Logo for each platform.
#
# Linux is run first as it produces the PDF for the other platform builds
# to use.
# ############################################################################

build_linux:
name: Build Logo for Linux
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Install Dependencies
run: >
sudo apt-get install
autoconf-archive
libwxgtk3.0-dev
texlive
zip
- name: Checkout Repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Build Logo
run: |
autoreconf --install
./configure --enable-gitid
make -j2 dist
make -j2 dist-zip
- name: Archive ucblogo.tar.gz
uses: actions/upload-artifact@v2
with:
name: ucblogo.tar.gz
path: >
*.tar.gz
- name: Archive ucblogo.zip
uses: actions/upload-artifact@v2
with:
name: ucblogo.zip
path: >
*.zip
- name: Archive ucblogo.pdf
uses: actions/upload-artifact@v2
with:
name: ucblogo.pdf
path: docs/ucblogo.pdf

build_osx:
name: Build Logo for OSX
needs: [ build_wxwidgets_osx, build_linux ]
runs-on: macos-latest
timeout-minutes: 15
steps:
- name: Install Dependencies
run: >
brew install
autoconf-archive
automake
wxwidgets
- name: wxWidgets Cache
uses: actions/cache@v2
id: wxwidgets-cache
with:
path: ${{ runner.temp }}/wxWidgets-${{ env.WX_WIDGETS_VERSION }}
key: ${{ runner.os }}-wxWidgets-${{ env.WX_WIDGETS_VERSION }}
- name: Checkout Repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Download PDF manual
uses: actions/download-artifact@v2
with:
name: ucblogo.pdf
path: docs
- name: Build Logo
env:
WX_CONFIG_PATH: ${{ runner.temp }}/wxWidgets-${{ env.WX_WIDGETS_VERSION }}/build-static/wx-config
run: |
autoreconf --install
./configure --enable-gitid --with-wx-config=$WX_CONFIG_PATH
make -j2 ucblogo.dmg
- name: Archive ucblogo.dmg
uses: actions/upload-artifact@v2
with:
name: ucblogo.dmg
path: ucblogo.dmg

download_inno_windows:
name: Download Inno for Windows
runs-on: windows-latest
timeout-minutes: 5
steps:
- name: Cache inno
uses: actions/cache@v2
id: inno-cache
with:
path: ${{ runner.temp }}\innosetup-${{ env.INNO_VERSION }}
key: ${{ runner.os }}-innosetup-${{ env.INNO_VERSION }}
- name: Install Dependencies
uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
- name: Download inno
if: steps.inno-cache.outputs.cache-hit != 'true'
working-directory: ${{ runner.temp }}
shell: msys2 {0}
run: |
mkdir innosetup-${{ env.INNO_VERSION }}
cd innosetup-${{ env.INNO_VERSION }}
wget -q https://files.jrsoftware.org/is/6/innosetup-${{ env.INNO_VERSION }}.exe
build_windows:
name: Build Logo for Windows
needs: [ download_inno_windows, build_wxwidgets_windows, build_linux ]
runs-on: windows-latest
timeout-minutes: 15
steps:
- name: Install Dependencies
uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
install: >
git
base-devel
mingw-w64-i686-toolchain
unzip
- name: Inno Cache
uses: actions/cache@v2
id: inno-cache
with:
path: ${{ runner.temp }}\innosetup-${{ env.INNO_VERSION }}
key: ${{ runner.os }}-innosetup-${{ env.INNO_VERSION }}
- name: Install Inno
working-directory: ${{ runner.temp }}\innosetup-${{ env.INNO_VERSION }}
shell: pwsh
run: |
./innosetup-${{ env.INNO_VERSION }}.exe /SP- /VERYSILENT /ALLUSERS /SUPPRESSMSGBOXES
- name: wxWidgets Cache
uses: actions/cache@v2
id: wxwidgets-cache
with:
path: ${{ runner.temp }}\wxWidgets-${{ env.WX_WIDGETS_VERSION }}
key: ${{ runner.os }}-wxWidgets-${{ env.WX_WIDGETS_VERSION }}
- name: Checkout Repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Prepare Repository
shell: msys2 {0}
run: |
git clean -x -d -f .
mingw32-make -f makefile.msys git.c
rm libloc.c
- name: Download PDF manual
uses: actions/download-artifact@v2
with:
name: ucblogo.pdf
path: docs
- name: Find MinGW bin directory
shell: msys2 {0}
run: |
echo "MINGW_BIN_DIR=`dirname $(command -v gcc)`" >> $GITHUB_ENV
- name: Build Logo
shell: msys2 {0}
env:
WX_DIR: ${{ runner.temp }}\wxWidgets-${{ env.WX_WIDGETS_VERSION }}
run: |
mingw32-make -f makefile.msys MINGW_BIN_DIR=$MINGW_BIN_DIR WX_DIR=$WX_DIR install_win
- name: Run Inno
working-directory: ${{ github.workspace }}\inno
shell: pwsh
run: |
iscc ucblogo.iss
- name: Archive installer
uses: actions/upload-artifact@v2
with:
name: ucblogosetup.exe
path: inno/ucblogo62setup.exe
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,12 @@ along with this program. If not, see https://www.gnu.org/licenses/.

This uses the repository https://github.com/jrincayc/ucblogo-code
created for further UCBLogo development.
The current version is 6.1
The current version is 6.2

Changes for this release:
* The license has been changed to GPL3.
* The wxWidgets version updated to compile and run with version 3.0.
* Adjustments made to compile and run on newer OSX versions.
* Variety fixes like fixing implicit function definitions, fixing a line cursor behaviour, etc.
* Added optional object oriented LOGO features ( --enable-objects )
* autoconf based build system
* Variety of bug fixes

Here is an overview of the repository:
* csls - Programs form [Brian Harvey's trilogy "Computer Science Logo Style"](https://people.eecs.berkeley.edu/~bh/).
Expand All @@ -50,13 +49,19 @@ respective web sites.

## Usage

To build Logo under *nix, do this:
To build Logo under *nix, install wxWidgets and other dependencies
and then do this:
```
autoreconf --install
./configure
make
```

Note that if you don't have autoconf, the release .tar.gz have already built
configure files.

[UCBLogo Releases](https://github.com/jrincayc/ucblogo-code/releases)

## Previous versions

For getting UCBLogo previous versions such as version 6.0 if you're running wxWidgets or 5.4 if not, please visit [Brian Harvey's UCBLogo GitHub repository](https://github.com/brianharvey/UCBLogo).
Expand Down
8 changes: 7 additions & 1 deletion configure.ac
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.69])
AC_INIT([ucblogo],[6.1],[],[],[https://github.com/jrincayc/ucblogo-code])
AC_INIT([ucblogo],[6.2],[],[],[https://github.com/jrincayc/ucblogo-code])
AC_CONFIG_SRCDIR([logodata.c])
AC_CONFIG_HEADER(config.h)

Expand Down Expand Up @@ -34,6 +34,7 @@ AS_IF([test x${enable_gitid} = xyes],
[AC_DEFINE([GITID],[1],[enable gitid in version])])
AM_CONDITIONAL([GITID], [test x${enable_gitid} = xyes])

m4_ifdef([WX_CONFIG_CHECK], [
WX_CONFIG_OPTIONS
WX_CONFIG_CHECK([3.0.0], [wxWin=1])
Expand All @@ -48,6 +49,11 @@ AM_COND_IF([WX],
CXXFLAGS="$WX_CXXFLAGS_ONLY $CXXFLAGS"
CFLAGS="$WX_CFLAGS_ONLY $CFLAGS"
LIBS="$WX_LIBS $LIBS"])
], [
AC_MSG_NOTICE([No WX_CONFIG_CHECK available])
AM_CONDITIONAL([WX], [test 1 = 0])
])


AC_MSG_CHECKING([enable_x11])
AC_ARG_ENABLE([x11],
Expand Down
4 changes: 2 additions & 2 deletions docs/ucblogo.texi
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename ucblogo.info
@settitle BERKELEY LOGO 6.1
@settitle BERKELEY LOGO 6.2
@setchapternewpage odd
@c %**end of header

Expand All @@ -24,7 +24,7 @@
@finalout

@titlepage
@title BERKELEY LOGO 6.1
@title BERKELEY LOGO 6.2
@subtitle Berkeley Logo User Manual
@author Brian Harvey
@end titlepage
Expand Down
2 changes: 1 addition & 1 deletion inno/ucblogo.iss
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Source: "C:\UCBLOGO\lib\logo\HELPFILES\*.*"; DestDir: "{app}\HELPFILE"; CopyMode
Source: "C:\UCBLOGO\lib\logo\LOGOLIB\*.*"; DestDir: "{app}\LOGOLIB"; CopyMode: alwaysoverwrite; Components: program
Source: "C:\UCBLOGO\lib\logo\LICENSE"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Components: program
Source: "C:\UCBLOGO\lib\logo\README.txt"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Components: program
Source: "C:\UCBLOGO\lib\logo\usermanual.pdf"; DestDir: "{app}\DOCS"; CopyMode: alwaysoverwrite; Components: pdf
Source: "C:\UCBLOGO\lib\logo\ucblogo.pdf"; DestDir: "{app}\DOCS"; CopyMode: alwaysoverwrite; Components: pdf
Source: "C:\UCBLOGO\lib\logo\SOURCE\*.*"; DestDir: "{app}\SOURCE"; CopyMode: alwaysoverwrite; Components: source

[Icons]
Expand Down
2 changes: 1 addition & 1 deletion logolib/Messages
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
; UCBLogo message file version 6.1
; UCBLogo message file version 6.2
; Error messages -- position in this file corresponds to error number
; Lines starting with semicolon don't count in the line numbering
; and may be added at will.
Expand Down
2 changes: 1 addition & 1 deletion logolib/Messages.fr
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
; French version of Berkeley Logo messages file 6.1
; French version of Berkeley Logo messages file 6.2
; Error messages -- position in this file corresponds to error number
; Lines starting with semicolon don't count in the line numbering
; and may be added at will.
Expand Down
2 changes: 1 addition & 1 deletion logolib/Messages.sp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
; Spanish version of Berkeley Logo messages file 6.1
; Spanish version of Berkeley Logo messages file 6.2
; Error messages -- position in this file corresponds to error number
; Lines starting with semicolon don't count in the line numbering
; and may be added at will.
Expand Down
2 changes: 1 addition & 1 deletion logolib/Messages.zh_TW
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
; UCBLogo message file version 6.1
; UCBLogo message file version 6.2
; Error messages -- position in this file corresponds to error number
; Lines starting with semicolon don't count in the line numbering
; and may be added at will.
Expand Down
Loading

0 comments on commit 33bc656

Please sign in to comment.