Fix compatibility with older versions of CMake
authorshawke <bvanandel@cyclomedia.com>
Mon, 7 Apr 2014 16:03:26 +0000 (18:03 +0200)
committershawke <bvanandel@cyclomedia.com>
Mon, 7 Apr 2014 16:03:26 +0000 (18:03 +0200)
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

cmake/CMakeCXXInformation.cmake

index 4d0a14a..9ddae4a 100644 (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