alexey-lysiuk / bym Goto Github PK
View Code? Open in Web Editor NEWBuild Your Mac: Configurable build environment for macOS
License: GNU General Public License v3.0
Build Your Mac: Configurable build environment for macOS
License: GNU General Public License v3.0
Patch content (or its hash sum) should be stored and so should affect validation of previously saved settings
The latest PyCharm 2017.2.3 running macOS 10.13 outputs the following message on every tar
invocation:
tar: Failed to set default locale
If download fails with 403 Forbidden error, do a request again with well known user agent, Firefox for example.
Hopefully this will fix #26. The issue with Travis CI downloads is different problem ๐
Put targets into separate files by alphabet (i.e. _a.py
, _b.py
, etc) and make a package that export the single packages()
function
Up-to-date/out-of-date states should be extended with at least forced download, extract+patch and rebuild states
Re-add ability to customize build environment via file, i.e. Python module with extra options
At the moment names of all processed packages are printed including pkg-config
It's better to avoid outputting of up-to-date package names
All customization are ignored thanks to handmade makefile.
Downloading of some tarballs fails for unknown reason during Travis builds
With upcoming deprecation of Python 2, switch to 3.7.x currently shipped with Xcode.
According to Travis CI log SDL2
cannot detect installed libsamplerate
It has no releases but SVN repository, see https://icculus.org/smpeg/
It's an optional dependency for SDL_mixer
Place bym
shell script in root directory and move all source files to src
subdirectory
Find the way to add --disable-dependency-tracking
command line option to ./configure
intelligently
Is it possible to detect availability of this switch, using some regex maybe?
smpeg
)No exception should be passed to a user
Can be a part of #13
Add coloring for text output using hard-coded escape code or via dedicated Python module
Add command line to list available packages: brief (names only) and full (URL, checksum, dependencies, commands)
Refactor package from dict
to own Package
class. It will encapsulate all operations: download, extract, verify and build.
Source URL and hash sum are mandatory arguments, dependencies and build commands are optional.
Overriding of environment variables should be reconsidered.
Build command will be changed from tuple
to Command
class hierarchy: Autogen
, Configure
, CMake
, Install
, etc.
Commands and dependencies can be a single instance, list or tuple of corresponding instances.
make install
is too common and probably can be assumed if no other make-like command is specified.
configure --disable-shared --enable-static
can be a default one.
Need to choose minor version
Add check for availability of command line tools
Apply unified diff via patch
(requires shell subprocess) or using patch module:
import patch
pset = patch.fromfile(your_unified_diff_file)
pset.apply()
If applying of at least one patch hunk failed the build process should stop
Split targets onto multiple bym.py
invocations to test settings caching
It has lots of dependencies
64kB should be enough for everyone
Add option to specify additional arguments for configure
Add switch to suppress build output
Another option is to add verbose mode but keep it disabled by default
When download was aborted by user, the next invocation will trigger checksum mismatch error.
Another request is needed to finally build a package.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.