Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: Transition to modern cmake #199

Open
wants to merge 67 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
2aca38c
basic transition to target-oriented cmake
N-Maas Nov 11, 2024
fe58396
restructure tools build
N-Maas Nov 14, 2024
3f1f194
position independent code for library build
N-Maas Nov 14, 2024
863afa0
Include boost and tbb via modern cmake
N-Maas Nov 15, 2024
7bef7db
option for enabling tests
N-Maas Nov 15, 2024
e6663ee
cleanup
N-Maas Nov 15, 2024
21aa906
use BUILD_SHARED_LIBS cmake parameter
N-Maas Nov 15, 2024
28cbe6a
code coverage works for interface tests
N-Maas Nov 15, 2024
a2f78e3
rename test targets
N-Maas Nov 15, 2024
8f5c469
cleanup cmake output and replace flag list with summary header
N-Maas Nov 15, 2024
72a3fad
unify tool names and check check whether boost is disabled
N-Maas Nov 15, 2024
b4e0f95
the problem with boost and presets...
N-Maas Nov 15, 2024
f020910
replace submodule dependencies with fetch content
N-Maas Nov 15, 2024
4aa8219
declare dependency versions
N-Maas Nov 15, 2024
a6674c0
message minor
N-Maas Nov 15, 2024
4436f5c
register algorithms/policies at runtime
N-Maas Nov 15, 2024
e2a9e97
correct fetch_content for growt
N-Maas Nov 18, 2024
6feb193
small improvements
N-Maas Nov 18, 2024
3a171bb
new hwloc detection
N-Maas Nov 18, 2024
a02e305
set c++ standard properly
N-Maas Nov 18, 2024
9d5c8ec
find boost policy
N-Maas Nov 18, 2024
4dde7d8
rearrange/rename options
N-Maas Nov 18, 2024
50a3fd5
add presets
N-Maas Nov 18, 2024
66c0f61
update branch CI
N-Maas Nov 18, 2024
b834379
fix python
N-Maas Nov 18, 2024
4c242de
support static linking as far as possible
N-Maas Nov 18, 2024
ca2ae9a
improvements and fixes
N-Maas Nov 18, 2024
b0faf80
use FetchContent_Populate for all header-only libraries
N-Maas Nov 18, 2024
b9017c1
branch ci minor
N-Maas Nov 18, 2024
03a341c
master ci
N-Maas Nov 22, 2024
86998f1
remove too old ubuntu from ci
N-Maas Nov 18, 2024
c05d40d
don't rename TBB
N-Maas Nov 18, 2024
68ba124
unused variable
N-Maas Nov 18, 2024
589e46b
add static build
N-Maas Nov 18, 2024
3d97d70
coverage
N-Maas Nov 19, 2024
416930d
fix for libudev handling
N-Maas Nov 22, 2024
4fc9445
cleanup code coverage
N-Maas Nov 19, 2024
f73c917
ci with static linking
N-Maas Nov 19, 2024
137d6dd
another udev fix
N-Maas Nov 19, 2024
6314081
final (?) fix for hwloc
N-Maas Nov 19, 2024
fd98511
debug build for tests
N-Maas Nov 22, 2024
5f17256
check static linking
N-Maas Nov 19, 2024
b33c102
windows build needs static linking
N-Maas Nov 22, 2024
a0fd18f
proper handling of datastructure source files
N-Maas Nov 20, 2024
9d6785d
improve build type handling
N-Maas Nov 20, 2024
fbe2cbf
.codecov
N-Maas Nov 22, 2024
1ce1b3a
coverage
N-Maas Nov 22, 2024
8d6955f
setup installation
N-Maas Nov 20, 2024
ee78eeb
libmtkahypar -> mtkahypar
N-Maas Nov 20, 2024
e8bce2b
remove build script
N-Maas Nov 21, 2024
234a59b
remove lgtm.yml
N-Maas Nov 22, 2024
7356bb2
remove git revision module
N-Maas Nov 22, 2024
dd6eedd
readme changes #1
N-Maas Nov 22, 2024
19c3e5f
even more aggressive exclusion patterns
N-Maas Nov 21, 2024
f443c21
add target for installation of the CLI
N-Maas Nov 21, 2024
da4a000
update version
N-Maas Nov 21, 2024
2040a0f
readme changes #2
N-Maas Nov 22, 2024
a70933e
file formats #1
N-Maas Nov 22, 2024
0007464
complete file format list and replace links
N-Maas Nov 22, 2024
2a6877c
short section on tools
N-Maas Nov 22, 2024
cac4538
whoops
N-Maas Nov 22, 2024
096e241
allow even more static linking
N-Maas Nov 22, 2024
f277980
static linking: simplify cmake logic, just include a check
N-Maas Nov 25, 2024
44f9c87
only include growt when SSE is available
N-Maas Nov 25, 2024
716ec08
be more careful to set install prefix
N-Maas Nov 25, 2024
486f8ee
improve platform-specific code
N-Maas Nov 25, 2024
b824f74
fix
N-Maas Nov 25, 2024
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: 1 addition & 1 deletion .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ ignore:
- "tools/*"
- "python/**/*"
- "mt-kahypar/definitions.h"
- "mt-kahypar/application/kahypar.cc"
- "mt-kahypar/application/mt_kahypar.cc"
- "mt-kahypar/io/command_line_options.h"
- "mt-kahypar/io/command_line_options.cpp"
- "mt-kahypar/io/partitioning_output.h"
Expand Down
44 changes: 16 additions & 28 deletions .github/workflows/branch_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,116 +11,104 @@ jobs:
strategy:
matrix:
compiler: [ { os: ubuntu-22.04, cpp: g++-11, cc: gcc-11, install_cmd: g++-11 gcc-11 },
{ os: ubuntu-24.04, cpp: g++-14, cc: gcc-14, install_cmd: g++-14 gcc-14 },
{ os: ubuntu-22.04, cpp: clang++, cc: clang, install_cmd: clang } ]

runs-on: ${{ matrix.compiler.os }}
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1

steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1

- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libboost-program-options-dev libhwloc-dev lcov gcovr ${{ matrix.compiler.install_cmd }}

- name: Install Mt-KaHyPar Test Suite
- name: Install Mt-KaHyPar
env:
CC: ${{ matrix.compiler.cc }}
CXX: ${{ matrix.compiler.cpp }}
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_SOED_METRIC=OFF -DKAHYPAR_ENABLE_STEINER_TREE_METRIC=OFF -DKAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES=OFF -DKAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
cmake .. --preset=minimal-dev -DKAHYPAR_CI_BUILD=ON
make -j2 MtKaHyPar

mt_kahypar_test_suite:
name: Test Suite
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1

steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1

- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev lcov gcovr
sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev lcov gcovr g++-14 gcc-14

- name: Install Mt-KaHyPar Test Suite
env:
CC: gcc-14
CXX: g++-14
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_USE_GCOV=ON -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_SOED_METRIC=OFF -DKAHYPAR_ENABLE_STEINER_TREE_METRIC=OFF -DKAHYPAR_ENABLE_GRAPH_PARTITIONING_FEATURES=OFF -DKAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
make -j2 mt_kahypar_tests;
cmake .. --preset=minimal-dev -DKAHYPAR_USE_GCOV=ON -DKAHYPAR_CI_BUILD=ON
make -j2 mtkahypar_tests

- name: Run Mt-KaHyPar Tests
run: |
cd build
./tests/mt_kahypar_tests
./tests/mtkahypar_tests

mt_kahypar_c_interface_tests:
name: C Interface Tests
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1

steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1

- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev lcov gcovr

- name: Run Mt-KaHyPar C Library Interface Tests
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON
make -j2 interface_test
cmake .. --preset=dev -DKAHYPAR_CI_BUILD=ON
make -j2 mtkahypar_interface_test

mt_kahypar_python_interface_tests:
name: Python Interface Tests
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1

steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1

- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev lcov gcovr

- name: Build Mt-KaHyPar Python Interface
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON
cmake .. --preset=python -DKAHYPAR_CI_BUILD=ON
make mtkahypar_python -j2

- name: Run Mt-KaHyPar Python Interface Tests
Expand Down
Loading
Loading