Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2019-10-09 18:14:00 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2019-10-10 11:39:53 +0300
commit35c707684befb2fe823ab1bfa002b34785c31841 (patch)
treec9f950bc95f1edd6ef0e19494f8467a76a389628 /CMakeLists.txt
parentea1174bde9edff7639b1b3de4989084987a29f1e (diff)
CMake: Allow to use pre-compiled CentOS libraries
The goal is to make it able to use pre-compiled CentOS libraries on a more modern system. Main issue was that it's possible that the compiler on a newer version is defaulting to different C++11 ABI. This change makes it so that if there is NO native libraries in the lib folder and there IS pre-compiled CentOS folder, it will be used and compiler will be forced to old ABI. Differential Revision: https://developer.blender.org/D6031
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt12
1 files changed, 11 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b065756017c..43a0994e642 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -467,7 +467,6 @@ option(WITH_GTESTS "Enable GTest unit testing" OFF)
option(WITH_OPENGL_RENDER_TESTS "Enable OpenGL render related unit testing (Experimental)" OFF)
option(WITH_OPENGL_DRAW_TESTS "Enable OpenGL UI drawing related unit testing (Experimental)" OFF)
-
# Documentation
if(UNIX AND NOT APPLE)
option(WITH_DOC_MANPAGE "Create a manual page (Unix manpage)" OFF)
@@ -584,6 +583,11 @@ if("${CMAKE_GENERATOR}" MATCHES "Ninja")
mark_as_advanced(WITH_NINJA_POOL_JOBS)
endif()
+if(UNIX AND NOT APPLE)
+ option(WITH_CXX11_ABI "Use native C++11 ABI of compiler" ON)
+ mark_as_advanced(WITH_CXX11_ABI)
+endif()
+
# avoid using again
option_defaults_clear()
@@ -1641,6 +1645,12 @@ if(
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11")
endif()
+if(UNIX AND NOT APPLE)
+ if(NOT WITH_CXX11_ABI)
+ set(PLATFORM_CFLAGS "${PLATFORM_CFLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
+ endif()
+endif()
+
# Include warnings first, so its possible to disable them with user defined flags
# eg: -Wno-uninitialized
set(CMAKE_C_FLAGS "${C_WARNINGS} ${CMAKE_C_FLAGS} ${PLATFORM_CFLAGS}")