Allow building with libstdc++ instead of libstdc++11 if people want to use the old GCC ABI

This commit is contained in:
Sebastian Messmer 2020-06-30 20:30:19 -07:00
parent f8c0bb8b97
commit d8ce25efce
2 changed files with 4 additions and 22 deletions

View File

@ -95,11 +95,6 @@ references:
# Setup conan cache
echo 'export CONAN_USER_HOME=/build_cache/conan' >> $BASH_ENV
if [[ "${CXX}" == *"g++"* ]]; then
# Conan uses old gcc ABI by default but we can only build with the cxx11 ABI.
conan profile new default --detect
conan profile update settings.compiler.libcxx=libstdc++11 default
fi
# Setup ccache
sudo ln -s /usr/bin/ccache /usr/local/bin/$CC

View File

@ -1,22 +1,9 @@
macro(setup_conan)
include(cmake-utils/conan.cmake)
if(MSVC)
conan_cmake_run(
CONANFILE conanfile.py
BUILD missing)
else()
conan_cmake_run(
CONANFILE conanfile.py
# We'd like to use "BUILD missing" but that doesn't work because conan sometimes seems to download prebuilt packages with compiler.libcxx=libstdc++ even though we specify compiler.libcxx=libstdc++11.
# see https://github.com/cryfs/cryfs/issues/336 and https://github.com/conan-io/conan/issues/7264
BUILD all
SETTINGS compiler.libcxx=libstdc++11)
endif()
conan_basic_setup(TARGETS SKIP_STD)
conan_cmake_run(
CONANFILE conanfile.py
BUILD missing)
if(CONAN_SETTINGS_COMPILER_LIBCXX STREQUAL "libstdc++")
# TODO Test this warning works correctly and that the proposed solution in the warning message works.
message(FATAL_ERROR "Conan is set up to build against libstdc++ (i.e. the legacy GCC ABI). We only support libstdc++11 (i.e. the new GCC ABI).\nPlease add the '-s compiler.libcxx=libstdc++11' argument when running 'conan install'.")
endif()
conan_basic_setup(TARGETS SKIP_STD)
endmacro()