Fix compatibility with older versions of CMake

The "SONAME_FLAG" was introduced in CMake 2.8.9, while the current CMake scripts require 2.8.4 (first line of CMakeLists.txt). Increasing the required CMake version will block building in less recent OSes (e.g., for Ubuntu 12.04 LTS, the latest version from the official repositories is currently 2.8.7). The more compatible solution will be to use the old variable name, i.e. the one which was used before CMake was patched.

NB: this issue is triggered upon specifying -DBUILD_SHARED_LIBS=ON.

Related bug report: http://public.kitware.com/Bug/view.php?id=13884 
Commit which implemented this new variable: http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e1409ac5
This commit is contained in:
shawke 2014-04-07 18:03:26 +02:00
parent 07031f9703
commit cac974eb07

View file

@ -256,7 +256,7 @@ include(CMakeCommonLanguageInclude)
# create a shared C++ library
if(NOT CMAKE_CXX_CREATE_SHARED_LIBRARY)
set(CMAKE_CXX_CREATE_SHARED_LIBRARY
"<CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
"<CMAKE_CXX_COMPILER> <CMAKE_SHARED_LIBRARY_CXX_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS> <CMAKE_SHARED_LIBRARY_SONAME_CXX_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>")
endif()
# create a c++ shared module copy the shared library rule by default