diff --git a/.github/scripts/boost.sh b/.github/scripts/boost.sh deleted file mode 100644 index 3c7e01274..000000000 --- a/.github/scripts/boost.sh +++ /dev/null @@ -1,18 +0,0 @@ -### Script to install Boost -BOOST_FOLDER=boost_${BOOST_VERSION//./_} - -# Download Boost -wget https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/${BOOST_FOLDER}.tar.gz - -# Unzip -tar -zxf ${BOOST_FOLDER}.tar.gz - -# Bootstrap -cd ${BOOST_FOLDER}/ -./bootstrap.sh --with-libraries=serialization,filesystem,thread,system,atomic,date_time,timer,chrono,program_options,regex - -# Build and install -sudo ./b2 -j$(nproc) install - -# Rebuild ld cache -sudo ldconfig diff --git a/.github/scripts/unix.sh b/.github/scripts/unix.sh index 1676ad537..c48921504 100644 --- a/.github/scripts/unix.sh +++ b/.github/scripts/unix.sh @@ -58,8 +58,10 @@ function configure() fi # GTSAM_BUILD_WITH_MARCH_NATIVE=OFF: to avoid crashes in builder VMs + # CMAKE_CXX_FLAGS="-w": Suppress warnings to avoid IO latency in CI logs cmake $SOURCE_DIR \ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:-Debug} \ + -DCMAKE_CXX_FLAGS="-w" \ -DGTSAM_BUILD_TESTS=${GTSAM_BUILD_TESTS:-OFF} \ -DGTSAM_BUILD_UNSTABLE=${GTSAM_BUILD_UNSTABLE:-ON} \ -DGTSAM_WITH_TBB=${GTSAM_WITH_TBB:-OFF} \ @@ -70,11 +72,9 @@ function configure() -DGTSAM_POSE3_EXPMAP=${GTSAM_POSE3_EXPMAP:-ON} \ -DGTSAM_USE_SYSTEM_EIGEN=${GTSAM_USE_SYSTEM_EIGEN:-OFF} \ -DGTSAM_USE_SYSTEM_METIS=${GTSAM_USE_SYSTEM_METIS:-OFF} \ + -DGTSAM_FORCE_SHARED_LIB=${GTSAM_FORCE_SHARED_LIB:-OFF} \ -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF \ - -DGTSAM_SINGLE_TEST_EXE=OFF \ - -DBOOST_ROOT=$BOOST_ROOT \ - -DBoost_NO_SYSTEM_PATHS=ON \ - -DBoost_ARCHITECTURE=-x64 + -DGTSAM_SINGLE_TEST_EXE=OFF } @@ -97,7 +97,7 @@ function build () if [ "$(uname)" == "Linux" ]; then if (($(nproc) > 2)); then - make -j$(nproc) + make -j4 else make -j2 fi diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index b678a71db..129b5aaaf 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -1,6 +1,6 @@ name: Linux CI -on: [push, pull_request] +on: [pull_request] jobs: build: @@ -12,7 +12,6 @@ jobs: CTEST_PARALLEL_LEVEL: 2 CMAKE_BUILD_TYPE: ${{ matrix.build_type }} GTSAM_BUILD_UNSTABLE: ${{ matrix.build_unstable }} - BOOST_VERSION: 1.67.0 strategy: fail-fast: true @@ -82,7 +81,7 @@ jobs: - name: Install Boost run: | - bash .github/scripts/boost.sh + sudo apt-get -y install libboost-all-dev - name: Build and Test run: bash .github/scripts/unix.sh -t diff --git a/.github/workflows/build-python.yml b/.github/workflows/build-python.yml index 442e26e47..f09d589dc 100644 --- a/.github/workflows/build-python.yml +++ b/.github/workflows/build-python.yml @@ -53,6 +53,7 @@ jobs: steps: - name: Checkout uses: actions/checkout@v3 + - name: Install (Linux) if: runner.os == 'Linux' run: | @@ -79,6 +80,7 @@ jobs: echo "CC=clang-${{ matrix.version }}" >> $GITHUB_ENV echo "CXX=clang++-${{ matrix.version }}" >> $GITHUB_ENV fi + - name: Install (macOS) if: runner.os == 'macOS' run: | @@ -88,22 +90,27 @@ jobs: sudo xcode-select -switch /Applications/Xcode.app echo "CC=clang" >> $GITHUB_ENV echo "CXX=clang++" >> $GITHUB_ENV + - name: Set GTSAM_WITH_TBB Flag if: matrix.flag == 'tbb' run: | echo "GTSAM_WITH_TBB=ON" >> $GITHUB_ENV echo "GTSAM Uses TBB" + - name: Set Swap Space if: runner.os == 'Linux' uses: pierotofy/set-swap-space@master with: swap-size-gb: 6 + - name: Install Dependencies run: | bash .github/scripts/python.sh -d + - name: Build run: | bash .github/scripts/python.sh -b + - name: Test run: | bash .github/scripts/python.sh -t diff --git a/.github/workflows/build-special.yml b/.github/workflows/build-special.yml index 7582bf41c..0d1cd5bdd 100644 --- a/.github/workflows/build-special.yml +++ b/.github/workflows/build-special.yml @@ -12,7 +12,7 @@ jobs: CTEST_PARALLEL_LEVEL: 2 CMAKE_BUILD_TYPE: ${{ matrix.build_type }} GTSAM_BUILD_UNSTABLE: ON - BOOST_VERSION: 1.67.0 + GTSAM_FORCE_SHARED_LIB: ON # Make shared library to save memory on CI strategy: fail-fast: false @@ -93,14 +93,20 @@ jobs: sudo apt-get -y install cmake build-essential pkg-config libpython3-dev python3-numpy libicu-dev - sudo apt-get install -y clang-${{ matrix.version }} g++-multilib - echo "CC=clang-${{ matrix.version }}" >> $GITHUB_ENV - echo "CXX=clang++-${{ matrix.version }}" >> $GITHUB_ENV + if [ "${{ matrix.compiler }}" = "gcc" ]; then + sudo apt-get install -y g++-${{ matrix.version }} g++-${{ matrix.version }}-multilib + echo "CC=gcc-${{ matrix.version }}" >> $GITHUB_ENV + echo "CXX=g++-${{ matrix.version }}" >> $GITHUB_ENV + else + sudo apt-get install -y clang-${{ matrix.version }} g++-multilib + echo "CC=clang-${{ matrix.version }}" >> $GITHUB_ENV + echo "CXX=clang++-${{ matrix.version }}" >> $GITHUB_ENV + fi - name: Install Boost if: runner.os == 'Linux' run: | - bash .github/scripts/boost.sh + sudo apt-get -y install libboost-all-dev - name: Install (macOS) if: runner.os == 'macOS' @@ -151,6 +157,12 @@ jobs: echo "GTSAM_USE_BOOST_FEATURES=OFF" >> $GITHUB_ENV echo "GTSAM will not use BOOST" + - name: Set Swap Space + if: runner.os == 'Linux' + uses: pierotofy/set-swap-space@master + with: + swap-size-gb: 12 + - name: Build & Test run: | bash .github/scripts/unix.sh -t