- Install Nix, the functional package manager. You'll need Linux (but macOS might work too).
- Make sure you have at least 4 GB of free space available for
/tmp
and a few GB of free space available for/nix
. - To get my recipes, run:
git clone https://github.com/DavidEGrayson/nixcrpkgs && cd nixcrpkgs && git checkout 4f7b11d
That commit is the current tip of the dev/david/2019 branch. - To build a i686-w64-mingw32 C/C++ cross-compiling toolchain and a hello world program, run:
nix-build -A win32.hello
- To build Qt and its examples, run:
nix-build -A win32.qt.examples
- To just build the toolchain itself, run:
nix-build -A win32.gcc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ffprobe foo.mp4 # Make sure the audio stream is aac. | |
ffmpeg -i foo.mp4 -vn -acodec copy foo.aac | |
ffmpeg -i foo.aac -acodec pcm_s16le foo.wav | |
# Edit foo.wav with audacity, save to foo_edited.wav. | |
ffmpeg -i foo_edited.wav -acodec aac foo_edited.aac | |
ffmpeg -i foo.mp4 -codec copy -an foo_silent.mp4 | |
ffmpeg -i foo_silent.mp4 -i foo_edited.aac -shortest -c:v copy -c:a aac foo_edited.mp4 | |
# Reduce file size and remove sounds | |
ffmpeg -i foo.mp4 -vcodec libx264 -crf 28 -an foo_out.mp4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[root@alderaan gradual]# pacman -Sy archlinux-keyring | |
:: Synchronizing package databases... | |
core is up to date | |
extra is up to date | |
community is up to date | |
warning: archlinux-keyring-20180108-1 is up to date -- reinstalling | |
resolving dependencies... | |
looking for conflicting packages... | |
Packages (1) archlinux-keyring-20180108-1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ clang-format --version | |
clang-format version 5.0.0 (tags/RELEASE_500/final) | |
$ cat .clang-format | |
AllowShortBlocksOnASingleLine: true | |
$ cat test.cpp | |
int foo(int x) | |
{ | |
if (x == 0) { return 1; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ cat somefile.h | |
struct a; | |
struct a *init(); | |
void setd(struct a*p, int dd); | |
int getd(struct a*p); | |
void cleanup(struct a*p); | |
$ cat somefile.c |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ cat test.sh | |
#!/bin/sh | |
for a in 0; do | |
echo b=$(echo "c-d" | tr - _) | |
done | |
$ . test.sh | |
b=c_d |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ cat test.c | |
#include <stdio.h> | |
#include <stdlib.h> | |
int main(int argc, char ** argv) | |
{ | |
for(int i = 0; i < argc; i ++) | |
{ | |
printf("%d = %s\n", i, argv[i]); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ cat /dev/bus/usb/001/002 | head -c18 | hexdump | |
0000000 0112 0110 0000 0800 80ee 0021 0100 0301 | |
0000010 0100 | |
0000012 | |
$ lsusb | |
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet | |
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Given an array of dependencies and a block for retrieving dependencies of an | |
# dependency, returns an array of dependencies with three guarantees: | |
# | |
# 1) Contains all the listed dependencies. | |
# 2) Has no duplicates. | |
# 3) For any dependency in the list, all of its dependencies appear before it. | |
# | |
# Guarantee 3 only holds if the underlying graph has no circul dependencies. If | |
# there is a circular dependency, it will not be detected, but it will not cause | |
# an infinite loop either. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
set -ue | |
pacman -S --needed "${MINGW_PACKAGE_PREFIX}-qt5-static" | |
if [ ! -d qt ]; then | |
wget https://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtbase-opensource-src-5.8.0.tar.xz -O qt.tar.xz | |
tar -xf qt.tar.xz | |
mv qtbase-opensource-src-5.8.0 qt | |
fi |