diff --git a/README.md b/README.md index 173ec0ce3f2d5141b2fad278e94f828c9c927a17..aea1bd8efa0ca826fbb0ac3b5606e421e3eec817 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,47 @@ This repository contains all golang dependencies currently used in Bitmask Andro Run the follwing command to build Bitmask Core for all Android build flavors (runs currently only on Linux 64-bit distros): -`./build_core.sh` \ No newline at end of file +`./build_core.sh` + +## Adding new go libraries + +1. In order to add new library we currently add them as git submodules. +``` +git submodule add git://<repository_url.git> <new_lib_directory> +``` + +2. Most of the time the new library has its own `go.mod` and `go.sum` file. You need to copy and paste all `required` dependencies from the new libraries `go.mod` to the `go.mod` in the bitmaskcore directory. Similarly, you have also to take care about `replace` entries. + +3. delete `go.mod` and `go.sum` from the new library +``` +# you should be in bitmaskcore +cd <new_lib_directory> +rm go.mod go.sum +``` +4. create a patch from the diff +``` +# you should be in bitmaskcore/<new_lib_directory> +git diff > ../<new_lib>.patch +git stash +cd .. +``` +4. Make sure the `bitmaskcore/golang` directory is empty. +``` +# you should be in bitmaskcore +rm -rf ./golang/* +``` +5. And let go add any missing modules. +``` +# you should be in bitmaskcore +go mod tidy +``` +6. Update [build_core.sh](build_core.sh) and add some lines of code below the exting patches section + +``` +# -------- preparing <new_lib> --------------- +showtitle "Applying patch to <new_lib>" +patch --directory=<new_lib_directory> --strip=1 < <new_lib>.patch || quit +``` + +7. `git add` your changes and commit them +8. run `./build_core.sh` and make sure it succeeds