Building MiniGUI 4.0
- Commands to build dependencies
- Cross Building
- Change Log
This repo contains some scripts and dependencies to build MiniGUI 4.0.x
This instruction assumes that you are using Ubuntu Linux 16.04 LTS or 18.04 LTS.
Note that, we have switched the repos to branch rel-4-0.
You should run
apt install <package_name> to install the following packages
on your Ubuntu Linux.
- Building tools:
- Dependent libraries:
- libpng12-dev (libpng-dev on Ubuntu Linux 18.04 instead)
- electric-fence (used by mg-tests)
If you are using Ubuntu Linux 18.04, please install
libpng-dev. Ubuntu 18.04
does not provide support for libpng12-dev.
Please make sure that you can visit GitHub and you can do
sudo on your Linux box.
- Clone this repo from GitHub:
$ git clone https://github.com/VincentWei/build-minigui-4.0.git $ cd build-minigui-4.0/
myconfig.shto match your needs:
$ cp config.sh myconfig.sh
fetch-all.shto fetch all source from GitHub:
build-deps.shto build and install gvfb, chipmunk, and harfbuzz:
build-all.shto build all:
$ cd /usr/local/bin $ ./mguxdemo
When there were some updates in the remote repos, you can run
update them. You can run
clean-build-all.sh to uninstall, clean,
and re-install them.
Note that you might need to run
ldconfig to refresh the shared libraries cache
Commands to build dependencies
The following steps are those ones in
build-deps.sh. We list them here for
- Make and install
$ cd gvfb $ cmake . $ make; sudo make install $ cd ..
- Make and install
chipmunklibrary (DO NOT use the chipmunk-dev package which is provided by Ubuntu):
$ cd 3rd-party/chipmunk $ cmake . $ make; sudo make install $ cd ../..
- Make and install
harfbuzzlibrary (DO NOT use the harfbuzz-dev package which is provided by Ubuntu):
$ cd 3rd-party/harfbuzz $ ./autogen.sh $ ./config-extern.sh $ make; sudo make install $ cd ../..
MiniGUI 4.0.x can run on lots of CPUs with different architechtures, such as ARM, MIPS and so on, after cross compiled. There is a directory named "cross-build", in which there are some scripts for cross compile.
As an example, there is a directory name "arm-r16-linux", which means: This directory is for ARM CPU --- r16, and the Operation System is Linux. In this directory, there are two scipts for download packages, and build MiniGUI 4.0.x for ARM version. You can read the README.md in this directory in detail:
Of course you can build your own directory for your developped CPU and OS.
Currently, this repo just includes some scripts to build MiniGUI 4.0.x core, components, and demonstration apps.
Copyright (C) 2020 Beijing FMSoft Technologies Co., Ltd.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
The above open source or free software license does not apply to any entity in the Exception List published by Beijing FMSoft Technologies Co., Ltd.
If you are or the entity you represent is listed in the Exception List, the above open source or free software license does not apply to you or the entity you represent. Regardless of the purpose, you should not use the software in any way whatsoever, including but not limited to downloading, viewing, copying, distributing, compiling, and running. If you have already downloaded it, you MUST destroy all of its copies.
The Exception List is published by FMSoft and may be updated from time to time. For more information, please see https://www.fmsoft.cn/exception-list.
Also note that the software in
3rd-party/ may use different licenses.
Please refer to the
COPYING files in the source trees for more
Note that the software fetched from remote repositories may use different
licenses. Please refer to the
COPYING files in the source trees
for more information.