Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .coin-or/generate_readme
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,15 @@ popd > /dev/null

create_variables $SCRIPT_DIR/config.yml

# Binary packages of this project that make_build_info lists (see
# make_binary_packages in coinbrew's scripts/generate_readme)
Package_Repology="coinmp"
Package_Arch="coin-or-mp"
Package_Debian="coinor-libcoinmp-dev"
Package_FreeBSD="math/coinmp"
Package_MSYS2="mingw-w64-ucrt-x86_64-coin-or-mp"
Package_Conda="coinmp"

make_header

echo "CoinMP is a C-API interface library that supports most of the
Expand All @@ -27,16 +36,7 @@ or \`CoinMP.dll\` on Windows) that can be used from other C/C++ projects and
applications. The header file \`CoinMP/src/CoinMP.h\` contains the prototypes of all
functions of the library."

# Arch's package is called coin-or-mp, Debian's only coinor-libcoinmp-dev, and
# conda-forge's coinmp. There are no current Fedora, linuxbrew, or Homebrew
# packages of CoinMP.
make_build_info | awk '
/^ \* Fedora\/Redhat\/CentOS:/ || /^ \* linuxbrew:/ || /^ \* \*Mac OS X\*:/ { skip = 1; fences = 0; next }
skip { if (/```/ && ++fences == 2) skip = 0; next }
{ print }' | sed -e 's/pacman -S coin-or-coinmp/pacman -S coin-or-mp/' \
-e 's/coinor-coinmp coinor-libcoinmp-dev/coinor-libcoinmp-dev/' \
-e 's/conda install coin-or-coinmp/conda install -c conda-forge coinmp/' \
-e 's|repology.org/project/coin-or-coinmp/|repology.org/project/coinmp/|'
make_build_info

echo "### Example

Expand Down
8 changes: 8 additions & 0 deletions .github/workflows/linux-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,17 @@ on:
branches:
- 'master'
- 'stable/*'
paths-ignore:
- 'README.md'
- '.coin-or/generate_readme'
- '.github/workflows/readme.yml'
pull_request:
branches:
- '**'
paths-ignore:
- 'README.md'
- '.coin-or/generate_readme'
- '.github/workflows/readme.yml'
release:
types:
- created
Expand Down
29 changes: 29 additions & 0 deletions .github/workflows/readme.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
# Regenerates README.md with .coin-or/generate_readme when it or
# .coin-or/config.yml changes, and checks that pull requests changing
# README.md don't edit it directly. The weekly run (which runs on master only)
# regenerates the README of master and the latest stable branch, to pick up
# changes of coinbrew's scripts/generate_readme. See
# https://github.com/coin-or/coinbrew/blob/master/.github/workflows/generate-readme.yml
name: README
on:
push:
branches:
- 'master'
- 'stable/*'
paths:
- '.coin-or/config.yml'
- '.coin-or/generate_readme'
pull_request:
paths:
- 'README.md'
schedule:
- cron: '0 6 * * 1'
workflow_dispatch:

permissions:
contents: write

jobs:
readme:
uses: coin-or/coinbrew/.github/workflows/generate-readme.yml@master
8 changes: 8 additions & 0 deletions .github/workflows/windows-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,17 @@ on:
branches:
- 'master'
- 'stable/*'
paths-ignore:
- 'README.md'
- '.coin-or/generate_readme'
- '.github/workflows/readme.yml'
pull_request:
branches:
- '**'
paths-ignore:
- 'README.md'
- '.coin-or/generate_readme'
- '.github/workflows/readme.yml'
release:
types:
- created
Expand Down
38 changes: 20 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ available [here](https://coin-or.github.io/user_introduction.html).

There is a Docker image that provides CoinMP, as well as other projects
in the [COIN-OR Optimization
Suite](https://github.com/coin-or/COIN-OR-OptimizationSuite) [here](https://hub.docker.com/repository/docker/coinor/coin-or-optimization-suite)
Suite](https://github.com/coin-or/COIN-OR-OptimizationSuite) [here](https://hub.docker.com/r/coinor/coin-or-optimization-suite).

### Binaries

Expand All @@ -53,25 +53,28 @@ releases in Github
are archived as part of CoinMP
[here](https://www.coin-or.org/download/binary/CoinMP).

* *Linux* (see https://repology.org/project/coinmp/versions for a complete listing):
* arch:
* *Linux* (see https://repology.org/project/coinmp/versions for a complete listing):
* Arch Linux:
```
$ sudo pacman -S coin-or-mp
sudo pacman -S coin-or-mp
```
* Debian/Ubuntu:
* Debian and Ubuntu:
```
$ sudo apt-get install coinor-libcoinmp-dev
```
* freebsd:
```
$ sudo pkg install math/coinmp
sudo apt install coinor-libcoinmp-dev
```
* *FreeBSD*:
```
sudo pkg install math/coinmp
```
* *Windows*: The easiest way to get CoinMP on Windows is to download an archive as described above.

* *conda* (cross-platform):
```
$ conda install -c conda-forge coinmp
```
With [MSYS2](https://www.msys2.org), in the UCRT64 environment, do
```
pacman -S mingw-w64-ucrt-x86_64-coin-or-mp
```
* *conda* (cross-platform):
```
conda install -c conda-forge coinmp
```

Due to license incompatibilities, pre-compiled binaries lack some
functionality. If binaries are not available for your platform for the latest
Expand All @@ -94,7 +97,7 @@ CoinMP has a number of dependencies, which are detailed in
automatically downloaded when obtaining the source with `coinbrew`. For some
of the remaining third-party dependencies, automatic download scripts and
build wrappers are provided (and will also be automatically run for required
and recommended dependencies), while other libraries that are aeasy to obtain
and recommended dependencies), while other libraries that are easy to obtain
must be installed using an appropriate package manager (or may come with your
OS by default).

Expand All @@ -119,7 +122,7 @@ The `coinbrew` script will fetch the additional projects specified in the Depend

* Download the source code, e.g., by cloning the git repo https://github.com/coin-or/CoinMP
* Download and install the source code for the dependencies listed in [config.yml](.coin-or/config.yml)
* Build the code as follows (make sure to set PKG_CONFIG_PTH to install directory for dependencies).
* Build the code as follows (make sure to set `PKG_CONFIG_PATH` to the `lib/pkgconfig` directory of the installation of the dependencies).

```
./configure -C
Expand Down Expand Up @@ -147,5 +150,4 @@ make
* [COIN-OR general discussion forum](https://github.com/orgs/coin-or/discussions)
* [CoinMP Discussion forum](https://github.com/coin-or/CoinMP/discussions)
* [Report a bug](https://github.com/coin-or/CoinMP/issues/new)
* [Doxygen generated documentation](http://coin-or.github.io/CoinMP/Doxygen)

Loading