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 fc0ef29399c7a03fc5ec11289826e9392a0bb803 (commit) via f951d0adb4f7ca185804fba530a3dbc9b81f1cc5 (commit) via c63380b1955422d7116f7ea90c238ab8619e9bc4 (commit) via 134d5c1f7c82698b79d88ba92a7bd98b81dceaec (commit) via 2b909c08f526536d4dd84dfe68edf22682ae88ca (commit) via 7bfbcc75a3158677897b2a80b02500425620e714 (commit) from e4b2afdb3f87ee54d3d1b16724ccbc1efbcb22c7 (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=fc0ef29399c7a03fc5ec11289826e9392a0bb803 commit fc0ef29399c7a03fc5ec11289826e9392a0bb803 Merge: e4b2afd f951d0a Author: Gregor Jasny <gja...@googlemail.com> AuthorDate: Fri Jul 22 02:21:47 2016 -0400 Commit: CMake Topic Stage <kwro...@kitware.com> CommitDate: Fri Jul 22 02:21:47 2016 -0400 Merge topic 'app-framework-bundle-extension' into next f951d0ad Add tests for BUNDLE_EXTENSION c63380b1 Update documentation about bundle extensions 134d5c1f Honor BUNDLE_EXTENSION also for Frameworks (#14742) 2b909c08 Honor BUNDLE_EXTENSION also for App Bundles (#16148) 7bfbcc75 CMake Nightly Date Stamp https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f951d0adb4f7ca185804fba530a3dbc9b81f1cc5 commit f951d0adb4f7ca185804fba530a3dbc9b81f1cc5 Author: Gregor Jasny <gja...@googlemail.com> AuthorDate: Mon Jul 18 09:11:44 2016 -0700 Commit: Gregor Jasny <gja...@googlemail.com> CommitDate: Thu Jul 21 23:18:56 2016 -0700 Add tests for BUNDLE_EXTENSION diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake index b77d5d4..0684d57 100644 --- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake +++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake @@ -31,13 +31,16 @@ if(NOT XCODE_VERSION VERSION_LESS 5) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesOSX-build) set(RunCMake_TEST_NO_CLEAN 1) - set(RunCMake_TEST_OPTIONS "-DTEST_IOS=OFF") + set(RunCMake_TEST_OPTIONS + "-DTEST_IOS=OFF" + "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install") file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") run_cmake(XcodeBundles) run_cmake_command(XcodeBundles-build ${CMAKE_COMMAND} --build .) + run_cmake_command(XcodeBundles-install ${CMAKE_COMMAND} --build . --target install) unset(RunCMake_TEST_BINARY_DIR) unset(RunCMake_TEST_NO_CLEAN) @@ -45,13 +48,16 @@ if(NOT XCODE_VERSION VERSION_LESS 5) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesIOS-build) set(RunCMake_TEST_NO_CLEAN 1) - set(RunCMake_TEST_OPTIONS "-DTEST_IOS=ON") + set(RunCMake_TEST_OPTIONS + "-DTEST_IOS=ON" + "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install") file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") run_cmake(XcodeBundles) run_cmake_command(XcodeBundles-build ${CMAKE_COMMAND} --build .) + run_cmake_command(XcodeBundles-install ${CMAKE_COMMAND} --build . --target install) unset(RunCMake_TEST_BINARY_DIR) unset(RunCMake_TEST_NO_CLEAN) @@ -61,13 +67,16 @@ endif() if(NOT XCODE_VERSION VERSION_LESS 7) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesWatchOS-build) set(RunCMake_TEST_NO_CLEAN 1) - set(RunCMake_TEST_OPTIONS "-DTEST_WATCHOS=ON") + set(RunCMake_TEST_OPTIONS + "-DTEST_WATCHOS=ON" + "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install") file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") run_cmake(XcodeBundles) run_cmake_command(XcodeBundles-build ${CMAKE_COMMAND} --build .) + run_cmake_command(XcodeBundles-install ${CMAKE_COMMAND} --build . --target install) unset(RunCMake_TEST_BINARY_DIR) unset(RunCMake_TEST_NO_CLEAN) @@ -77,13 +86,16 @@ endif() if(NOT XCODE_VERSION VERSION_LESS 7.1) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/XcodeBundlesTvOS-build) set(RunCMake_TEST_NO_CLEAN 1) - set(RunCMake_TEST_OPTIONS "-DTEST_TVOS=ON") + set(RunCMake_TEST_OPTIONS + "-DTEST_TVOS=ON" + "-DCMAKE_INSTALL_PREFIX:PATH=${RunCMake_TEST_BINARY_DIR}/_install") file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") run_cmake(XcodeBundles) run_cmake_command(XcodeBundles-build ${CMAKE_COMMAND} --build .) + run_cmake_command(XcodeBundles-install ${CMAKE_COMMAND} --build . --target install) unset(RunCMake_TEST_BINARY_DIR) unset(RunCMake_TEST_NO_CLEAN) diff --git a/Tests/RunCMake/XcodeProject/XcodeBundles-install-check.cmake b/Tests/RunCMake/XcodeProject/XcodeBundles-install-check.cmake new file mode 100644 index 0000000..758d730 --- /dev/null +++ b/Tests/RunCMake/XcodeProject/XcodeBundles-install-check.cmake @@ -0,0 +1,8 @@ +file(GLOB DIRECTORIES LIST_DIRECTORIES true + "${RunCMake_TEST_BINARY_DIR}/_install/FooExtension/*.*") + +foreach(DIRECTORY IN LISTS DIRECTORIES) + if(NOT DIRECTORY MATCHES "\\.foo$") + message(SEND_ERROR "Extension does not match ${DIRECTORY}") + endif() +endforeach() diff --git a/Tests/RunCMake/XcodeProject/XcodeBundles.cmake b/Tests/RunCMake/XcodeProject/XcodeBundles.cmake index 0fdc6af..ad4268d 100644 --- a/Tests/RunCMake/XcodeProject/XcodeBundles.cmake +++ b/Tests/RunCMake/XcodeProject/XcodeBundles.cmake @@ -36,6 +36,20 @@ add_custom_target(AppBundleTest ALL add_dependencies(AppBundleTest AppBundle) +# with custom extension + +if (NOT TEST_IOS AND NOT TEST_WATCHOS AND NOT TEST_TVOS) + add_executable(AppBundleExt MACOSX_BUNDLE main.m) + set_target_properties(AppBundleExt PROPERTIES BUNDLE_EXTENSION "foo") + install(TARGETS AppBundleExt BUNDLE DESTINATION FooExtension) + + add_custom_target(AppBundleExtTest ALL + COMMAND ${CMAKE_COMMAND} -E copy + "$<TARGET_FILE:AppBundleExt>" "$<TARGET_FILE:AppBundleExt>.old") + + add_dependencies(AppBundleExtTest AppBundleExt) +endif() + # Framework (not supported for iOS on Xcode < 6) if(NOT TEST_IOS OR NOT XCODE_VERSION VERSION_LESS 6) @@ -47,6 +61,19 @@ if(NOT TEST_IOS OR NOT XCODE_VERSION VERSION_LESS 6) "$<TARGET_FILE:Framework>" "$<TARGET_FILE:Framework>.old") add_dependencies(FrameworkTest Framework) + + # with custom extension + + add_library(FrameworkExt SHARED main.c) + set_target_properties(FrameworkExt PROPERTIES FRAMEWORK TRUE) + set_target_properties(FrameworkExt PROPERTIES BUNDLE_EXTENSION "foo") + install(TARGETS FrameworkExt FRAMEWORK DESTINATION FooExtension) + + add_custom_target(FrameworkExtTest ALL + COMMAND ${CMAKE_COMMAND} -E copy + "$<TARGET_FILE:FrameworkExt>" "$<TARGET_FILE:FrameworkExt>.old") + + add_dependencies(FrameworkExtTest FrameworkExt) endif() # Bundle @@ -60,4 +87,17 @@ if(NOT CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE) "$<TARGET_FILE:Bundle>" "$<TARGET_FILE:Bundle>.old") add_dependencies(BundleTest Bundle) + + # with custom extension + + add_library(BundleExt MODULE main.c) + set_target_properties(BundleExt PROPERTIES BUNDLE TRUE) + set_target_properties(BundleExt PROPERTIES BUNDLE_EXTENSION "foo") + install(TARGETS BundleExt LIBRARY DESTINATION FooExtension) + + add_custom_target(BundleExtTest ALL + COMMAND ${CMAKE_COMMAND} -E copy + "$<TARGET_FILE:BundleExt>" "$<TARGET_FILE:BundleExt>.old") + + add_dependencies(BundleExtTest BundleExt) endif() https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c63380b1955422d7116f7ea90c238ab8619e9bc4 commit c63380b1955422d7116f7ea90c238ab8619e9bc4 Author: Gregor Jasny <gja...@googlemail.com> AuthorDate: Fri Jun 24 23:17:22 2016 +0200 Commit: Gregor Jasny <gja...@googlemail.com> CommitDate: Thu Jul 21 23:16:50 2016 -0700 Update documentation about bundle extensions diff --git a/Help/prop_tgt/BUNDLE_EXTENSION.rst b/Help/prop_tgt/BUNDLE_EXTENSION.rst index ea265b3..6b3d580 100644 --- a/Help/prop_tgt/BUNDLE_EXTENSION.rst +++ b/Help/prop_tgt/BUNDLE_EXTENSION.rst @@ -1,7 +1,8 @@ BUNDLE_EXTENSION ---------------- -The file extension used to name a :prop_tgt:`BUNDLE` target on the OS X and iOS. +The file extension used to name a :prop_tgt:`BUNDLE`, a :prop_tgt:`FRAMEWORK`, +or a :prop_tgt:`MACOSX_BUNDLE` target on the OS X and iOS. -The default value is ``bundle`` - you can also use ``plugin`` or whatever -file extension is required by the host app for your bundle. +The default value is ``bundle``, ``framework``, or ``app`` for the respective +target types. diff --git a/Help/release/dev/app-framework-bundle-extension.rst b/Help/release/dev/app-framework-bundle-extension.rst new file mode 100644 index 0000000..01855a2 --- /dev/null +++ b/Help/release/dev/app-framework-bundle-extension.rst @@ -0,0 +1,5 @@ +app-framework-bundle-extension +------------------------------ + +* On Apple platforms the :prop_tgt:`BUNDLE_EXTENSION` now also applies to + Frameworks and App Bundles. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=134d5c1f7c82698b79d88ba92a7bd98b81dceaec commit 134d5c1f7c82698b79d88ba92a7bd98b81dceaec Author: Gregor Jasny <gja...@googlemail.com> AuthorDate: Sun Jun 19 21:26:40 2016 +0200 Commit: Gregor Jasny <gja...@googlemail.com> CommitDate: Thu Jul 21 23:16:50 2016 -0700 Honor BUNDLE_EXTENSION also for Frameworks (#14742) diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index f45d4f0..793ad2e 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -1400,7 +1400,12 @@ std::string cmGeneratorTarget::GetFrameworkDirectory(const std::string& config, { std::string fpath; fpath += this->GetOutputName(config, false); - fpath += ".framework"; + fpath += "."; + const char* ext = this->GetProperty("BUNDLE_EXTENSION"); + if (!ext) { + ext = "framework"; + } + fpath += ext; if (!rootDir && !this->Makefile->PlatformIsAppleIos()) { fpath += "/Versions/"; fpath += this->GetFrameworkVersion(); @@ -3016,7 +3021,13 @@ void cmGeneratorTarget::GetFullNameInternal(const std::string& config, std::string fw_prefix; if (this->IsFrameworkOnApple()) { fw_prefix = this->GetOutputName(config, false); - fw_prefix += ".framework/"; + fw_prefix += "."; + const char* ext = this->GetProperty("BUNDLE_EXTENSION"); + if (!ext) { + ext = "framework"; + } + fw_prefix += ext; + fw_prefix += "/"; targetPrefix = fw_prefix.c_str(); targetSuffix = CM_NULLPTR; } diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 52f8da5..b396ea1 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1844,6 +1844,11 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, std::string fw_version = gtgt->GetFrameworkVersion(); buildSettings->AddAttribute("FRAMEWORK_VERSION", this->CreateString(fw_version)); + const char* ext = gtgt->GetProperty("BUNDLE_EXTENSION"); + if (ext) { + buildSettings->AddAttribute("WRAPPER_EXTENSION", + this->CreateString(ext)); + } std::string plist = this->ComputeInfoPListLocation(gtgt); // Xcode will create the final version of Info.plist at build time, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2b909c08f526536d4dd84dfe68edf22682ae88ca commit 2b909c08f526536d4dd84dfe68edf22682ae88ca Author: Gregor Jasny <gja...@googlemail.com> AuthorDate: Sun Jun 19 20:30:00 2016 +0200 Commit: Gregor Jasny <gja...@googlemail.com> CommitDate: Thu Jul 21 23:16:50 2016 -0700 Honor BUNDLE_EXTENSION also for App Bundles (#16148) diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index c9cbd00..f45d4f0 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -1350,7 +1350,12 @@ std::string cmGeneratorTarget::GetAppBundleDirectory(const std::string& config, bool contentOnly) const { std::string fpath = this->GetFullName(config, false); - fpath += ".app"; + fpath += "."; + const char* ext = this->GetProperty("BUNDLE_EXTENSION"); + if (!ext) { + ext = "app"; + } + fpath += ext; if (!this->Makefile->PlatformIsAppleIos()) { fpath += "/Contents"; if (!contentOnly) { diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 23fad51..52f8da5 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -1878,6 +1878,11 @@ void cmGlobalXCodeGenerator::CreateBuildSettings(cmGeneratorTarget* gtgt, // Handle bundles and normal executables separately. if (gtgt->GetPropertyAsBool("MACOSX_BUNDLE")) { + const char* ext = gtgt->GetProperty("BUNDLE_EXTENSION"); + if (ext) { + buildSettings->AddAttribute("WRAPPER_EXTENSION", + this->CreateString(ext)); + } std::string plist = this->ComputeInfoPListLocation(gtgt); // Xcode will create the final version of Info.plist at build time, // so let it replace the executable name. This avoids creating diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx index 448d278..4b2f40c 100644 --- a/Source/cmInstallTargetGenerator.cxx +++ b/Source/cmInstallTargetGenerator.cxx @@ -142,13 +142,22 @@ void cmInstallTargetGenerator::GenerateScriptForConfig( if (this->Target->IsAppBundleOnApple()) { cmMakefile const* mf = this->Target->Target->GetMakefile(); + // Get App Bundle Extension + const char* ext = this->Target->GetProperty("BUNDLE_EXTENSION"); + if (!ext) { + ext = "app"; + } + // Install the whole app bundle directory. type = cmInstallType_DIRECTORY; literal_args += " USE_SOURCE_PERMISSIONS"; - from1 += ".app"; + from1 += "."; + from1 += ext; // Tweaks apply to the binary inside the bundle. - to1 += ".app/"; + to1 += "."; + to1 += ext; + to1 += "/"; if (!mf->PlatformIsAppleIos()) { to1 += "Contents/MacOS/"; } ----------------------------------------------------------------------- Summary of changes: Help/prop_tgt/BUNDLE_EXTENSION.rst | 7 ++-- .../release/dev/app-framework-bundle-extension.rst | 5 +++ Source/CMakeVersion.cmake | 2 +- Source/cmGeneratorTarget.cxx | 22 +++++++++-- Source/cmGlobalXCodeGenerator.cxx | 10 +++++ Source/cmInstallTargetGenerator.cxx | 13 ++++++- Tests/RunCMake/XcodeProject/RunCMakeTest.cmake | 20 ++++++++-- .../XcodeProject/XcodeBundles-install-check.cmake | 8 ++++ Tests/RunCMake/XcodeProject/XcodeBundles.cmake | 40 ++++++++++++++++++++ 9 files changed, 114 insertions(+), 13 deletions(-) create mode 100644 Help/release/dev/app-framework-bundle-extension.rst create mode 100644 Tests/RunCMake/XcodeProject/XcodeBundles-install-check.cmake hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits