From 2af8e4fad857da2cb27445d9b6c6de01f08c8bc1 Mon Sep 17 00:00:00 2001 From: vgrigoriev Date: Sat, 22 May 2021 07:24:29 +0300 Subject: [PATCH] Dependencies: Update Travis CI script --- .travis.yml | 22 ++++++---------- CMakeLists.txt | 11 +++++++- install_gtest.sh | 45 +++++++++++++++++++++++++++++++++ install_llvm.sh | 2 +- tests/unit_tests/CMakeLists.txt | 4 +-- 5 files changed, 66 insertions(+), 18 deletions(-) create mode 100755 install_gtest.sh diff --git a/.travis.yml b/.travis.yml index 8b9ba49..d48d976 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ os: linux -dist: bionic +dist: focal language: cpp branches: @@ -12,7 +12,7 @@ addon_shortcuts: apt: sources: - ubuntu-toolchain-r-test - - sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main' + - sourceline: 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-9 main' key_url: https://apt.llvm.org/llvm-snapshot.gpg.key packages: - clang-9 @@ -22,7 +22,7 @@ addon_shortcuts: apt: sources: - ubuntu-toolchain-r-test - - sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main' + - sourceline: 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main' key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key' packages: - clang-10 @@ -32,7 +32,7 @@ addon_shortcuts: apt: sources: - ubuntu-toolchain-r-test - - sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main' + - sourceline: 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main' key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key' packages: - clang-11 @@ -42,7 +42,7 @@ addon_shortcuts: apt: sources: - ubuntu-toolchain-r-test - - sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-12 main' + - sourceline: 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-12 main' key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key' packages: - clang-12 @@ -97,25 +97,19 @@ install: - | CMAKE_URL="https://cmake.org/files/v3.20/cmake-3.20.2-linux-x86_64.tar.gz" mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake + export PATH=${DEPS_DIR}/cmake/bin:${PATH} - | ../install_boost.sh ${DEPS_DIR} - | ../install_llvm.sh ${DEPS_DIR} - | - GOOGLETEST_URL="https://github.com/google/googletest/archive/release-1.10.0.tar.gz" - mkdir googletest && travis_retry wget --no-check-certificate --quiet -O - ${GOOGLETEST_URL} | tar --strip-components=1 -xz -C googletest - - cd googletest - - cmake -DBUILD_SHARED_LIBS=ON . - - cmake --build . -j "$(nproc)" - - sudo cp -a googletest/include/gtest /usr/include - - sudo cp -a lib/libgtest_main.so lib/libgtest.so /usr/lib/ - - cmake --install . + ../install_gtest.sh ${DEPS_DIR} before_script: - export PATH=${DEPS_DIR}/boost:${PATH} - export PATH=${DEPS_DIR}/llvm:${PATH} - - export PATH=${DEPS_DIR}/cmake/bin:${PATH} + - export PATH=${DEPS_DIR}/gtest:${PATH} - cd ${TRAVIS_BUILD_DIR} diff --git a/CMakeLists.txt b/CMakeLists.txt index 2538960..954baf5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ if (NOT DEFINED Boost_ROOT) message(STATUS "[info] BOOST root directory set to: '${Boost_ROOT}'.") endif() find_package(Boost 1.76 REQUIRED) +message(STATUS "Found BOOST: ${Boost_DIR}.") include_directories(${Boost_INCLUDE_DIRS}) # Find LLVM library. @@ -33,7 +34,15 @@ include_directories(${LLVM_INCLUDE_DIRS}) # Find GTest library. if (DEFINED PDL_WITH_TESTS) message(STATUS "[info] PDL Tests Included.") - find_package(GTest 1.10 REQUIRED) + + # Find GTEST library. + if (NOT DEFINED GTest_ROOT) + set(GTest_ROOT ${PROJECT_SOURCE_DIR}/gtest) + message("[info] GTEST root directory set to: '${GTest_ROOT}'.") + endif() + + find_package(GTest CONFIG 1.10 REQUIRED) + message(STATUS "Found GTEST: ${GTest_DIR}.") add_subdirectory(tests) pdl_test_init() endif() diff --git a/install_gtest.sh b/install_gtest.sh new file mode 100755 index 0000000..7042fd2 --- /dev/null +++ b/install_gtest.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +set -e + +WORK_DIRECTORY=$([ -z "$1" ] && 'pwd' || echo "$1") + +GTEST_MAJOR_VERSION=1 +GTEST_MINOR_VERSION=10 +GTEST_PATCH_VERSION=0 + +GTEST_VERSION=${GTEST_MAJOR_VERSION}.${GTEST_MINOR_VERSION}.${GTEST_PATCH_VERSION} + +GTEST_SOURCE_DIR=${WORK_DIRECTORY}/temp +GTEST_INSTALL_DIR=${WORK_DIRECTORY}/gtest + +GTEST_URL="https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz" + +mkdir -v -p "${GTEST_SOURCE_DIR}" || exit 1 +mkdir -v -p "${GTEST_INSTALL_DIR}" || exit 2 + +wget --no-check-certificate --quiet -O - ${GTEST_URL} | tar --strip-components=1 -xz -C "${GTEST_SOURCE_DIR}" +if [ $? -ne 0 ] + then exit 3 +fi + +cd "${GTEST_SOURCE_DIR}" || exit 4 + +cmake . \ + -DCMAKE_CXX_STANDARD=17 \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_CXX_COMPILER="$CXX" \ + -DCMAKE_CXX_FLAGS="-O2" \ + -DGTEST_HAS_PTHREAD=1 \ + -S"${GTEST_SOURCE_DIR}" \ + -B"${GTEST_SOURCE_DIR}/build" \ + -DCMAKE_INSTALL_PREFIX="${GTEST_INSTALL_DIR}" + +cmake --build build -j "$(nproc)" +cmake --install build + +cd "${WORK_DIRECTORY}" || exit 6 +rm -rf "${GTEST_SOURCE_DIR}" + +export GTest_ROOT=${GTEST_INSTALL_DIR} diff --git a/install_llvm.sh b/install_llvm.sh index bb99ec1..42094af 100755 --- a/install_llvm.sh +++ b/install_llvm.sh @@ -46,7 +46,7 @@ cmake . \ -DLLVM_ENABLE_BINDINGS=OFF \ -DLLVM_ENABLE_PIC=ON \ -S"${LLVM_SOURCE_DIR}" \ - -B"${LLVM_SOURCE_DIR}\build" \ + -B"${LLVM_SOURCE_DIR}/build" \ -DCMAKE_INSTALL_PREFIX="${LLVM_INSTALL_DIR}" cmake --build build -j "$(nproc)" diff --git a/tests/unit_tests/CMakeLists.txt b/tests/unit_tests/CMakeLists.txt index 6b2c555..fd4f18e 100644 --- a/tests/unit_tests/CMakeLists.txt +++ b/tests/unit_tests/CMakeLists.txt @@ -12,8 +12,8 @@ macro(pdl_test_create _name) add_executable(${_name}_test) target_link_libraries(${_name}_test PRIVATE - gtest - gtest_main + GTest::gtest + GTest::gtest_main ) endmacro()