Re: [cmake-developers] Drop support for older Xcode versions?
>> Given Apple's encouragement of developers to always update... > > They certainly do, as Eric described. However, just like everyone > else, Apple often ships regressions in Xcode and it's sometimes vital > to be able to use older versions. Similarly, if you want to deploy > an app to an older OS, it's very useful to be able to build-run-debug > on that OS, and since the newest Xcodes only run on the newest OSes, > one needs an older Xcode to test/debug on older OSes. if a project relies on an old xcode version, does it need to use the most up-to-date cmake? also, there are always make/ninja generators ... -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] Header-only library targets
I've recently switched from CMake 2.8.12 to 3.2, full of enthusiasm that header-only libraries would now be better supported through the INTERFACE option/target. However, the support for header-only libraries isn't really great, in particular if you're using an IDE like Visual Studio. The main problem is that if you define an INTERFACE target, there's no way to specify headers, and they won't show up in IDEs. There's workarounds with a custom target, but that's not really great for example to set dependencies, populate the include directory of the library or to INSTALL the target. i'm sometimes using the workaround of generating a dummy cpp file and use a static library instead of an interface library ... ugly hack, but allows to populate msvc/xcode/qtcreator projects ... -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] Custom commands with Ninja on Windows
I'm having some issues with Ninja on Windows with long custom commands (or actually a long succession of short commands appended to the same target). The problem is that they get concatenated in one single command usingand it is pretty easy to go over the 8k command line size limit on Windows. So I've been thinking that on Windows, instead of concatenating everything, we should be a script that is run using a response file that just runs all the command with error checking. Eventually, we could reuse cmLocalVisualStudioGenerator::ConstructScript() for that matter. Any thought about this? Any hint for implementing this myself in the Ninja generator? Do you think of another way to fix this issue? came across this issue as well: http://www.itk.org/Bug/view.php?id=15612 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [PATCH 2/9] Xcode: Sort Xcode objects by Id
Xcode keeps the objects ordered by the object id. Because cmake stores them into an unordered container at creation time they must be sorted before writing the pbxproj file. out of curiosity: what exactly is the id? the uuid identifier or the target name? when ordering targets in the project, it would make sense to order them by target name, as that's what users are used to (iirc the cmake-generated msvc projects are order their targets by target name) -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [PATCH 2/9] Xcode: Sort Xcode objects by Id
Effectively it is a UUID for our purposes. The ordering Gregor proposes is to match what Xcode writes when it generates the .pbxproj file, and we can't choose that. i see ... is it (easily) possible to lexicographically sort he user-visible appearance? this is something that can be changed in native xcode projects (by dragging) If Xcode can save and load projects with user-specified ordering then CMake may be able to generate things accordingly. Try creating a project with the IDE, saving it, copying it, and then updating the order in the IDE and saving again. Compare the saved project files. Where is the order stored? seems to be the children property: --- tset/test.xcodeproj/project.pbxproj 2015-04-14 16:33:49.0 +0200 +++ test/test.xcodeproj/project.pbxproj 2015-04-14 16:34:08.0 +0200 @@ -61,8 +61,8 @@ 22AA72931ADD5C9900988B41 = { isa = PBXGroup; children = ( - 22AA729E1ADD5C9900988B41 /* test */, 22AA72B51ADD5C9900988B41 /* testTests */, + 22AA729E1ADD5C9900988B41 /* test */, 22AA729D1ADD5C9900988B41 /* Products */, ); sourceTree = group; -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [PATCH 2/9] Xcode: Sort Xcode objects by Id
out of curiosity: what exactly is the id? the uuid identifier or the target name? when ordering targets in the project, it would make sense to order them by target name, as that's what users are used to (iirc the cmake-generated msvc projects are order their targets by target name) We don't know exactly what it is because the Xcode format is not documented publicly. I suspect Xcode uses some form of serialization tool to store its internal data structures to the .pbxproj file, and these are the ids it generates. Effectively it is a UUID for our purposes. The ordering Gregor proposes is to match what Xcode writes when it generates the .pbxproj file, and we can't choose that. i see ... is it (easily) possible to lexicographically sort he user-visible appearance? this is something that can be changed in native xcode projects (by dragging) -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [PATCH] ninja generator: don't initialize language for files marked, as header-only
not sure if there is a better way to resolve this issue: declaring .RC files as header-only break ninja builds on non-windows platforms. note: this is necessary when the the language is set explicitly. ---8--- cmake currently tries to initialize the language rules for all source files. when HEADER_FILE_ONLY is used to mark files which should be added to the generated project, but should not be compiled, this will nevertheless try to initialize the language, which might fail on that specific platform. this is a practical issue when declaring .RC files as header-only on non-windows platforms. -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [vc12/idl] output directory problem
i'm having troubles with the midl compiler of generated msvc2013 project files: the generated projects contain a hardcoded output directory: $(IntDir). however having this property, the midl call fails for me. if i remove this property, or replace it with $(ProjectDir)/$(IntDir) it compiles fine. Can you please post a complete sample/minimal project tarball that shows the error you see? It could also be demonstrated in the form of a patch to CMake that updates Tests/VSMidl to show the problem. i'd love to provide a reduced test case, though i can only reproduce this in a complex real-world buildsystem, with dozens of libraries and some include_external_msproject / add_dependencies pairs ... fwiw, i've been able to work around this with vanilla cmake-3.1, by moving the .idl file and the source including the iid file(_i.c) into a separate static library. -- that said, i wonder: why would it be ok to use a relative path in the generated project ... or, what would be the disadvantage of using an absolute path? best, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] [vc12/idl] output directory problem
hi all, i'm having troubles with the midl compiler of generated msvc2013 project files: the generated projects contain a hardcoded output directory: $(IntDir). however having this property, the midl call fails for me. if i remove this property, or replace it with $(ProjectDir)/$(IntDir) it compiles fine. attached patch resolves this issue for me, though i'm not sure if this is a good solution in general. also, have to add this include directory: ${CMAKE_CURRENT_BINARY_DIR}/MyProject.dir/${CMAKE_CFG_INTDIR} i'm not an expert on msvc toolchains, so it would be great if someone could review this patch. thanks, tim From a9f83bd54c8d7e073c4d8faee7e5b8dd68738fdc Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Thu, 19 Feb 2015 14:35:02 +0800 Subject: [PATCH] cmake: Midl - set OutputDir via absolute path --- Source/cmVisualStudio10TargetGenerator.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index b265c0e..6c09702 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -2509,7 +2509,7 @@ WriteMidlOptions(std::string const /*config*/, } this-WriteString(%(AdditionalIncludeDirectories) /AdditionalIncludeDirectories\n, 0); - this-WriteString(OutputDirectory$(IntDir)/OutputDirectory\n, 3); + this-WriteString(OutputDirectory$(ProjectDir)/$(IntDir)/OutputDirectory\n, 3); this-WriteString(HeaderFileName%(Filename).h/HeaderFileName\n, 3); this-WriteString( TypeLibraryName%(Filename).tlb/TypeLibraryName\n, 3); -- 2.3.0 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] documentation patch
hi all, this trivial patch adds INTERFACE_LIBRARY to the documentation of the TYPE target property. would be great, if it could be applied. thnx, tim From f9ff9226bd0985aa239564e93eb42ed4d57b208d Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Wed, 17 Dec 2014 21:59:51 +0100 Subject: [PATCH] Help: add INTERFACE_LIBRARY to TYPE property documentation --- Help/prop_tgt/TYPE.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Help/prop_tgt/TYPE.rst b/Help/prop_tgt/TYPE.rst index 1951d46..5ac63cc 100644 --- a/Help/prop_tgt/TYPE.rst +++ b/Help/prop_tgt/TYPE.rst @@ -5,4 +5,5 @@ The type of the target. This read-only property can be used to test the type of the given target. It will be one of STATIC_LIBRARY, MODULE_LIBRARY, -SHARED_LIBRARY, EXECUTABLE or one of the internal target types. +SHARED_LIBRARY, INTERFACE_LIBRARY, EXECUTABLE or one of the internal +target types. -- 2.2.0 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] install(DIRECTORY) genex support
hi all, i wonder, is there any reason for not supporting generator expressions for install(DIRECTORY)? i need this functionality to be able to install dSYM folders which are generated by xcode. if not, could someone review/merge this patch [1]? it is probably too late for 3.1, right? thanks a lot, tim [1] https://github.com/Kitware/CMake/pull/124 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] install(DIRECTORY) genex support
hi brad, [1] https://github.com/Kitware/CMake/pull/124 Good start. Please extend documentation and tests for this feature similar to how it was done for install(FILES) in the above-linked commit. Then please read CONTRIBUTING.rst and send the patch to this list for further review. thanks for the link regarding files/programs ... will update the patch in the next few days ... cheers, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] [patch] fix Info.plist parser
hi all, attached patch adds support for parsing Info.plist files which are generated with mac os9-style line endings (\r). would be great if this fix can be applied (and if it would make it into 3.0.2). thanks, tim From 0b1420c8c22885f3a4a086510a2041bc80be7732 Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Thu, 7 Aug 2014 19:30:27 +0200 Subject: [PATCH] cmake: allow Info.plist files which use os9-style \r line endings Signed-off-by: Tim Blechmann t...@klingt.org --- Modules/BundleUtilities.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/Modules/BundleUtilities.cmake b/Modules/BundleUtilities.cmake index b896de2..60d01b5 100644 --- a/Modules/BundleUtilities.cmake +++ b/Modules/BundleUtilities.cmake @@ -237,6 +237,7 @@ function(get_bundle_main_executable bundle result_var) file(READ ${bundle}/Contents/Info.plist info_plist) string(REGEX REPLACE ; ; info_plist ${info_plist}) string(REGEX REPLACE \n ${eol_char}; info_plist ${info_plist}) +string(REGEX REPLACE \r ${eol_char}; info_plist ${info_plist}) # Scan the lines for keyCFBundleExecutable/key - the line after that # is the name of the main executable. -- 2.0.4 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] fix Info.plist parser
would be great if this fix can be applied I applied the patch with a slight revision to resolve conflicts with master: BundleUtilities: Allow Info.plist files which use CR line endings http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=810f5cce Once it works there I will consider backporting it to 3.0. great! thanks a lot! -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
attached! Applied, thanks: OS X: Install CFBundles as complete directories http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=908433bd thanks a lot! i wonder: will this patch make it into 3.0.1? tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] [patch] install cfbundles as directory
cfbundles are currently not installed as directory, but the binary from Contents/MacOS is directly installed to the destination. attached patch fixes the issue. thanks, tim From b021da36ec9c72cc6410a95ce81a177a87f6f232 Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Wed, 9 Jul 2014 15:33:25 +0200 Subject: [PATCH] InstallTarget: install CFBundles with complete directory --- Source/cmInstallTargetGenerator.cxx | 14 ++ 1 file changed, 14 insertions(+) diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx index 7a39f45..93c0d63 100644 --- a/Source/cmInstallTargetGenerator.cxx +++ b/Source/cmInstallTargetGenerator.cxx @@ -213,6 +213,20 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream os, filesFrom.push_back(from1); filesTo.push_back(to1); } +else if(this-Target-IsCFBundleOnApple()) + { + // Install the whole app bundle directory. + type = cmInstallType_DIRECTORY; + literal_args += USE_SOURCE_PERMISSIONS; + + std::string targetNameBase = targetName.substr(0, targetName.find_first_of(/)); + + std::string from1 = fromDirConfig + targetNameBase; + std::string to1 = toDir + targetNameBase; + + filesFrom.push_back(from1); + filesTo.push_back(to1); + } else { bool haveNamelink = false; -- 2.0.1 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
cfbundles are currently not installed as directory, but the binary from Contents/MacOS is directly installed to the destination. attached patch fixes the issue. Thanks. I do not understand this line: + std::string targetNameBase = targetName.substr(0, targetName.find_first_of(/)); Why do we need to look for the first slash? targetName is: ${BundleName}${BundleExtension}/Contents/MacOS/${BundleName} we basically want to find ${BundleName}. i did not find any way to determine this information from the Target. Also, look earlier in that function for the blocks starting in: // Handle OSX Bundles. if(this-Target-IsAppBundleOnApple()) and else if(this-Target-IsFrameworkOnApple()) Those cases do special handling for the post-installation tweaks. Is something similar needed here? i wonder: which tweaks are they? i've seen the comments, but failed to understand, what kind of post-install tweaks they add, as it is mainly about changing source and destinations. in my use-case it seems to work, but of course i might be missing something ... cheers, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
Those cases do special handling for the post-installation tweaks. i wonder: which tweaks are they? It's things like running strip on the executable file. The line filesTo.push_back(to1); needs to add the path to the executable file, not the directory. The filesTo vector is used only for tweaks and not for generating the main install rules. IIUC we should use std::string to1 = toDir + targetName; for CFBundles to get the location of the installed binary file. ah, i see ... double-checked and this works for me! shall i update the patch? cheers, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] install cfbundles as directory
shall i update the patch? Yes, so that we know the updated version works for what you need. Please also include a change to use Ben's suggestion of targetName.find('/') instead of find_first_of. attached! thanks a lot, tim From 18147876fd834a24dcdeca70078c972f84e92866 Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Wed, 9 Jul 2014 20:01:11 +0200 Subject: [PATCH] InstallTarget: install CFBundles with complete directory --- Source/cmInstallTargetGenerator.cxx | 14 ++ 1 file changed, 14 insertions(+) diff --git a/Source/cmInstallTargetGenerator.cxx b/Source/cmInstallTargetGenerator.cxx index 7a39f45..38d369e 100644 --- a/Source/cmInstallTargetGenerator.cxx +++ b/Source/cmInstallTargetGenerator.cxx @@ -213,6 +213,20 @@ void cmInstallTargetGenerator::GenerateScriptForConfig(std::ostream os, filesFrom.push_back(from1); filesTo.push_back(to1); } +else if(this-Target-IsCFBundleOnApple()) + { + // Install the whole app bundle directory. + type = cmInstallType_DIRECTORY; + literal_args += USE_SOURCE_PERMISSIONS; + + std::string targetNameBase = targetName.substr(0, targetName.find('/')); + + std::string from1 = fromDirConfig + targetNameBase; + std::string to1 = toDir + targetName; + + filesFrom.push_back(from1); + filesTo.push_back(to1); + } else { bool haveNamelink = false; -- 2.0.1 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers
[cmake-developers] [patch] handle RC files as resources
hi all, i've came across, that .rc files are treated as windows resources, but not upper-case .RC files. attached patch tries to correct this. it is a functional change, though it brings the implementation in line with Modules/CMakeCXXCompiler.cmake.in and the like. would be great if someone could review and/or commit it. thanks a lot, tim From 0e41cb7df9dcb2587d928504c042a8ed0b51bc39 Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Fri, 6 Jun 2014 09:59:33 +0200 Subject: [PATCH] SystemTools: handle RC as resource file format extension .RC files are not recorgnized as resource files by GetFileFormat, though the CMakeLangCompiler.cmake.in files list this file extension: Modules/CMakeCXXCompiler.cmake.in: set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) this patch resolve this inconsistency Signed-off-by: Tim Blechmann t...@klingt.org --- Source/cmSystemTools.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index ff05975..4b91aaa 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -1222,7 +1222,8 @@ cmSystemTools::FileFormat cmSystemTools::GetFileFormat(const char* cext) ext == in || ext == .in || ext == txx || ext == .txx ) { return cmSystemTools::HEADER_FILE_FORMAT; } - if ( ext == rc || ext == .rc ) + if ( ext == rc || ext == .rc || + ext == RC || ext == .RC) { return cmSystemTools::RESOURCE_FILE_FORMAT; } if ( ext == def || ext == .def ) { return cmSystemTools::DEFINITION_FILE_FORMAT; } -- 2.0.0 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] [patch] handle RC files as resources
i've came across, that .rc files are treated as windows resources, but not upper-case .RC files. attached patch tries to correct this. it is a functional change, though it brings the implementation in line with Modules/CMakeCXXCompiler.cmake.in and the like. would be great if someone could review and/or commit it. The cmSystemTools::GetFileFormat is supposed to have been replaced by cmSourceFile::GetLanguage and cmGeneratorTarget source classification logic that uses the tables like that in CMakeCXXCompiler. The only cmSystemTools::GetFileFormat call site I see left is in cmQtAutoGenerators::SetupSourceFiles, and that does not care about RESOURCE_FILE_FORMAT. In what context does your patch affect anything? hmmm, then this probably got shadowed in my project when setting the source file language directly :/ does this look better? (cannot test atm, as i'm on a different machine) thx, tim From e42b5ee3979c0b2e9b72d737c858830a865174ca Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Fri, 6 Jun 2014 15:47:29 +0200 Subject: [PATCH] CMakeRCCompiler: handle RC as resource file format extension .RC files are not recorgnized as resource files by GetFileFormat, though the CMakeLangCompiler.cmake.in files list this file extension: Modules/CMakeCXXCompiler.cmake.in: set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) this patch resolve this inconsistency Signed-off-by: Tim Blechmann t...@klingt.org --- Modules/CMakeRCCompiler.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/CMakeRCCompiler.cmake.in b/Modules/CMakeRCCompiler.cmake.in index 0fc3142..8257cd6 100644 --- a/Modules/CMakeRCCompiler.cmake.in +++ b/Modules/CMakeRCCompiler.cmake.in @@ -1,6 +1,6 @@ set(CMAKE_RC_COMPILER @CMAKE_RC_COMPILER@) set(CMAKE_RC_COMPILER_ARG1 @CMAKE_RC_COMPILER_ARG1@) set(CMAKE_RC_COMPILER_LOADED 1) -set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc) +set(CMAKE_RC_SOURCE_FILE_EXTENSIONS rc;RC) set(CMAKE_RC_OUTPUT_EXTENSION @CMAKE_RC_OUTPUT_EXTENSION@) set(CMAKE_RC_COMPILER_ENV_VAR RC) -- 2.0.0 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] [ANNOUNCE] CMake 3.0-rc4 now ready for testing!
hi all, I am proud to announce the CMake 3.0 fourth release candidate. [snip] Changes made since CMake 3.0.0-rc3: i wonder, why did 90e22f8f713c not make it into rc4? it is a bug fix for the osx bundle generator, while the patch itself is trivial, the bug is a showstopper for me ... so it would be great if it can make it into rc4. thanks a lot, tim [1] https://github.com/Kitware/CMake/commit/90e22f8f713c -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] generator expressions with variable
$1:-I $JOIN:a;b;c , -I though it does not matter, if the target is passed via variable or directly. any idea? Please provide a http://www.sscce.org/ see attached file! origin/master gives me: tim@moka-mac:~/dev/x/y$ ~/dev/cmake/bin/cmake -GNinja .. ninja -- The C compiler identification is AppleClang 5.1.0.5030040 -- The CXX compiler identification is AppleClang 5.1.0.5030040 -- Check for working C compiler using: Ninja -- Check for working C compiler using: Ninja -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler using: Ninja -- Check for working CXX compiler using: Ninja -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Configuring done -- Generating done -- Build files have been written to: /Users/tim/dev/x/y ninja: error: build.ninja:53: bad $-escape (literal $ must be written as $$) PRE_LINK = cd /Users/tim/dev/x/y echo $1:-I$JOIN:$ -I cd /Us... ^ near here same applies to 2.8.12.2. the genex is: $$BOOL:$TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES:-I$JOIN:$TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES, -I changing the genex to: $$BOOL:$TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES:-I$JOIN: $TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES , -I it expands to: $1:-I$JOIN: /Users/tim/dev/x/a;/Users/tim/dev/x/b;/Users/tim/dev/x/c , -I hth, tim cmake_minimum_required(VERSION 2.8) add_library(foo foo.cpp) target_include_directories(foo PUBLIC a b c) add_custom_command( TARGET foo PRE_BUILD COMMAND echo $ $BOOL:$TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES :-I$JOIN: $TARGET_PROPERTY:foo,INCLUDE_DIRECTORIES , -I ) -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] generator expressions with variable
see attached file! The generator expression stops parsing at whitespace. I believe you're hitting a problem related to what is discussed in this thread: http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/7063 It will require patching CMake, but there is no one working on a patch yet. http://public.kitware.com/Bug/view.php?id=14353 hmm, the bug is marked as BACKLOG ... tbo, the current situation is not exactly robust: if it is known to be broken, maybe there could be at least an error message, describing the issue? thnx, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[cmake-developers] generator expressions with variable
hi all, i'm trying to obtain the include paths from a target via a generator expression, which is adapted from the help file: help: $$BOOL:$TARGET_PROPERTY:INCLUDE_DIRECTORIES:-I$JOIN:$TARGET_PROPERTY:INCLUDE_DIRECTORIES, -I i adapted it to obtain the value from a target, which is passed as a function argument: $$BOOL:$TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES:-I$JOIN:$TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES, -I however evaluating the expression results in this command string: $1:-I$JOIN:$ -I is this a bug or a feature? thanks a lot, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
Re: [cmake-developers] generator expressions with variable
$$BOOL:$TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES:-I$JOIN:$TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES, -I Does it work without the variable in there. (By the time the generator expression evaluator gets the string, it should be expanded.) however evaluating the expression results in this command string: $1:-I$JOIN:$ -I Should that '$' be ','? Where did your literal ',' go from the above genex? hmm, i've updated cmake to the current master branch (the other one was a few days old). now the expression evaluates to (if the properties are a;b;c): $1:-I $JOIN:a;b;c , -I though it does not matter, if the target is passed via variable or directly. any idea? thnx, tim -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[cmake-developers] [patch] fix Info.plist support for CFBundles
Info.plist files were generated in the wrong place when generating CFBundles. attached patch fixes this behavior. From 7750f35bee583d280519e87ce8efd6faaf121fca Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Tue, 25 Mar 2014 16:16:51 +0100 Subject: [PATCH] osx bundle generator: correctly generate Info.plist Info.plist was placed into CMAKE_BINARY_DIR, not CMAKE_CURRENT_BINARY_DIR because the target path was not generated correctly --- Source/cmOSXBundleGenerator.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/cmOSXBundleGenerator.cxx b/Source/cmOSXBundleGenerator.cxx index 6f16913..786e6e2 100644 --- a/Source/cmOSXBundleGenerator.cxx +++ b/Source/cmOSXBundleGenerator.cxx @@ -178,7 +178,7 @@ void cmOSXBundleGenerator::CreateCFBundle(const std::string targetName, // Configure the Info.plist file. Note that it needs the executable name // to be set. - std::string plist = + std::string plist = root + / + this-GT-Target-GetCFBundleDirectory(this-ConfigName, true); plist += /Info.plist; this-LocalGenerator-GenerateAppleInfoPList(this-GT-Target, -- 1.9.1 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
[cmake-developers] [patch] treat .m files as c, not c++
hi all, compiling .m files with CXX_FLAGS like -std=c++11 causes troubles. make/ninja treat .m files as c++, which is inconsistent in three different ways: a) cmSystemTools::GetFileFormat: if ( ext == c || ext == .c || ext == m || ext == .m ) { return cmSystemTools::C_FILE_FORMAT; } if ( ext == C || ext == .C || ext == M || ext == .M || ext == c++ || ext == .c++ || ext == cc || ext == .cc || ext == cpp || ext == .cpp || ext == cxx || ext == .cxx || ext == mm || ext == .mm ) b) xcode and the cmake/xcode generator c) the language detection based on the file extension as implemented by gcc: man gcc: file.m Objective-C source code. Note that you must link with the libobjc library to make an Objective-C program work. obj-c is a superset of c, while obj-c++ is a superset of obj-c this patch corrects this behavior. best regards, tim From dc956e47ec280979d62666c42632d01267560927 Mon Sep 17 00:00:00 2001 From: Tim Blechmann t...@klingt.org Date: Wed, 19 Mar 2014 17:31:01 +0100 Subject: [PATCH] Modules: treat .m files as c instead of c++ this gets it in line with cmSystemTools::GetFileFormat. especially CXX_FLAGS should not be passed to obj-c sources Signed-off-by: Tim Blechmann t...@klingt.org --- Modules/CMakeCCompiler.cmake.in | 2 +- Modules/CMakeCXXCompiler.cmake.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/CMakeCCompiler.cmake.in b/Modules/CMakeCCompiler.cmake.in index 804cce2..694f8b8 100644 --- a/Modules/CMakeCCompiler.cmake.in +++ b/Modules/CMakeCCompiler.cmake.in @@ -26,7 +26,7 @@ if(CMAKE_COMPILER_IS_MINGW) set(MINGW 1) endif() set(CMAKE_C_COMPILER_ID_RUN 1) -set(CMAKE_C_SOURCE_FILE_EXTENSIONS c) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) set(CMAKE_C_LINKER_PREFERENCE 10) diff --git a/Modules/CMakeCXXCompiler.cmake.in b/Modules/CMakeCXXCompiler.cmake.in index 35aa6c4..c75611a 100644 --- a/Modules/CMakeCXXCompiler.cmake.in +++ b/Modules/CMakeCXXCompiler.cmake.in @@ -27,7 +27,7 @@ if(CMAKE_COMPILER_IS_MINGW) endif() set(CMAKE_CXX_COMPILER_ID_RUN 1) set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) -set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;CPP) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) set(CMAKE_CXX_LINKER_PREFERENCE 30) set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) -- 1.9.0 -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers