Skip to content

Commit 5f99912

Browse files
committed
Merged latest into this branch and cleared conflicts
2 parents 1bbc7df + 0a84909 commit 5f99912

File tree

773 files changed

+90328
-17938
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

773 files changed

+90328
-17938
lines changed

.bazelrc

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
build --enable_platform_specific_config
2+
3+
build:windows --enable_runfiles
4+
5+
build:asan --strip=never
6+
build:asan --copt -fsanitize=address
7+
build:asan --copt -O1
8+
build:asan --copt -g
9+
build:asan --copt -fno-omit-frame-pointer
10+
build:asan --linkopt -fsanitize=address
11+
12+
build:tsan --strip=never
13+
build:tsan --copt -fsanitize=thread
14+
build:tsan --copt -O1
15+
build:tsan --copt -g
16+
build:tsan --copt -fno-omit-frame-pointer
17+
build:tsan --linkopt -fsanitize=thread
18+
19+
build:lsan --strip=never
20+
build:lsan --copt -fsanitize=leak
21+
build:lsan --copt -O1
22+
build:lsan --copt -g
23+
build:lsan --copt -fno-omit-frame-pointer
24+
build:lsan --linkopt -fsanitize=leak
25+
26+
build:ubsan --strip=never
27+
build:ubsan --copt -fsanitize=undefined
28+
build:ubsan --copt -O1
29+
build:ubsan --copt -g
30+
build:ubsan --copt -fno-omit-frame-pointer
31+
build:ubsan --linkopt -fsanitize=undefined

.github/julia/build_tarballs.jl

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
# !!! note
2+
# This file is a version of the file we use to package HiGHS for the Julia
3+
# ecosystem. If you make changes to this file during the development of
4+
# HiGHS, please tag `@odow` so we can make the correponding changes to:
5+
# https://github.com/JuliaPackaging/Yggdrasil/blob/master/H/HiGHS
6+
7+
using BinaryBuilder, Pkg
8+
9+
name = "HiGHS"
10+
version = VersionNumber(ENV["HIGHS_RELEASE"])
11+
12+
sources = [GitSource(ENV["HIGHS_URL"], ENV["HIGHS_COMMIT"])]
13+
14+
script = raw"""
15+
export BUILD_SHARED="ON"
16+
export BUILD_STATIC="OFF"
17+
18+
cd $WORKSPACE/srcdir/HiGHS
19+
20+
# Remove system CMake to use the jll version
21+
apk del cmake
22+
23+
mkdir -p build
24+
cd build
25+
26+
# Do fully static build only on Windows
27+
if [[ "${BUILD_SHARED}" == "OFF" ]] && [[ "${target}" == *-mingw* ]]; then
28+
export CXXFLAGS="-static"
29+
fi
30+
31+
cmake -DCMAKE_INSTALL_PREFIX=${prefix} \
32+
-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} \
33+
-DCMAKE_BUILD_TYPE=Release \
34+
-DBUILD_SHARED_LIBS=${BUILD_SHARED} \
35+
-DZLIB_USE_STATIC_LIBS=${BUILD_STATIC} \
36+
-DHIPO=ON \
37+
-DBLAS_LIBRARIES="${libdir}/libopenblas.${dlext}" \
38+
..
39+
40+
if [[ "${target}" == *-linux-* ]]; then
41+
make -j ${nproc}
42+
else
43+
if [[ "${target}" == *-mingw* ]]; then
44+
cmake --build . --config Release
45+
else
46+
cmake --build . --config Release --parallel
47+
fi
48+
fi
49+
make install
50+
51+
install_license ../LICENSE.txt
52+
"""
53+
54+
products = [
55+
LibraryProduct("libhighs", :libhighs),
56+
ExecutableProduct("highs", :highs),
57+
]
58+
59+
platforms = supported_platforms()
60+
platforms = expand_cxxstring_abis(platforms)
61+
62+
dependencies = [
63+
Dependency("CompilerSupportLibraries_jll"),
64+
Dependency("Zlib_jll"),
65+
Dependency("OpenBLAS32_jll"),
66+
HostBuildDependency(PackageSpec(; name="CMake_jll")),
67+
]
68+
69+
build_tarballs(
70+
ARGS,
71+
name,
72+
version,
73+
sources,
74+
script,
75+
platforms,
76+
products,
77+
dependencies;
78+
preferred_gcc_version = v"11",
79+
julia_compat = "1.6",
80+
)

.github/workflows/build-bazel.yml

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@ jobs:
66
bazel:
77
runs-on: ${{ matrix.os }}
88
strategy:
9+
fail-fast: false
910
matrix:
10-
os: [macos-latest]
11+
os: [macos-latest, ubuntu-latest]
1112

1213
steps:
1314
- uses: actions/checkout@v4
@@ -16,12 +17,39 @@ jobs:
1617

1718
- name: bazel clean
1819
run: bazel clean
19-
20+
2021
- name: build bazel
2122
run: bazel build //...
22-
23+
2324
- name: test all
24-
run: bazel test //...
25+
run: bazel test --test_output=all //...
26+
27+
- name: test example
28+
run: ./bazel-bin/call-highs-example
29+
30+
# - name: Upload bazel-testlogs
31+
# uses: actions/upload-artifact@v4
32+
# with:
33+
# name: bazel-testlogs-${{ matrix.os }}
34+
# path: bazel-testlogs/
35+
36+
37+
bazel-win_:
38+
runs-on: windows-latest
39+
steps:
40+
- uses: actions/checkout@v4
41+
42+
# Bazelisk is available via Chocolatey (on Windows)
43+
- name: Install Bazelisk
44+
run: |
45+
choco install bazelisk --yes
46+
bazelisk version
47+
48+
- name: Build with Bazelisk
49+
run: bazelisk build //...
50+
51+
- name: Run tests with Bazelisk
52+
run: bazelisk test --test_output=all //...
2553

2654
- name: test example
27-
run: ./bazel-bin/call-highs-example
55+
run: ./bazel-bin/call-highs-example.exe

.github/workflows/build-fast.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
- name: Configure CMake
1919
shell: bash
2020
working-directory: ${{runner.workspace}}/build
21-
run: cmake $GITHUB_WORKSPACE -DFAST_BUILD=ON -DCMAKE_BUILD_TYPE=RELEASE
21+
run: cmake $GITHUB_WORKSPACE -DFAST_BUILD=ON -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_UNITY_BUILD=ON
2222

2323
- name: Build
2424
working-directory: ${{runner.workspace}}/build
@@ -45,7 +45,7 @@ jobs:
4545
- name: Configure CMake
4646
shell: bash
4747
working-directory: ${{runner.workspace}}/build
48-
run: cmake $GITHUB_WORKSPACE -DFAST_BUILD=ON -DCMAKE_BUILD_TYPE=DEBUG
48+
run: cmake $GITHUB_WORKSPACE -DFAST_BUILD=ON -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_UNITY_BUILD=ON
4949

5050
- name: Build
5151
working-directory: ${{runner.workspace}}/build

.github/workflows/build-intel.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: build-intel
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- uses: actions/checkout@v2
10+
11+
- name: Add oneAPI to apt
12+
shell: bash
13+
run: |
14+
cd /tmp
15+
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
16+
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
17+
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
18+
sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"
19+
20+
- name: Install oneAPI basekit
21+
shell: bash
22+
run: |
23+
sudo apt update
24+
sudo apt install intel-basekit
25+
26+
- name: Check compiler
27+
run: |
28+
source /opt/intel/oneapi/setvars.sh
29+
icpx --version
30+
icx --version
31+
32+
- name: Configure
33+
shell: bash
34+
run: |
35+
source /opt/intel/oneapi/setvars.sh
36+
cmake -S . -B build \
37+
-DCMAKE_BUILD_TYPE="RelWithDebInfo" \
38+
-DCMAKE_INSTALL_PREFIX=install \
39+
-DCMAKE_CXX_COMPILER=icpx \
40+
-DCMAKE_C_COMPILER=icx \
41+
-DALL_TESTS=ON \
42+
-DIntelDPCPP_DIR="/opt/intel/oneapi/compiler/latest/linux/cmake/SYCL" \
43+
44+
- name: Build
45+
shell: bash
46+
run: |
47+
source /opt/intel/oneapi/setvars.sh
48+
cmake --build build --parallel
49+
50+
# If the unit tests below are failing run to see details.
51+
# - name: Unit Test
52+
# shell: bash
53+
# run: |
54+
# source /opt/intel/oneapi/setvars.sh
55+
# export SYCL_DEVICE_FILTER=opencl.cpu
56+
# pwd
57+
# ls
58+
# ls build
59+
# ls build/bin
60+
# ./build/bin/unit_tests
61+
62+
- name: Test
63+
shell: bash
64+
run: |
65+
source /opt/intel/oneapi/setvars.sh
66+
export SYCL_DEVICE_FILTER=opencl.cpu
67+
ctest --test-dir build --output-on-failure --timeout 300

.github/workflows/build-meson.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,6 @@ jobs:
4545
# run: |
4646
# meson configure bbdir -Dwith_pybind11=True
4747
# meson compile -C bbdir
48-
# LD_LIBRARY_PATH=$(pwd)/bbdir/src \
48+
# LD_LIBRARY_PATH=$(pwd)/bbdir/highs \
4949
# PYTHONPATH=$(pwd)/bbdir \
5050
# python examples/call_highs_from_python.py

0 commit comments

Comments
 (0)