[Cmake-commits] CMake branch, next, updated. v3.0.0-rc6-3625-g088b21d

Brad King brad.king at kitware.com
Fri Jun 6 14:59:58 EDT 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  088b21d1027ff525a53424be027f5d26cf8474fa (commit)
       via  42f74df6d4ffca8f6f08dfe191e441173be0f270 (commit)
      from  a9617282d52676d90eba56dfa48bd28254885ede (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=088b21d1027ff525a53424be027f5d26cf8474fa
commit 088b21d1027ff525a53424be027f5d26cf8474fa
Merge: a961728 42f74df
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jun 6 14:59:57 2014 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Jun 6 14:59:57 2014 -0400

    Merge topic 'android-platform' into next
    
    42f74df6 Add basic Android platform module


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=42f74df6d4ffca8f6f08dfe191e441173be0f270
commit 42f74df6d4ffca8f6f08dfe191e441173be0f270
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jun 6 13:48:06 2014 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Jun 6 14:03:42 2014 -0400

    Add basic Android platform module
    
    Create a Platform/Android module that includes Platform/Linux since
    Android is based on Linux.  Provide only the minimal settings needed to
    get builds with Android NDK toolchains to work.
    
    Disable use of RPATH since the Android loader ignores it and we cannot
    predict the install destination anyway.
    
    Android supports soname but shared library names must end in ".so" and
    we cannot represent the versioned names with associated symlinks on all
    host operating systems anyway.  However, we do want the SONAME of
    library files to be set so that linking to them by path to the library
    file produces NEEDED entries with the soname and not the path.  Add a
    new CMAKE_PLATFORM_NO_VERSIONED_SONAME setting to tell the
    cmTarget::GetLibraryNames method that not to use the VERSION or
    SOVERSION target properties in the soname.

diff --git a/Modules/Platform/Android.cmake b/Modules/Platform/Android.cmake
new file mode 100644
index 0000000..e6d4fcf
--- /dev/null
+++ b/Modules/Platform/Android.cmake
@@ -0,0 +1,9 @@
+include(Platform/Linux)
+
+# Android has soname, but binary names must end in ".so" so we cannot append
+# a version number.  Also we cannot portably represent symlinks on the host.
+set(CMAKE_PLATFORM_NO_VERSIONED_SONAME 1)
+
+# Android reportedly ignores RPATH, and we cannot predict the install
+# location anyway.
+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "")
diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index 15acfdd..8143556 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -4348,6 +4348,7 @@ void cmTarget::GetLibraryNames(std::string& name,
   const char* version = this->GetProperty("VERSION");
   const char* soversion = this->GetProperty("SOVERSION");
   if(!this->HasSOName(config) ||
+     this->Makefile->IsOn("CMAKE_PLATFORM_NO_VERSIONED_SONAME") ||
      this->IsFrameworkOnApple())
     {
     // Versioning is supported only for shared libraries and modules,

-----------------------------------------------------------------------

Summary of changes:
 Modules/Platform/Android.cmake |    9 +++++++++
 Source/cmTarget.cxx            |    1 +
 2 files changed, 10 insertions(+)
 create mode 100644 Modules/Platform/Android.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list