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
2 changes: 0 additions & 2 deletions .ci/.travis.pre

This file was deleted.

4 changes: 0 additions & 4 deletions .ci/appveyor.pre

This file was deleted.

5 changes: 5 additions & 0 deletions .coin-or/Dependencies
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
CoinUtils https://github.com/coin-or/CoinUtils master
Osi https://github.com/coin-or/Osi master
Clp https://github.com/coin-or/Clp master
Cgl https://github.com/coin-or/Cgl master
Cbc https://github.com/coin-or/Cbc master
60 changes: 60 additions & 0 deletions .coin-or/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
Description:
Slug: CoinMP
ShortName: CoinMP
LongName: CoinMP
ShortDescription: A lightweight C API library for Clp, Cbc, and Cgl.
LongDescription: |2
CoinMP is a C-API interface library that supports most of the
functionality of the CLP (Coin LP), CBC (Coin Branch-and-Cut), and CGL
(Cut Generation Library) projects. It can be used as a shared library
(or DLL on Windows) from other C/C++ projects and applications.
Manager: Bjarni Kristjansson
Homepage: https://github.com/coin-or/CoinMP
License: Eclipse Public License 2.0
LicenseURL: http://www.opensource.org/licenses/EPL-2.0
Zenodo:
IncludedIn:
Package: CoinMP
Language:
- C++
Categories:
- Optimization deterministic linear continuous
- Optimization deterministic linear discrete
- Interfaces

Dependencies:
- Description: COIN-OR Utilities
URL: https://github.com/coin-or/CoinUtils
Version: master
Required: Required
- Description: Open Solver Interface
URL: https://github.com/coin-or/Osi
Version: master
Required: Required
- Description: COIN-OR Linear Programming Solver
URL: https://github.com/coin-or/Clp
Version: master
Required: Required
- Description: Cut Generator Library
URL: https://github.com/coin-or/Cgl
Version: master
Required: Required
- Description: COIN-OR Branch-and-Cut
URL: https://github.com/coin-or/Cbc
Version: master
Required: Required

DevelopmentStatus:
activityStatus: Active
maturityLevel: 5
testedPlatforms:
- operatingSystem: Linux
compiler: gcc
- operatingSystem: Mac OS X
compiler:
- gcc
- clang
- operatingSystem: Microsoft Windows with MSys2
compiler:
- gcc
- cl
53 changes: 53 additions & 0 deletions .coin-or/generate_readme
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/usr/bin/env bash

# Exit when command fails
set -e
#Attempt to use undefined variable outputs error message, and forces an exit
set -u
#Causes a pipeline to return the exit status of the last command in the pipe
#that returned a non-zero return value.
set -o pipefail
#set -x

source $COINBREW_HOME/scripts/generate_readme

pushd . > /dev/null
cd $(dirname $0)
SCRIPT_DIR=$PWD
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
functionality of the CLP (Coin LP), CBC (Coin Branch-and-Cut), and CGL (Cut
Generation Library) projects. It is built as a shared library (\`libCoinMP\`,
or \`CoinMP.dll\` on Windows) that can be used from other C/C++ projects and
applications. The header file \`src/CoinMP.h\` contains the prototypes of all
functions of the library."

make_build_info

echo "### Example

The \`examples\` directory has a C program that solves a few small problems
with CoinMP. After building and installing CoinMP, it can be built by running
\`make\` in the corresponding subdirectory of the build directory, e.g.,
\`\`\`
cd build/CoinMP/master/examples
make
./example
\`\`\`
"

make_links
4 changes: 2 additions & 2 deletions .coin-or/projDesc.xml
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,10 @@
<!--Fill in your text below (outside the comment block). -->

<projectLicense>
Common Public License 1.0
Eclipse Public License 2.0
</projectLicense>
<projectLicenseURL>
http://www.opensource.org/licenses/cpl1.0.php
http://www.opensource.org/licenses/EPL-2.0
</projectLicenseURL>

<!-- Below, you can list other COIN projects your project -->
Expand Down
111 changes: 111 additions & 0 deletions .github/workflows/linux-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
name: Linux build and test
on:
workflow_dispatch:
push:
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

jobs:
test:
name: Run tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
build_static: [true, false]
flags: [ADD_CXXFLAGS=-fvisibility=hidden]
download_requirements: [sudo apt install -y -qq gfortran liblapack-dev libmetis-dev libnauty-dev]
include:
- os: macos-26-intel
build_static: false
flags: CC=clang CXX=clang++
download_requirements: brew install metis bash
- os: macos-26
build_static: false
flags: CC=gcc-15 CXX=g++-15 ADD_CXXFLAGS=-Wl,-ld_classic
download_requirements: brew install metis bash
- os: macos-15
build_static: false
flags: CC=clang CXX=clang++
download_requirements: brew install metis bash

steps:
- name: Checkout source
uses: actions/checkout@v6
with:
path: ${{ github.event.repository.name }}
- name: Install required packages from package manager
run: ${{ matrix.download_requirements }}
- name: Checkout coinbrew
uses: actions/checkout@v6
with:
repository: coin-or/coinbrew
path: coinbrew
- name: Build project
run: |
export ${{ matrix.flags }}
ADD_ARGS=()
ADD_ARGS+=( --skip='ThirdParty/Metis ThirdParty/Mumps ThirdParty/Blas ThirdParty/Lapack' )
ADD_BUILD_ARGS=()
ADD_BUILD_ARGS+=( --tests main --enable-relocatable )
ADD_BUILD_ARGS+=( --verbosity 2 )
[[ ${{ matrix.build_static }} == "true" ]] && \
ADD_BUILD_ARGS+=( --disable-shared )
bash coinbrew/coinbrew fetch ${{ github.event.repository.name }} --skip-update \
"${ADD_ARGS[@]}"
bash coinbrew/coinbrew build ${{ github.event.repository.name }} \
"${ADD_ARGS[@]}" "${ADD_BUILD_ARGS[@]}" \
ADD_CXXFLAGS="${ADD_CXXFLAGS}" CC=${CC} CXX=${CXX}
[[ ${CC} ]] && CC="${CC}" || CC=""
echo "CC=${CC}" >> $GITHUB_ENV
- name: Archive dist contents
run: |
cp ${{ github.event.repository.name }}/README.md dist/
cp ${{ github.event.repository.name }}/LICENSE dist/
tar -czvf release.tar.gz -C dist .
- name: Checkout package name generation script
uses: actions/checkout@v6
with:
repository: coin-or-tools/platform-analysis-tools
path: tools
ref: 0.0.2
- name: Retrieve platform info
run: |
python3 -m venv venv
source venv/bin/activate
pip install -r tools/requirements.txt
[[ ${{ matrix.build_static }} == "true" ]] && buildtype=static || buildtype=
platform_str=`python3 tools/hsf_get_platform.py -b $buildtype`
echo "platform_string=${platform_str}" >> $GITHUB_ENV
- name: Upload Artifact
uses: actions/upload-artifact@v6
with:
name: ${{ github.event.repository.name }}-${{ env.platform_string }}.tar.gz
path: release.tar.gz
if-no-files-found: error
- name: Upload package to release
if: ${{ github.event_name == 'release'}}
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./release.tar.gz
asset_name: ${{ github.event.repository.name }}-${{ github.event.release.tag_name }}-${{ env.platform_string }}.tar.gz
asset_content_type: application/gzip
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
20 changes: 20 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Create Release

on:
push:
tags:
- '*'

jobs:
create_release:
runs-on: ubuntu-latest
steps:
- uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.TKRALPHS_RELEASE }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
Loading
Loading