build without conan #157
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build without conan | |
| on: | |
| schedule: | |
| # 01:00 every Monday morning | |
| - cron: '0 1 * * 1' | |
| workflow_dispatch: {} | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build_and_test: | |
| runs-on: ubuntu-24.04 | |
| env: | |
| INSTALL_DIR: "/home/runner/local" | |
| TMP_DIR: "/home/runner/tmp" | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Create directories | |
| run: | | |
| mkdir ${INSTALL_DIR} | |
| mkdir ${TMP_DIR} | |
| - name: ccache | |
| uses: hendrikmuhs/[email protected] | |
| with: | |
| key: no-conan-build-ubuntu-24.04 | |
| - name: install ninja | |
| run: | | |
| sudo apt update | |
| sudo apt install ninja-build | |
| - name: Install boost | |
| run: | | |
| cd ${TMP_DIR} | |
| wget -O boost_1_89_0.tar.gz https://sourceforge.net/projects/boost/files/boost/1.89.0/boost_1_89_0.tar.gz/download | |
| tar xzvf boost_1_89_0.tar.gz | |
| cd boost_1_89_0/ | |
| ./bootstrap.sh --prefix=${INSTALL_DIR} | |
| ./b2 | |
| ./b2 install | |
| # gmp already installed | |
| - name: Install symengine | |
| run: | | |
| cd ${TMP_DIR} | |
| wget https://github.com/symengine/symengine/archive/refs/tags/v0.14.0.tar.gz | |
| tar xzvf v0.14.0.tar.gz | |
| cd symengine-0.14.0/ | |
| sed -i -e 's/cmake_minimum_required(VERSION 2.8.12)/cmake_minimum_required(VERSION 3.5)/g' cmake/SymEngineConfig.cmake.in | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_TESTS=OFF -DBUILD_BENCHMARKS=OFF -DWITH_SYMENGINE_THREAD_SAFE=ON .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install eigen | |
| run: | | |
| cd ${TMP_DIR} | |
| wget https://gitlab.com/libeigen/eigen/-/archive/5.0.1/eigen-5.0.1.tar.bz2 | |
| bzip2 -dk eigen-5.0.1.tar.bz2 | |
| tar xvf eigen-5.0.1.tar | |
| cd eigen-5.0.1/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} .. | |
| cmake --build . | |
| cmake --install . | |
| - name: Install nlohmann_json | |
| run: | | |
| cd ${TMP_DIR} | |
| wget https://github.com/nlohmann/json/releases/download/v3.12.0/json.tar.xz | |
| tar xvf json.tar.xz | |
| cd json/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DJSON_BuildTests=OFF .. | |
| cmake --build . | |
| cmake --install . | |
| - name: Install catch2 | |
| run: | | |
| cd ${TMP_DIR} | |
| wget https://github.com/catchorg/Catch2/archive/refs/tags/v3.11.0.tar.gz | |
| tar xzvf v3.11.0.tar.gz | |
| cd Catch2-3.11.0/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install rapidcheck | |
| run: | | |
| cd ${TMP_DIR} | |
| wget https://github.com/emil-e/rapidcheck/archive/ff6af6fc683159deb51c543b065eba14dfcf329b.zip | |
| unzip ff6af6fc683159deb51c543b065eba14dfcf329b.zip | |
| cd rapidcheck-ff6af6fc683159deb51c543b065eba14dfcf329b/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: install tsl-robin-map | |
| run: | | |
| cd ${TMP_DIR} | |
| wget https://github.com/Tessil/robin-map/archive/v1.4.0.tar.gz | |
| tar xzvf v1.4.0.tar.gz | |
| cd robin-map-1.4.0/ | |
| mkdir build | |
| cd build | |
| cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install nanobind | |
| run: | | |
| cd ${TMP_DIR} | |
| wget https://github.com/wjakob/nanobind/archive/refs/tags/v2.9.2.tar.gz | |
| tar xzvf v2.9.2.tar.gz | |
| cd nanobind-2.9.2/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DNB_TEST=OFF -DNB_USE_SUBMODULE_DEPS=OFF .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install tklog | |
| run: | | |
| cd libs/tklog/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install tkrng | |
| run: | | |
| cd libs/tkrng/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install tkassert | |
| run: | | |
| cd libs/tkassert/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install tkwsm | |
| run: | | |
| cd libs/tkwsm/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install tktokenswap | |
| run: | | |
| cd libs/tktokenswap/ | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install tket | |
| run: | | |
| cd tket | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DBUILD_TKET_TEST=ON -DBUILD_TKET_PROPTEST=ON -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install runtime test requirements | |
| run: | | |
| sudo apt update | |
| sudo apt install texlive texlive-latex-extra latexmk | |
| mkdir -p ~/texmf/tex/latex | |
| wget http://mirrors.ctan.org/graphics/pgf/contrib/quantikz/tikzlibraryquantikz.code.tex -P ~/texmf/tex/latex | |
| - name: Run test-tket | |
| run: | | |
| cd ${INSTALL_DIR}/bin | |
| ./test-tket | |
| - name: Run proptest-tket | |
| run: | | |
| cd ${INSTALL_DIR}/bin | |
| ./proptest-tket | |
| - name: Install tklog (shared) | |
| run: | | |
| cd libs/tklog/build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_SHARED_LIBS=1 .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Install tket (shared) | |
| run: | | |
| cd tket/build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_WITH_INSTALL_RPATH=1 -DCMAKE_INSTALL_RPATH="\${ORIGIN}" .. | |
| cmake --build . -j2 | |
| cmake --install . | |
| - name: Set up Python 3.11 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.11' | |
| - name: Install pytket | |
| run: | | |
| cd pytket | |
| NO_CONAN=1 pip install -v -e . | |
| - name: test pytket | |
| run: | | |
| cd pytket/tests | |
| pip install -r requirements.txt | |
| pytest | |
| - name: Install tket-c-api | |
| run: | | |
| cd tket-c-api | |
| mkdir build | |
| cd build | |
| cmake -GNinja -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON .. | |
| cmake --build . -j2 | |
| cmake --install . |