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  b0cc082ad6c6619653afbceca0ac2888d944e9e2 (commit)
       via  e76ee2c006777e268715b39ad71f49e3d18b11a4 (commit)
      from  1c27e7df4e033f981dde15f7731913ffd6750b03 (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 -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b0cc082ad6c6619653afbceca0ac2888d944e9e2
commit b0cc082ad6c6619653afbceca0ac2888d944e9e2
Merge: 1c27e7d e76ee2c
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Thu Dec 3 09:06:59 2015 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Thu Dec 3 09:06:59 2015 -0500

    Merge topic 'ios-framework-resource-layout' into next
    
    e76ee2c0 iOS: Fix framework resource directory layout (#15848)


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e76ee2c006777e268715b39ad71f49e3d18b11a4
commit e76ee2c006777e268715b39ad71f49e3d18b11a4
Author:     Bartosz Kosiorek <bartosz.kosio...@tomtom.com>
AuthorDate: Wed Dec 2 22:34:25 2015 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Thu Dec 3 08:52:09 2015 -0500

    iOS: Fix framework resource directory layout (#15848)
    
    A typical iOS application bundle (also Framework Bundle) contains the
    application executable and any resources used by the application (for
    instance, the application icon, other images, and localized content) in
    the top-level bundle directory.  The same rule applies to Framework
    Bundles.

diff --git a/Help/prop_tgt/MACOSX_BUNDLE.rst b/Help/prop_tgt/MACOSX_BUNDLE.rst
index 8d7d914..7cd8046 100644
--- a/Help/prop_tgt/MACOSX_BUNDLE.rst
+++ b/Help/prop_tgt/MACOSX_BUNDLE.rst
@@ -3,7 +3,7 @@ MACOSX_BUNDLE
 
 Build an executable as an Application Bundle on OS X or iOS.
 
-When this property is set to true the executable when built on OS X
+When this property is set to ``TRUE`` the executable when built on OS X
 or iOS will be created as an application bundle.  This makes it
 a GUI executable that can be launched from the Finder.  See the
 :prop_tgt:`MACOSX_FRAMEWORK_INFO_PLIST` target property for information about
diff --git a/Help/prop_tgt/MACOSX_RPATH.rst b/Help/prop_tgt/MACOSX_RPATH.rst
index 41bb8cc..1f9a036 100644
--- a/Help/prop_tgt/MACOSX_RPATH.rst
+++ b/Help/prop_tgt/MACOSX_RPATH.rst
@@ -3,8 +3,8 @@ MACOSX_RPATH
 
 Whether this target on OS X or iOS is located at runtime using rpaths.
 
-When this property is set to true, the directory portion of
-the "install_name" field of this shared library will be ``@rpath``
+When this property is set to ``TRUE``, the directory portion of
+the ``install_name`` field of this shared library will be ``@rpath``
 unless overridden by :prop_tgt:`INSTALL_NAME_DIR`.  This indicates
 the shared library is to be found at runtime using runtime
 paths (rpaths).
@@ -18,6 +18,6 @@ can be controlled by the :prop_tgt:`INSTALL_RPATH` target 
property on
 the target linking to this target.
 
 Policy :policy:`CMP0042` was introduced to change the default value of
-``MACOSX_RPATH`` to ``TRUE.  This is because use of ``@rpath`` is a
+``MACOSX_RPATH`` to ``TRUE``.  This is because use of ``@rpath`` is a
 more flexible and powerful alternative to ``@executable_path`` and
 ``@loader_path``.
diff --git a/Help/prop_tgt/RESOURCE.rst b/Help/prop_tgt/RESOURCE.rst
index 5dad3ea..d837f7b 100644
--- a/Help/prop_tgt/RESOURCE.rst
+++ b/Help/prop_tgt/RESOURCE.rst
@@ -1,11 +1,61 @@
 RESOURCE
 --------
 
-Specify resource files in a :prop_tgt:`FRAMEWORK` shared library target.
-
-Shared library targets marked with the :prop_tgt:`FRAMEWORK` property generate
-frameworks on OS X, iOS and normal shared libraries on other platforms.
-This property may be set to a list of files to be placed in the
-``Resources`` directory inside the framework folder.  On non-Apple
-platforms these files may be installed using the ``RESOURCE`` option to
-the ``install(TARGETS)`` command.
+Specify resource files in a :prop_tgt:`FRAMEWORK` or :prop_tgt:`BUNDLE`.
+
+Target marked with the :prop_tgt:`FRAMEWORK` or :prop_tgt:`BUNDLE` property
+generate framework or application bundle (both OS X and iOS is supported)
+or normal shared libraries on other platforms.
+This property may be set to a list of files to be placed in the corresponding
+directory (eg. ``Resources`` directory for OS X) inside the bundle.
+On non-Apple platforms these files may be installed using the ``RESOURCE``
+option to the ``install(TARGETS)`` command.
+
+Following example of Application Bundle:
+
+.. code-block:: cmake
+
+  add_executable(ExecutableTarget
+    addDemo.c
+    resourcefile.txt
+    appresourcedir/appres.txt
+  )
+
+  target_link_libraries(ExecutableTarget heymath mul)
+
+  set(RESOURCE_FILES
+    resourcefile.txt
+    appresourcedir/appres.txt
+  )
+
+  set_target_properties(ExecutableTarget PROPERTIES
+    MACOSX_BUNDLE TRUE
+    MACOSX_FRAMEWORK_IDENTIFIER org.cmake.ExecutableTarget
+    RESOURCE "${RESOURCE_FILES}"
+  )
+
+will produce flat structure for iOS systems::
+
+  ExecutableTarget.app
+    appres.txt
+    ExecutableTarget
+    Info.plist
+    resourcefile.txt
+
+For OS X systems it will produce following directory structure::
+
+  ExecutableTarget.app/
+    Contents
+      Info.plist
+      MacOS
+        ExecutableTarget
+      Resources
+        appres.txt
+        resourcefile.txt
+
+For Linux, such cmake script produce following files::
+
+  ExecutableTarget
+  Resources
+    appres.txt
+    resourcefile.txt
diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx
index cc424b4..b05fb41 100644
--- a/Source/cmGeneratorTarget.cxx
+++ b/Source/cmGeneratorTarget.cxx
@@ -3752,7 +3752,11 @@ void cmGeneratorTarget::ConstructSourceFileFlags() const
       if(cmSourceFile* sf = this->Makefile->GetSource(*it))
         {
         SourceFileFlags& flags = this->SourceFlagsMap[sf];
-        flags.MacFolder = "Resources";
+        flags.MacFolder = "";
+        if(!this->Makefile->PlatformIsAppleIos())
+          {
+          flags.MacFolder = "Resources";
+          }
         flags.Type = cmGeneratorTarget::SourceFileTypeResource;
         }
       }
diff --git a/Tests/RunCMake/Framework/FrameworkLayout.cmake 
b/Tests/RunCMake/Framework/FrameworkLayout.cmake
index 107afdf..5184755 100644
--- a/Tests/RunCMake/Framework/FrameworkLayout.cmake
+++ b/Tests/RunCMake/Framework/FrameworkLayout.cmake
@@ -1,5 +1,11 @@
 cmake_minimum_required(VERSION 3.4)
 enable_language(C)
 
-add_library(Framework SHARED foo.c)
-set_target_properties(Framework PROPERTIES FRAMEWORK TRUE)
+add_library(Framework SHARED
+            foo.c
+            foo.h
+            res.txt)
+set_target_properties(Framework PROPERTIES
+                      FRAMEWORK TRUE
+                      PUBLIC_HEADER foo.h
+                      RESOURCE "res.txt")
diff --git a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake 
b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake
index 27d10d8..da1ccb4 100644
--- a/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake
+++ b/Tests/RunCMake/Framework/OSXFrameworkLayout-build-check.cmake
@@ -1,7 +1,10 @@
 set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework")
-set(plist-file "${framework-dir}/Resources/Info.plist")
+set(framework-resources "${framework-dir}/Resources")
+set(framework-resource-file "${framework-resources}/res.txt")
 set(framework-library "${framework-dir}/Framework")
 set(framework-versions "${framework-dir}/Versions")
+set(plist-file "${framework-resources}/Info.plist")
+set(framework-header "${framework-dir}/Headers/foo.h")
 
 if(NOT IS_DIRECTORY ${framework-dir})
   message(SEND_ERROR "Framework not found at ${framework-dir}")
@@ -15,6 +18,18 @@ if(NOT EXISTS ${framework-library})
   message(SEND_ERROR "Framework library not found at ${framework-library}")
 endif()
 
+if(NOT EXISTS ${framework-resource-file})
+  message(SEND_ERROR "Framework resource file not found at 
${framework-resource-file}")
+endif()
+
 if(NOT EXISTS ${framework-versions})
   message(SEND_ERROR "Framework versions not found at ${framework-versions}")
 endif()
+
+if(NOT EXISTS ${framework-resources})
+  message(SEND_ERROR "Framework Resources not found at ${framework-resources}")
+endif()
+
+if(NOT EXISTS ${framework-header})
+  message(SEND_ERROR "Framework header file not found at ${framework-header}")
+endif()
diff --git a/Tests/RunCMake/Framework/foo.h b/Tests/RunCMake/Framework/foo.h
new file mode 100644
index 0000000..5d5f8f0
--- /dev/null
+++ b/Tests/RunCMake/Framework/foo.h
@@ -0,0 +1 @@
+int foo();
diff --git a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake 
b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake
index 373baad..b81a5f7 100644
--- a/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake
+++ b/Tests/RunCMake/Framework/iOSFrameworkLayout-build-check.cmake
@@ -1,7 +1,10 @@
 set(framework-dir "${RunCMake_TEST_BINARY_DIR}/Framework.framework")
-set(plist-file "${framework-dir}/Info.plist")
+set(framework-resources "${framework-dir}/Resources")
+set(framework-resource-file "${framework-dir}/res.txt")
 set(framework-library "${framework-dir}/Framework")
 set(framework-versions "${framework-dir}/Versions")
+set(plist-file "${framework-dir}/Info.plist")
+set(framework-header "${framework-dir}/Headers/foo.h")
 
 if(NOT IS_DIRECTORY ${framework-dir})
   message(SEND_ERROR "Framework not found at ${framework-dir}")
@@ -15,6 +18,18 @@ if(NOT EXISTS ${framework-library})
   message(SEND_ERROR "Framework library not found at ${framework-library}")
 endif()
 
+if(NOT EXISTS ${framework-resource-file})
+  message(SEND_ERROR "Framework resource file not found at 
${framework-resource-file}")
+endif()
+
 if(EXISTS ${framework-versions})
   message(SEND_ERROR "Framework versions found at ${framework-versions}")
 endif()
+
+if(EXISTS ${framework-resources})
+  message(SEND_ERROR "Framework Resources found at ${framework-resources}")
+endif()
+
+if(NOT EXISTS ${framework-header})
+  message(SEND_ERROR "Framework headers not found at ${framework-header}")
+endif()
diff --git a/Tests/RunCMake/Framework/res.txt b/Tests/RunCMake/Framework/res.txt
new file mode 100644
index 0000000..e69de29

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

Summary of changes:
 Help/prop_tgt/MACOSX_BUNDLE.rst                    |    2 +-
 Help/prop_tgt/MACOSX_RPATH.rst                     |    6 +-
 Help/prop_tgt/RESOURCE.rst                         |   66 +++++++++++++++++---
 Source/cmGeneratorTarget.cxx                       |    6 +-
 Tests/RunCMake/Framework/FrameworkLayout.cmake     |   10 ++-
 .../Framework/OSXFrameworkLayout-build-check.cmake |   17 ++++-
 Tests/RunCMake/Framework/foo.h                     |    1 +
 .../Framework/iOSFrameworkLayout-build-check.cmake |   17 ++++-
 .../hello.f => Tests/RunCMake/Framework/res.txt    |    0
 9 files changed, 108 insertions(+), 17 deletions(-)
 create mode 100644 Tests/RunCMake/Framework/foo.h
 copy Modules/IntelVSImplicitPath/hello.f => Tests/RunCMake/Framework/res.txt 
(100%)


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to