[Cmake-commits] CMake branch, master, updated. v3.5.2-653-gb952336
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, master has been updated via b952336902e9206ba51e1d77b8e489bdd759f73f (commit) from 131c00ee7e6e75326fb9c5f9c64a40bcb56c9369 (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=b952336902e9206ba51e1d77b8e489bdd759f73f commit b952336902e9206ba51e1d77b8e489bdd759f73f Author: Kitware Robot <kwro...@kitware.com> AuthorDate: Sat May 14 00:01:08 2016 -0400 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Sat May 14 00:01:08 2016 -0400 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 3e8e8eb..a4a5727 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -1,5 +1,5 @@ # CMake version number components. set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 5) -set(CMake_VERSION_PATCH 20160513) +set(CMake_VERSION_PATCH 20160514) #set(CMake_VERSION_RC 1) --- Summary of changes: Source/CMakeVersion.cmake |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
Re: [CMake] Debug vs Release "install" area
I meant to also add; when I first was porting my projects to cmake, I thought this was a thing I wanted to do also... turns out, it's just a lot easier to make 2 build trees and build one release and one debug and have the same output image exactly for both... then install one or the other for use with other projects (no renaming files and adding 'd', no extra subdirectories... bin/debug and bin/release... ) On Thu, May 12, 2016 at 1:07 PM, Scott Aron Bloomwrote: > Looking for some advice. > > > > In order to make our Visual Studio debugging environment, as self-contained > (and easy to use for the developers) as possible, we use developers must run > an install. We also use the resulting release based Install for our > packaging into our installer. > > > > We change the prefix variable CMAKE_INSTALL_PREFIX, to > ${CMAKE_BINARY_DIR}/Install, as well as having a each application call a > function that places a .user.vcxproj that sets the PATH appropriately. > > > > It really works great, except there is one caveat. VC++ has libraries that > are debug vs release dependent, so if your debug build happens to pick up a > release DLL (or vice versa) you can (will) be in trouble in random ways. > > > > Typically, when I change over, I simply delete the install, and re-install. > > > > Ideally, I would like to know is there any way to set the > CMAKE_INSTALL_PREFIX variable separately for debug vs release? If so how? > > > > A second option, which I thought of… > > > > Is to generate a file “DEBUG.BUILD.TXT” and then at the START of the > installation process, run a script for debug builds, that says if the file > doesn’t exist, delete everything and carry on. If running for a release > install, if it DOES exist delete and carry on. > > > > > > Any thoughts on this? > > Thanks > > > Scott > > > > > > > -- > > 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 -- 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
Re: [CMake] Debug vs Release "install" area
On 2016-05-12 20:07- Scott Aron Bloom wrote: Looking for some advice. In order to make our Visual Studio debugging environment, as self-contained (and easy to use for the developers) as possible, we use developers must run an install. We also use the resulting release based Install for our packaging into our installer. We change the prefix variable CMAKE_INSTALL_PREFIX, to ${CMAKE_BINARY_DIR}/Install, as well as having a each application call a function that places a .user.vcxproj that sets the PATH appropriately. It really works great, except there is one caveat. VC++ has libraries that are debug vs release dependent, so if your debug build happens to pick up a release DLL (or vice versa) you can (will) be in trouble in random ways. Typically, when I change over, I simply delete the install, and re-install. Ideally, I would like to know is there any way to set the CMAKE_INSTALL_PREFIX variable separately for debug vs release? If so how? A second option, which I thought of... Is to generate a file "DEBUG.BUILD.TXT" and then at the START of the installation process, run a script for debug builds, that says if the file doesn't exist, delete everything and carry on. If running for a release install, if it DOES exist delete and carry on. Any thoughts on this? Can't help you with a Visual studio environment, but for the "Unix Makefiles" generator (and presumably also for the "NMake Makefiles" generator) you typically set CMAKE_INSTALL_PREFIX to an initially empty install tree when you invoke the cmake command from an intially empty build tree. So you have complete control over the names you pick for both the build-tree and install-tree, and you typically choose unique names of those for each different build configuration (such as release or debug). I suspect it is also trivial to have separate sets of the combination of build tree + install tree name for each different type of build in a Visual Studios environment, but I cannot give you specific advice about how to find that "trivial" answer. :-) Alan __ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __ Linux-powered Science __ -- 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
Re: [CMake] Debug vs Release "install" area
there is also BUILD_TYPE (not CMAKE_BUILD_TYPE, which is the initial condition) that often gets translated into. BUILD_TYPE seems to get set to the current building configuration. http://cmake.limitpoint.com/installing-multiple-build-types-in-cmake-generated-visual-studio-projects-2/ https://cmake.org/pipermail/cmake/2011-June/044851.html if(SUPPORTS_PARALLEL_BUILD_TYPE) >>> >>> CMAKE_INSTALL_CONFIG_NAME is set to the current configuration name >>> (DEbug, release, minsizerel) as chosen in the visual studio >>> environment so to choose which you build - you choose which you >>> build. >>> >>> It doesn't package multiple configurations at once into a single NSIS, >>> but it will package any single configuration. On Fri, May 13, 2016 at 1:43 PM, Roman Wügerwrote: > You could use conditional generator expressions e.g $ with a > combination of add_custom_command stuff like "${CMAKE_COMMAND} -P > yourscript.cmake " to handle the rest. > > Best Regards > Roman > > Am 12.05.2016 um 22:07 schrieb Scott Aron Bloom : > > Looking for some advice. > > > > In order to make our Visual Studio debugging environment, as self-contained > (and easy to use for the developers) as possible, we use developers must run > an install. We also use the resulting release based Install for our > packaging into our installer. > > > > We change the prefix variable CMAKE_INSTALL_PREFIX, to > ${CMAKE_BINARY_DIR}/Install, as well as having a each application call a > function that places a .user.vcxproj that sets the PATH appropriately. > > > > It really works great, except there is one caveat. VC++ has libraries that > are debug vs release dependent, so if your debug build happens to pick up a > release DLL (or vice versa) you can (will) be in trouble in random ways. > > > > Typically, when I change over, I simply delete the install, and re-install. > > > > Ideally, I would like to know is there any way to set the > CMAKE_INSTALL_PREFIX variable separately for debug vs release? If so how? > > > > A second option, which I thought of… > > > > Is to generate a file “DEBUG.BUILD.TXT” and then at the START of the > installation process, run a script for debug builds, that says if the file > doesn’t exist, delete everything and carry on. If running for a release > install, if it DOES exist delete and carry on. > > > > > > Any thoughts on this? > > Thanks > > > Scott > > > > > > -- > > 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 > > > -- > > 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 -- 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
Re: [CMake] Debug vs Release "install" area
You could use conditional generator expressions e.g $ with a combination of add_custom_command stuff like "${CMAKE_COMMAND} -P yourscript.cmake " to handle the rest. Best Regards Roman > Am 12.05.2016 um 22:07 schrieb Scott Aron Bloom: > > Looking for some advice. > > In order to make our Visual Studio debugging environment, as self-contained > (and easy to use for the developers) as possible, we use developers must run > an install. We also use the resulting release based Install for our > packaging into our installer. > > We change the prefix variable CMAKE_INSTALL_PREFIX, to > ${CMAKE_BINARY_DIR}/Install, as well as having a each application call a > function that places a .user.vcxproj that sets the PATH appropriately. > > It really works great, except there is one caveat. VC++ has libraries that > are debug vs release dependent, so if your debug build happens to pick up a > release DLL (or vice versa) you can (will) be in trouble in random ways. > > Typically, when I change over, I simply delete the install, and re-install. > > Ideally, I would like to know is there any way to set the > CMAKE_INSTALL_PREFIX variable separately for debug vs release? If so how? > > A second option, which I thought of… > > Is to generate a file “DEBUG.BUILD.TXT” and then at the START of the > installation process, run a script for debug builds, that says if the file > doesn’t exist, delete everything and carry on. If running for a release > install, if it DOES exist delete and carry on. > > > Any thoughts on this? > > Thanks > > Scott > > > -- > > 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 -- 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
Re: [cmake-developers] Using CMake generated ninja file as a subninja file
On 05/13/2016 03:25 PM, Brad King wrote: > so for now please make your logic recognize this case and work around it. Please split this into two commits to move hunks like this: > + this->TargetAll = this->NinjaOutputPath("all"); > + this->CMakeCacheFile = this->NinjaOutputPath("CMakeCache.txt"); into a preceding commit that performs refactoring with no functional change. Also, in hunks like this: > - std::string convPath = ng->Convert(path, cmOutputConverter::HOME_OUTPUT); > + std::string convPath = ng->Convert(path, cmOutputConverter::FULL, format); please revise the logic so that *nothing changes* from the old logic when no subninja prefix is set. If this is going to break anything I'd like it to be isolated to when this feature is used. Consolidation of the two code paths can be done later when we've seen the new feature in use for a while and gained confidence in it. Thanks, -Brad -- 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] ctest + timeout -> coredump, how?
Hi, I want to get coredump of test that was stopped by ctest because of timeout. I look at source code of cmake (kwsysProcessKill), and looks like there is no way to configure which signal number will be used to kill process. Am I right, and there is no way to force ctest to use signal that cause core dump? If so, is any replacement of ctest that can read ctest's format of files, so it can be easily integrated with cmake? -- 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
Re: [cmake-developers] Using CMake generated ninja file as a subninja file
On 05/13/2016 12:13 PM, Nicolas Desprès wrote: > with a value that looks like this: > "-Wl,-bundle_loader,/Users/polrop/Documents/cmake/_build > ninja/Tests/ExportImport/Export/testExe2" > > lie on the caller site because the "if (li->IsPath)" in OutputLinkLibraries() > should not be true for such a value. The problem is that "IsPath" really means "quote this like a path on the command line". The value above *does* need such quoting. We cannot make the !IsPath code path do the quoting because it is not expected to do so. This is kind of a corner case where the link item is a flag that contains a path that needs to be treated as a path. Major refactoring would be needed to encode that information structurally so for now please make your logic recognize this case and work around it. Thanks, -Brad -- 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] FindBoost: Boost 1.61
Boost 1.61 was released today. My boost-1.61 branch, merged into next, adds the updated dependency information for this release. The version information was already added, so is unchanged. Regards, Roger -- 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-commits] CMake branch, next, updated. v3.5.2-1399-g238b58f
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 238b58f12eaf04539a5e5d23aea474dfe3259b77 (commit) via 328eff90eb49a2c8e89405cd5427a2a3bcdad977 (commit) from 6a29f8cc449469c646fb0a063cf5796c0f569bca (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=238b58f12eaf04539a5e5d23aea474dfe3259b77 commit 238b58f12eaf04539a5e5d23aea474dfe3259b77 Merge: 6a29f8c 328eff9 Author: Roger LeighAuthorDate: Fri May 13 15:05:48 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 15:05:48 2016 -0400 Merge topic 'boost-1.61' into next 328eff90 FindBoost: Update dependencies for Boost 1.61 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=328eff90eb49a2c8e89405cd5427a2a3bcdad977 commit 328eff90eb49a2c8e89405cd5427a2a3bcdad977 Author: Roger Leigh AuthorDate: Fri May 13 19:37:10 2016 +0100 Commit: Roger Leigh CommitDate: Fri May 13 19:39:41 2016 +0100 FindBoost: Update dependencies for Boost 1.61 diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 3d573b8..59a1bff 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -709,7 +709,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) set(_Boost_TIMER_DEPENDENCIES chrono system) set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) - elseif(NOT Boost_VERSION VERSION_LESS 106000 AND Boost_VERSION VERSION_LESS 106200) + elseif(NOT Boost_VERSION VERSION_LESS 106000 AND Boost_VERSION VERSION_LESS 106100) set(_Boost_CHRONO_DEPENDENCIES system) set(_Boost_COROUTINE_DEPENDENCIES context system) set(_Boost_FILESYSTEM_DEPENDENCIES system) @@ -723,6 +723,20 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret) set(_Boost_TIMER_DEPENDENCIES chrono system) set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) + elseif(NOT Boost_VERSION VERSION_LESS 106100 AND Boost_VERSION VERSION_LESS 106200) +set(_Boost_CHRONO_DEPENDENCIES system) +set(_Boost_CONTEXT_DEPENDENCIES thread chrono system date_time) +set(_Boost_COROUTINE_DEPENDENCIES context system) +set(_Boost_FILESYSTEM_DEPENDENCIES system) +set(_Boost_IOSTREAMS_DEPENDENCIES regex) +set(_Boost_LOG_DEPENDENCIES date_time log_setup system filesystem thread regex chrono atomic) +set(_Boost_MATH_DEPENDENCIES math_c99 math_c99f math_c99l math_tr1 math_tr1f math_tr1l atomic) +set(_Boost_MPI_DEPENDENCIES serialization) +set(_Boost_MPI_PYTHON_DEPENDENCIES python mpi serialization) +set(_Boost_RANDOM_DEPENDENCIES system) +set(_Boost_THREAD_DEPENDENCIES chrono system date_time atomic) +set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic) +set(_Boost_WSERIALIZATION_DEPENDENCIES serialization) else() message(WARNING "Imported targets not available for Boost version ${Boost_VERSION}") set(_Boost_IMPORTED_TARGETS FALSE) --- Summary of changes: Modules/FindBoost.cmake | 16 +++- 1 file changed, 15 insertions(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
Re: [cmake-developers] [Patch] FindPkgConfig: optionally create imported target for the found libraries
Am Freitag, 13. Mai 2016, 13:38:52 schrieb Brad King: > On 05/13/2016 12:21 PM, Rolf Eike Beer wrote: > >> Can you just use > >> > >> set_property(TARGET PkgConfig::${_prefix} PROPERTY ...) > >> > >> in each `if()` block? > > > > I had this before, but I thought I avoid multiple target lookups. You > > should only ever see that message if none of the branches is taken I > > think. And that should never happen, or the if before is wrong. Can you > > add a message() and show what is actually in _props there? > > The problem is that _libs has more than one value, so set_target_properties > ends up with > > PROPERTIES PROP1 v1 PROP2 v2a v2b PROP3 v3 > ^^^ > > Please use set_property(TARGET). It is much more robust, and this is not > exactly a performance-critical loop. Hopefully all better now. Eike signature.asc Description: This is a digitally signed message part. -- 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-commits] CMake branch, next, updated. v3.5.2-1395-g744f771
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 744f7717de3674bce41e59e9712db3fbff12b591 (commit) via d46eb5d5734ac630c7826cf2a6aa29112906f445 (commit) from dda2854f441e9108266392bc5d40b0e3c6ec53cb (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=744f7717de3674bce41e59e9712db3fbff12b591 commit 744f7717de3674bce41e59e9712db3fbff12b591 Merge: dda2854 d46eb5d Author: Rolf Eike BeerAuthorDate: Fri May 13 13:51:06 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 13:51:06 2016 -0400 Merge topic 'findpkgconfig-target' into next d46eb5d5 FindPkgConfig: optionally create imported target for the found libraries https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d46eb5d5734ac630c7826cf2a6aa29112906f445 commit d46eb5d5734ac630c7826cf2a6aa29112906f445 Author: Rolf Eike Beer AuthorDate: Wed May 11 23:45:26 2016 +0200 Commit: Rolf Eike Beer CommitDate: Fri May 13 19:50:46 2016 +0200 FindPkgConfig: optionally create imported target for the found libraries diff --git a/Help/release/dev/FindPkgConfig-targets.rst b/Help/release/dev/FindPkgConfig-targets.rst new file mode 100644 index 000..b18cb7b --- /dev/null +++ b/Help/release/dev/FindPkgConfig-targets.rst @@ -0,0 +1,5 @@ +FindPkgConfig-targets +- + +* The :module:`FindPkgConfig` module learned to optionally create imported + targets for the libraries it has found. diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake index 447c526..644687c 100644 --- a/Modules/FindPkgConfig.cmake +++ b/Modules/FindPkgConfig.cmake @@ -16,6 +16,7 @@ # Copyright 2006-2014 Kitware, Inc. # Copyright 2014 Christoph Grüninger # Copyright 2006 Enrico Scholz +# Copyright 2016 Rolf Eike Beer # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. @@ -119,11 +120,12 @@ macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp) endmacro() # Splits given arguments into options and a package list -macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cmake_environment_path) +macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cmake_environment_path _imp_target) set(${_is_req} 0) set(${_is_silent} 0) set(${_no_cmake_path} 0) set(${_no_cmake_environment_path} 0) + set(${_imp_target} 0) if(DEFINED PKG_CONFIG_USE_CMAKE_PREFIX_PATH) if(NOT PKG_CONFIG_USE_CMAKE_PREFIX_PATH) set(${_no_cmake_path} 1) @@ -147,6 +149,9 @@ macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cma if (_pkg STREQUAL "NO_CMAKE_ENVIRONMENT_PATH") set(${_no_cmake_environment_path} 1) endif() +if (_pkg STREQUAL "IMPORTED_TARGET") + set(${_imp_target} 1) +endif() endforeach() set(${_result} ${ARGN}) @@ -154,6 +159,7 @@ macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cma list(REMOVE_ITEM ${_result} "QUIET") list(REMOVE_ITEM ${_result} "NO_CMAKE_PATH") list(REMOVE_ITEM ${_result} "NO_CMAKE_ENVIRONMENT_PATH") + list(REMOVE_ITEM ${_result} "IMPORTED_TARGET") endmacro() # Add the content of a variable or an environment variable to a list of @@ -181,8 +187,63 @@ function(_pkgconfig_add_extra_path _extra_paths_var _var) set(${_extra_paths_var} ${${_extra_paths_var}} PARENT_SCOPE) endfunction() +# scan the LDFLAGS returned by pkg-config for library directories and +# libraries, figure out the absolute paths of that libraries in the +# given directories, and create an imported target from them +function(_pkg_create_imp_target _prefix _no_cmake_path _no_cmake_environment_path) + unset(_libs) + unset(_find_opts) + + # set the options that are used as long as the .pc file does not provide a library + # path to look into + if(_no_cmake_path) +set(_find_opts "NO_CMAKE_PATH") + endif() + if(_no_cmake_environment_path) +set(_find_opts "${_find_opts} NO_CMAKE_ENVIRONMENT_PATH") + endif() + + foreach (flag IN LISTS ${_prefix}_LDFLAGS) +if (flag MATCHES "^-L(.*)") + # only look into the given paths from now on + set(_find_opts "HINTS ${${CMAKE_MATCH_1}} NO_DEFAULT_PATH") + continue() +endif() +if (flag MATCHES "^-l(.*)") + set(_pkg_search "${CMAKE_MATCH_1}") +else() + continue() +endif() + +find_library(pkgcfg_lib_${_prefix}_${_pkg_search} +
Re: [cmake-developers] [PATCH] FindBoost does not detect absence of header file
On 13/05/2016 14:36, Brad King wrote: On 05/12/2016 03:49 PM, Roger Leigh wrote: I have made the suggested changes above where this was possible, and merged the boost-component-headers branch into next for testing. Thanks. It looks pretty good, but there is one problem: +find_path(Boost_${UPPERCOMPONENT}_HEADER + NAMES ${Boost_${UPPERCOMPONENT}_HEADER_NAME} + HINTS ${Boost_INCLUDE_DIR} This leaves a bunch of Boost_${UPPERCOMPONENT}_HEADER values in the cache. The names look public, and they are publicly visible. We should not expose this implementation detail. Also, the find_path() approach means it might find the header somewhere other than Boost_INCLUDE_DIR. If it is not there, we cannot be confident that it will match the library found. Can the check use just if(EXISTS) instead? Dear Brad, Thanks for looking over this. We could definitely use if(EXISTS). I've pushed a change which does this. Regards, Roger -- 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] FindPkgConfig: optionally create imported target for the found libraries
On 05/13/2016 12:21 PM, Rolf Eike Beer wrote: >> Can you just use >> >> set_property(TARGET PkgConfig::${_prefix} PROPERTY ...) >> >> in each `if()` block? > > I had this before, but I thought I avoid multiple target lookups. You should > only ever see that message if none of the branches is taken I think. And that > should never happen, or the if before is wrong. Can you add a message() and > show what is actually in _props there? The problem is that _libs has more than one value, so set_target_properties ends up with PROPERTIES PROP1 v1 PROP2 v2a v2b PROP3 v3 ^^^ Please use set_property(TARGET). It is much more robust, and this is not exactly a performance-critical loop. Thanks, -Brad -- 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-commits] CMake branch, next, updated. v3.5.2-1391-g3f70479
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 3f70479e1714a16cd505d2930e414cb7cd72a5a2 (commit) via 387ee29bc26fa445081d888fc6900182e9617c98 (commit) from f4b43522ecd7880cd24b9f6895003342e476d06d (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=3f70479e1714a16cd505d2930e414cb7cd72a5a2 commit 3f70479e1714a16cd505d2930e414cb7cd72a5a2 Merge: f4b4352 387ee29 Author: Roger LeighAuthorDate: Fri May 13 13:36:23 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 13:36:23 2016 -0400 Merge topic 'boost-component-headers' into next 387ee29b FindBoost: Check headers exist without find_path https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=387ee29bc26fa445081d888fc6900182e9617c98 commit 387ee29bc26fa445081d888fc6900182e9617c98 Author: Roger Leigh AuthorDate: Fri May 13 18:26:24 2016 +0100 Commit: Roger Leigh CommitDate: Fri May 13 18:31:20 2016 +0100 FindBoost: Check headers exist without find_path diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake index 2ec4925..777003b 100644 --- a/Modules/FindBoost.cmake +++ b/Modules/FindBoost.cmake @@ -1435,10 +1435,11 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS}) _Boost_COMPONENT_HEADERS("${COMPONENT}" Boost_${UPPERCOMPONENT}_HEADER_NAME) # Look for a standard boost header file. if(Boost_${UPPERCOMPONENT}_HEADER_NAME) -find_path(Boost_${UPPERCOMPONENT}_HEADER - NAMES ${Boost_${UPPERCOMPONENT}_HEADER_NAME} - HINTS ${Boost_INCLUDE_DIR} - ) +if(EXISTS "${Boost_INCLUDE_DIR}/${Boost_${UPPERCOMPONENT}_HEADER_NAME}") + set(Boost_${UPPERCOMPONENT}_HEADER ON) +else() + set(Boost_${UPPERCOMPONENT}_HEADER OFF) +endif() else() set(Boost_${UPPERCOMPONENT}_HEADER ON) message(WARNING "No header defined for ${COMPONENT}; skipping header check") --- Summary of changes: Modules/FindBoost.cmake |9 + 1 file changed, 5 insertions(+), 4 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
Re: [CMake] [cmake-developers] CLang error when building iOS bundle
I don't know why I get this error, but after I link against missing required frameworks (OpenGLES, AssetsLibrary and QuartzCore) the error is gone. Regards Roman > Am 11.05.2016 um 22:48 schrieb Gregor Jasny via CMake: > > Hello, > >> On 11/05/16 21:22, Roman Wüger wrote: >> I got the following error when linking the iOS bundle: >> >> clang: error: cannot specify -o when generating multiple output files >> >> I didn’t found anything about the error in the internet, so maybe someone >> has already solved such error? >> >> Does any one have a hint what could be wrong? > > I cannot see any suspicious things, either (besides that -arch armv7 is > listed twice). I would suggest you create a new user on the machine and > try there. Or you could remove ~/Library/Developer/Xcode/DerivedData first. > > Thanks, > Gregor > -- > > 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 -- 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
Re: [cmake-developers] [Patch] FindPkgConfig: optionally create imported target for the found libraries
Am Freitag, 13. Mai 2016, 11:16:28 schrieb Brad King: > On 05/13/2016 11:02 AM, Rolf Eike Beer wrote: > > Should all be done now. > > Thanks. > > The test fails for me with > > CMake Error at /.../Modules/FindPkgConfig.cmake:239 > (set_target_properties): set_target_properties called with incorrect number > of arguments. > At least part of the problem is here: > > +if(${_prefix}_INCLUDE_DIRS) > > + list(APPEND _props INTERFACE_INCLUDE_DIRECTORIES > > "${${_prefix}_INCLUDE_DIRS}") +endif() > > +if(_libs) > > + list(APPEND _props INTERFACE_LINK_LIBRARIES "${_libs}") > > +endif() > > +if(${_prefix}_CFLAGS_OTHER) > > + list(APPEND _props INTERFACE_COMPILE_OPTIONS > > "${${_prefix}_CFLAGS_OTHER}") +endif() > > +set_target_properties(PkgConfig::${_prefix} PROPERTIES ${_props}) > > If any of the property values is empty the `${_props}` will > remove it from the argument list to set_target_properties. > Can you just use > > set_property(TARGET PkgConfig::${_prefix} PROPERTY ...) > > in each `if()` block? I had this before, but I thought I avoid multiple target lookups. You should only ever see that message if none of the branches is taken I think. And that should never happen, or the if before is wrong. Can you add a message() and show what is actually in _props there? Greetings, Eike signature.asc Description: This is a digitally signed message part. -- 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] Using CMake generated ninja file as a subninja file
On Thu, May 12, 2016 at 10:07 PM, Brad Kingwrote: > On 05/12/2016 02:16 PM, Nicolas Desprès wrote: > > All done. Thank you for taking a look. > > https://github.com/nicolasdespres/CMake/commits/ninja-output-path-prefix > > The RunCMake.NinjaOutputPathPrefix test fails for me when I have > the CMake source and build trees in a directory with a space in > the path. Also, please move these test cases over to the > Tests/RunCMake/Ninja directory. You should be able to just append > the RunCMakeTest.cmake content. > > I have fixed the bug when a space is in the path and I added a test case when a space is in the contents of the CMAKE_NINJA_OUTPUT_PATH_PREFIX variable. I have 2 failing tests left that are not failing on master: Plugin and ExportImport. Both suffers from the same problem which comes from this part of my patch: https://github.com/nicolasdespres/CMake/commit/1f880c04bcb8cf36cf40be7fa4ef65f9525ea63e#diff-80cd058f986b2b3d5cdafc48a091411eL134 cmLocalNinjaGenerator::ConvertToLinkReference gets called by cmLocalGenerator::OutputLinkLibraries from here: https://github.com/nicolasdespres/CMake/blob/1f880c04bcb8cf36cf40be7fa4ef65f9525ea63e/Source/cmLocalGenerator.cxx#L1672 with a value that looks like this: "-Wl,-bundle_loader,/Users/polrop/Documents/cmake/_build ninja/Tests/ExportImport/Export/testExe2" The previous implementation of ConvertToLinkReference returned the string unchanged because it think it is a relative path, hiding the bug that lie on the caller site because the "if (li->IsPath)" in OutputLinkLibraries() should not be true for such a value. I don't know how to fix this. Cheers, -- Nicolas Desprès -- 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] FindPkgConfig: optionally create imported target for the found libraries
On 05/13/2016 11:02 AM, Rolf Eike Beer wrote: > Should all be done now. Thanks. The test fails for me with CMake Error at /.../Modules/FindPkgConfig.cmake:239 (set_target_properties): set_target_properties called with incorrect number of arguments. At least part of the problem is here: > +if(${_prefix}_INCLUDE_DIRS) > + list(APPEND _props INTERFACE_INCLUDE_DIRECTORIES > "${${_prefix}_INCLUDE_DIRS}") > +endif() > +if(_libs) > + list(APPEND _props INTERFACE_LINK_LIBRARIES "${_libs}") > +endif() > +if(${_prefix}_CFLAGS_OTHER) > + list(APPEND _props INTERFACE_COMPILE_OPTIONS > "${${_prefix}_CFLAGS_OTHER}") > +endif() > +set_target_properties(PkgConfig::${_prefix} PROPERTIES ${_props}) If any of the property values is empty the `${_props}` will remove it from the argument list to set_target_properties. Can you just use set_property(TARGET PkgConfig::${_prefix} PROPERTY ...) in each `if()` block? Thanks, -Brad -- 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] FindPkgConfig: optionally create imported target for the found libraries
Am Donnerstag, 12. Mai 2016, 13:17:42 schrieb Brad King: > On 05/12/2016 12:48 PM, Rolf Eike Beer wrote: > > Good point. I have changed this accordingly and pushed it to next. There > > are no tests yet, so maybe not immediately merge it to next but wait for > > the weekend or so. > > Okay, thanks. Please also add a Help/release/dev/FindPkgConfig-targets.rst > file with a release note for the feature. Should all be done now. Greetings, Eike signature.asc Description: This is a digitally signed message part. -- 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-commits] CMake branch, next, updated. v3.5.2-1389-gf4b4352
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 f4b43522ecd7880cd24b9f6895003342e476d06d (commit) via 75a5d585a280d727cb009b641ad07efd3c1bfb92 (commit) from 260ea8dd0faa80645eb78a421736e54a9796afdf (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=f4b43522ecd7880cd24b9f6895003342e476d06d commit f4b43522ecd7880cd24b9f6895003342e476d06d Merge: 260ea8d 75a5d58 Author: Rolf Eike BeerAuthorDate: Fri May 13 11:01:53 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 11:01:53 2016 -0400 Merge topic 'findpkgconfig-target' into next 75a5d585 FindPkgConfig: optionally create imported target for the found libraries https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=75a5d585a280d727cb009b641ad07efd3c1bfb92 commit 75a5d585a280d727cb009b641ad07efd3c1bfb92 Author: Rolf Eike Beer AuthorDate: Wed May 11 23:45:26 2016 +0200 Commit: Rolf Eike Beer CommitDate: Fri May 13 17:00:29 2016 +0200 FindPkgConfig: optionally create imported target for the found libraries diff --git a/Help/release/dev/FindPkgConfig-targets.rst b/Help/release/dev/FindPkgConfig-targets.rst new file mode 100644 index 000..b18cb7b --- /dev/null +++ b/Help/release/dev/FindPkgConfig-targets.rst @@ -0,0 +1,5 @@ +FindPkgConfig-targets +- + +* The :module:`FindPkgConfig` module learned to optionally create imported + targets for the libraries it has found. diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake index 447c526..542d127 100644 --- a/Modules/FindPkgConfig.cmake +++ b/Modules/FindPkgConfig.cmake @@ -16,6 +16,7 @@ # Copyright 2006-2014 Kitware, Inc. # Copyright 2014 Christoph Grüninger # Copyright 2006 Enrico Scholz +# Copyright 2016 Rolf Eike Beer # # Distributed under the OSI-approved BSD License (the "License"); # see accompanying file Copyright.txt for details. @@ -119,11 +120,12 @@ macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp) endmacro() # Splits given arguments into options and a package list -macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cmake_environment_path) +macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cmake_environment_path _imp_target) set(${_is_req} 0) set(${_is_silent} 0) set(${_no_cmake_path} 0) set(${_no_cmake_environment_path} 0) + set(${_imp_target} 0) if(DEFINED PKG_CONFIG_USE_CMAKE_PREFIX_PATH) if(NOT PKG_CONFIG_USE_CMAKE_PREFIX_PATH) set(${_no_cmake_path} 1) @@ -147,6 +149,9 @@ macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cma if (_pkg STREQUAL "NO_CMAKE_ENVIRONMENT_PATH") set(${_no_cmake_environment_path} 1) endif() +if (_pkg STREQUAL "IMPORTED_TARGET") + set(${_imp_target} 1) +endif() endforeach() set(${_result} ${ARGN}) @@ -154,6 +159,7 @@ macro(_pkgconfig_parse_options _result _is_req _is_silent _no_cmake_path _no_cma list(REMOVE_ITEM ${_result} "QUIET") list(REMOVE_ITEM ${_result} "NO_CMAKE_PATH") list(REMOVE_ITEM ${_result} "NO_CMAKE_ENVIRONMENT_PATH") + list(REMOVE_ITEM ${_result} "IMPORTED_TARGET") endmacro() # Add the content of a variable or an environment variable to a list of @@ -181,8 +187,61 @@ function(_pkgconfig_add_extra_path _extra_paths_var _var) set(${_extra_paths_var} ${${_extra_paths_var}} PARENT_SCOPE) endfunction() +# scan the LDFLAGS returned by pkg-config for library directories and +# libraries, figure out the absolute paths of that libraries in the +# given directories, and create an imported target from them +function(_pkg_create_imp_target _prefix _no_cmake_path _no_cmake_environment_path) + unset(_libs) + unset(_find_opts) + + # set the options that are used as long as the .pc file does not provide a library + # path to look into + if(_no_cmake_path) +set(_find_opts "NO_CMAKE_PATH") + endif() + if(_no_cmake_environment_path) +set(_find_opts "${_find_opts} NO_CMAKE_ENVIRONMENT_PATH") + endif() + + foreach (flag IN LISTS ${_prefix}_LDFLAGS) +if (flag MATCHES "^-L(.*)") + # only look into the given paths from now on + set(_find_opts "HINTS ${${CMAKE_MATCH_1}} NO_DEFAULT_PATH") + continue() +endif() +if (flag MATCHES "^-l(.*)") + set(_pkg_search "${CMAKE_MATCH_1}") +else() + continue() +endif() + +find_library(pkgcfg_lib_${_prefix}_${_pkg_search} +
[Cmake-commits] CMake branch, next, updated. v3.5.2-1387-g260ea8d
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 260ea8dd0faa80645eb78a421736e54a9796afdf (commit) via 841b8c6408a1d5bb996ce44f17e7743d8f311934 (commit) from 9f530fcc391a42fb80fa338fc35d82098b79dcb1 (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=260ea8dd0faa80645eb78a421736e54a9796afdf commit 260ea8dd0faa80645eb78a421736e54a9796afdf Merge: 9f530fc 841b8c6 Author: Rolf Eike BeerAuthorDate: Fri May 13 11:00:12 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 11:00:12 2016 -0400 Merge topic 'findpkgconfig-target' into next 841b8c64 FindPkgConfig-target: add release notes and tests https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=841b8c6408a1d5bb996ce44f17e7743d8f311934 commit 841b8c6408a1d5bb996ce44f17e7743d8f311934 Author: Rolf Eike Beer AuthorDate: Fri May 13 13:27:01 2016 +0200 Commit: Rolf Eike Beer CommitDate: Fri May 13 16:59:50 2016 +0200 FindPkgConfig-target: add release notes and tests diff --git a/Help/release/dev/FindPkgConfig-targets.rst b/Help/release/dev/FindPkgConfig-targets.rst new file mode 100644 index 000..b18cb7b --- /dev/null +++ b/Help/release/dev/FindPkgConfig-targets.rst @@ -0,0 +1,5 @@ +FindPkgConfig-targets +- + +* The :module:`FindPkgConfig` module learned to optionally create imported + targets for the libraries it has found. diff --git a/Modules/FindPkgConfig.cmake b/Modules/FindPkgConfig.cmake index 1c8331a..542d127 100644 --- a/Modules/FindPkgConfig.cmake +++ b/Modules/FindPkgConfig.cmake @@ -225,17 +225,18 @@ function(_pkg_create_imp_target _prefix _no_cmake_path _no_cmake_environment_pat if (NOT TARGET PkgConfig::${_prefix} AND ( ${_prefix}_INCLUDE_DIRS OR _libs OR ${_prefix}_CFLAGS_OTHER )) add_library(PkgConfig::${_prefix} INTERFACE IMPORTED) + +unset(_props) if(${_prefix}_INCLUDE_DIRS) - set_target_properties(PkgConfig::${_prefix} PROPERTIES -INTERFACE_INCLUDE_DIRECTORIES "${${_prefix}_INCLUDE_DIRS}") + list(APPEND _props INTERFACE_INCLUDE_DIRECTORIES "${${_prefix}_INCLUDE_DIRS}") endif() if(_libs) - set_target_properties(PkgConfig::${_prefix} PROPERTIES -INTERFACE_LINK_LIBRARIES "${_libs}") + list(APPEND _props INTERFACE_LINK_LIBRARIES "${_libs}") endif() if(${_prefix}_CFLAGS_OTHER) - set_property(TARGET PkgConfig::${_prefix} PROPERTY INTERFACE_COMPILE_OPTIONS "${${_prefix}_CFLAGS_OTHER}") + list(APPEND _props INTERFACE_COMPILE_OPTIONS "${${_prefix}_CFLAGS_OTHER}") endif() +set_target_properties(PkgConfig::${_prefix} PROPERTIES ${_props}) endif() endfunction() diff --git a/Tests/RunCMake/FindPkgConfig/FindPkgConfig_IMPORTED_TARGET.cmake b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_IMPORTED_TARGET.cmake new file mode 100644 index 000..134648f --- /dev/null +++ b/Tests/RunCMake/FindPkgConfig/FindPkgConfig_IMPORTED_TARGET.cmake @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.5) + +project(FindPkgConfig_IMPORTED_TARGET C) + +find_package(PkgConfig REQUIRED) +pkg_check_modules(NCURSES IMPORTED_TARGET QUIET REQUIRED ncurses) + +if (NCURSES_FOUND) + set(tgt PkgConfig::NCURSES) + if (NOT TARGET ${tgt}) +message(FATAL_ERROR "FindPkgConfig found ncurses, but did not create an imported target for it") + endif () + set(prop_found FALSE) + foreach (prop IN ITEMS INTERFACE_INCLUDE_DIRECTORIES INTERFACE_LINK_LIBRARIES INTERFACE_COMPILE_OPTIONS) +get_target_property(value ${tgt} ${prop}) +if (value) + message(STATUS "Found property ${prop} on target: ${value}") + set(prop_found TRUE) +endif () + endforeach () + if (NOT prop_found) +message(FATAL_ERROR "target ${tgt} found, but it has no properties") + endif () +else () + message(STATUS "skipping test; ncurses not found") +endif () diff --git a/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake b/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake index 24089e0..e12b52f 100644 --- a/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake +++ b/Tests/RunCMake/FindPkgConfig/RunCMakeTest.cmake @@ -15,4 +15,5 @@ find_package(PkgConfig) if (PKG_CONFIG_FOUND) run_cmake(FindPkgConfig_GET_VARIABLE) run_cmake(FindPkgConfig_cache_variables) + run_cmake(FindPkgConfig_IMPORTED_TARGET) endif () --- Summary of changes: Help/release/dev/FindPkgConfig-targets.rst |5 Modules/FindPkgConfig.cmake| 11 +
[Cmake-commits] CMake branch, next, updated. v3.5.2-1385-g9f530fc
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 9f530fcc391a42fb80fa338fc35d82098b79dcb1 (commit) via 4461e8bb55e502d6b7ecaf01d5397d239a984896 (commit) via 7e940bf74ab3496b0d89a55cf7c48dc1b15bc8ce (commit) via 3b648894366f86c94d4567811acb9549a81660ec (commit) via 316dd6136721181c8b2e36b8d349d4fa15f7c4eb (commit) via 271e03f08d01860b6fcac35505f8a539884e (commit) via 23baaf8d73ff76e1f32d8dcc7ea837943f130872 (commit) via 3a55a0e72c216cfe6536e7d8e5c72e3f3e5d65b4 (commit) via c7f388e723b85b48a1d0d462a8f2f7d962314421 (commit) via 2d5896530b7353496e728eb7751ef05c305287e7 (commit) from e14684e3fbf955e7ed13514509e9d7f2fca880fe (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=9f530fcc391a42fb80fa338fc35d82098b79dcb1 commit 9f530fcc391a42fb80fa338fc35d82098b79dcb1 Merge: e14684e 4461e8b Author: Brad KingAuthorDate: Fri May 13 10:46:50 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 10:46:50 2016 -0400 Merge topic 'cpack-deb-improvements' into next 4461e8bb CPack/Deb cpack-deb-improvements release notes 7e940bf7 CPack/Deb test changes due to breaking changes 3b648894 CPack/Deb package release number in file name 316dd613 CPack/Deb proper package file naming 271e03f0 CPack/Deb per-component package architecture 23baaf8d CPack/Deb inter package dependencies 3a55a0e7 CPack/Deb proper component packages file naming c7f388e7 CPack/Deb generation of postinst and postrm ldconfig files 2d589653 CPack/Deb generation of DEBIAN/shlibs control file https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4461e8bb55e502d6b7ecaf01d5397d239a984896 commit 4461e8bb55e502d6b7ecaf01d5397d239a984896 Author: Domen Vrankar AuthorDate: Tue May 10 20:20:38 2016 +0200 Commit: Brad King CommitDate: Fri May 13 10:46:05 2016 -0400 CPack/Deb cpack-deb-improvements release notes diff --git a/Help/release/dev/cpack-deb-imporvements.rst b/Help/release/dev/cpack-deb-imporvements.rst new file mode 100644 index 000..4fd35b8 --- /dev/null +++ b/Help/release/dev/cpack-deb-imporvements.rst @@ -0,0 +1,27 @@ +cpack-deb-imporvements +-- + +* The :module:`CPackDeb` module learned how to generate ``DEBIAN/shlibs`` + contorl file when package contains shared libraries. + +* The :module:`CPackDeb` module learned how to generate ``DEBIAN/postinst`` and + ``DEBIAN/postrm`` files if the package installs libraries in + ldconfig-controlled locations (e.g. ``/lib/``, ``/usr/lib/``). + +* The :module:`CPackDeb` module learned how to generate dependencies between + Debian packages if multi-component setup is used and + :variable:`CPACK_COMPONENT__DEPENDS` variables are set. + This breaks compatibility with previous versions. + +* The :module:`CPackDeb` module learned how to set the package release number + (``DebianRevisionNumber`` in package file name). See + :variable:`CPACK_DEBIAN_PACKAGE_RELEASE`. + +* The :module:`CPackDeb` module now generates properly-named Debian packages:: + + _-_.deb + + This breaks compatibility with previous versions. + +* The :module:`CPackDeb` module learned how to set the package architecture + per-component. See :variable:`CPACK_DEBIAN__PACKAGE_ARCHITECTURE`. https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7e940bf74ab3496b0d89a55cf7c48dc1b15bc8ce commit 7e940bf74ab3496b0d89a55cf7c48dc1b15bc8ce Author: Domen Vrankar AuthorDate: Tue May 10 15:40:48 2016 +0200 Commit: Brad King CommitDate: Fri May 13 10:46:05 2016 -0400 CPack/Deb test changes due to breaking changes New CPack/Deb tests and changes to old tests as package file names and inter component dependency detection was changed. diff --git a/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-depend1.cmake b/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-depend1.cmake index 26ab19e..70d6edf 100644 --- a/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-depend1.cmake +++ b/Tests/CPackComponentsDEB/RunCPackVerifyResult-components-depend1.cmake @@ -6,7 +6,7 @@ include(${CPackComponentsDEB_SOURCE_DIR}/RunCPackVerifyResult.cmake) # expected results -set(expected_file_mask "${CPackComponentsDEB_BINARY_DIR}/MyLib-*.deb") +set(expected_file_mask "${CPackComponentsDEB_BINARY_DIR}/mylib-*_1.0.2-1_*.deb") set(expected_count 3) @@ -60,9 +60,9 @@ if(DPKGDEB_EXECUTABLE)
[Cmake-commits] CMake branch, master, updated. v3.5.2-652-g131c00e
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, master has been updated via 131c00ee7e6e75326fb9c5f9c64a40bcb56c9369 (commit) via fdfb0c064929786fa1d09670cc4569b22c7c22ca (commit) from a0e00c4b3f81293e3547ed94be70504caeff2021 (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=131c00ee7e6e75326fb9c5f9c64a40bcb56c9369 commit 131c00ee7e6e75326fb9c5f9c64a40bcb56c9369 Merge: a0e00c4 fdfb0c0 Author: Brad KingAuthorDate: Fri May 13 09:54:08 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 09:54:08 2016 -0400 Merge topic 'fix-hdf5-component-search' fdfb0c06 HDF5: Rework component searching to correctly find HL for all bindings --- Summary of changes: Modules/FindHDF5.cmake | 282 ++-- 1 file changed, 204 insertions(+), 78 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v3.5.2-1373-g71fa3a0
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 71fa3a0c2418e3caed26aed3a31bde206c6d7132 (commit) via a54292903ef9814390fcd4f938a890644d80d231 (commit) via 1c06f207b1bfac76e7976754971fd94533214461 (commit) from d33d03fc10466eac6bbbd11fc293604545977ebb (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=71fa3a0c2418e3caed26aed3a31bde206c6d7132 commit 71fa3a0c2418e3caed26aed3a31bde206c6d7132 Merge: d33d03f a542929 Author: Domen VrankarAuthorDate: Fri May 13 10:00:00 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 10:00:00 2016 -0400 Merge topic 'cpack-deb-improvements' into next a5429290 fixup! CPack/Deb proper package file naming 1c06f207 fixup! CPack/Deb generation of DEBIAN/shlibs control file https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a54292903ef9814390fcd4f938a890644d80d231 commit a54292903ef9814390fcd4f938a890644d80d231 Author: Domen Vrankar AuthorDate: Fri May 13 15:52:20 2016 +0200 Commit: Domen Vrankar CommitDate: Fri May 13 15:52:20 2016 +0200 fixup! CPack/Deb proper package file naming Don't set an unneeded variable that can cause problems with package generation (found with CPack/RPM symlink test while porting). diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx index 24e06fe..aec06b7 100644 --- a/Source/CPack/cmCPackDebGenerator.cxx +++ b/Source/CPack/cmCPackDebGenerator.cxx @@ -205,11 +205,15 @@ int cmCPackDebGenerator::PackageComponentsAllInOne( /* replace the TEMPORARY package file name */ this->SetOption("CPACK_TEMPORARY_PACKAGE_FILE_NAME", packageFileName.c_str()); - // Tell CPackDeb.cmake the path where the component is. - std::string component_path = "/"; - component_path += compInstDirName; - this->SetOption("CPACK_DEB_PACKAGE_COMPONENT_PART_PATH", - component_path.c_str()); + + if(!compInstDirName.empty()) +{ +// Tell CPackDeb.cmake the path where the component is. +std::string component_path = "/"; +component_path += compInstDirName; +this->SetOption("CPACK_DEB_PACKAGE_COMPONENT_PART_PATH", +component_path.c_str()); +} if (!this->ReadListFile("CPackDeb.cmake")) { cmCPackLogger(cmCPackLog::LOG_ERROR, https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1c06f207b1bfac76e7976754971fd94533214461 commit 1c06f207b1bfac76e7976754971fd94533214461 Author: Domen Vrankar AuthorDate: Fri May 13 15:35:57 2016 +0200 Commit: Domen Vrankar CommitDate: Fri May 13 15:35:57 2016 +0200 fixup! CPack/Deb generation of DEBIAN/shlibs control file Loosen up the regex to correctly parse data from strings with Asian characters diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake index 0711238..d93d924 100644 --- a/Modules/CPackDeb.cmake +++ b/Modules/CPackDeb.cmake @@ -487,7 +487,7 @@ function(extract_so_info shared_object libname version) ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE) if(result EQUAL 0) - string(REGEX MATCH "\\(SONAME\\) [^\n]*: \\[([^\n]+)\\.so\\.([^\n]*)\\]\n" soname "${output}") + string(REGEX MATCH "\\(SONAME\\)[^\n]*\\[([^\n]+)\\.so\\.([^\n]*)\\]" soname "${output}") set(${libname} "${CMAKE_MATCH_1}" PARENT_SCOPE) set(${version} "${CMAKE_MATCH_2}" PARENT_SCOPE) else() --- Summary of changes: Modules/CPackDeb.cmake |2 +- Source/CPack/cmCPackDebGenerator.cxx | 14 +- 2 files changed, 10 insertions(+), 6 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v3.5.2-1370-gd33d03f
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 d33d03fc10466eac6bbbd11fc293604545977ebb (commit) via 131c00ee7e6e75326fb9c5f9c64a40bcb56c9369 (commit) from 35dad0b0f5ed17effd9ed657a5838268145de3d4 (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=d33d03fc10466eac6bbbd11fc293604545977ebb commit d33d03fc10466eac6bbbd11fc293604545977ebb Merge: 35dad0b 131c00e Author: Brad KingAuthorDate: Fri May 13 09:54:20 2016 -0400 Commit: Brad King CommitDate: Fri May 13 09:54:20 2016 -0400 Merge branch 'master' into next --- Summary of changes: hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v3.5.2-650-ga0e00c4
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, master has been updated via a0e00c4b3f81293e3547ed94be70504caeff2021 (commit) via 6b0b0660740e879ba90cc4a69293a46ad28c896c (commit) via bbf8c03b4f04ffcf2bd96b6408e4fa3598b2526f (commit) from bdc84a9def0ad1110e04bca9373a80abdd9a2c66 (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=a0e00c4b3f81293e3547ed94be70504caeff2021 commit a0e00c4b3f81293e3547ed94be70504caeff2021 Merge: bdc84a9 6b0b066 Author: Brad KingAuthorDate: Fri May 13 09:38:29 2016 -0400 Commit: CMake Topic Stage CommitDate: Fri May 13 09:38:29 2016 -0400 Merge topic 'InstallRequiredSystemLibraries-Windows-UCRT' 6b0b0660 InstallRequiredSystemLibraries: Optionally install Windows UCRT (#16073) bbf8c03b InstallRequiredSystemLibraries: Fix ENV{ProgramFiles(x86)} reference --- Summary of changes: ...InstallRequiredSystemLibraries-Windows-UCRT.rst |6 + Modules/InstallRequiredSystemLibraries.cmake | 25 +++- Tests/SimpleInstall/CMakeLists.txt |1 + Tests/SimpleInstallS2/CMakeLists.txt |1 + 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 Help/release/dev/InstallRequiredSystemLibraries-Windows-UCRT.rst hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v3.5.2-1368-g35dad0b
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 35dad0b0f5ed17effd9ed657a5838268145de3d4 (commit) via a0e00c4b3f81293e3547ed94be70504caeff2021 (commit) via bdc84a9def0ad1110e04bca9373a80abdd9a2c66 (commit) from 756e36915134388b0aeaac7548c2a7426d26a56b (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=35dad0b0f5ed17effd9ed657a5838268145de3d4 commit 35dad0b0f5ed17effd9ed657a5838268145de3d4 Merge: 756e369 a0e00c4 Author: Brad KingAuthorDate: Fri May 13 09:38:43 2016 -0400 Commit: Brad King CommitDate: Fri May 13 09:38:43 2016 -0400 Merge branch 'master' into next --- Summary of changes: Source/CMakeVersion.cmake |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/mailman/listinfo/cmake-commits
Re: [cmake-developers] [PATCH] FindBoost does not detect absence of header file
On 05/12/2016 03:49 PM, Roger Leigh wrote: > I have made the suggested changes above where this was possible, and > merged the boost-component-headers branch into next for testing. Thanks. It looks pretty good, but there is one problem: > +find_path(Boost_${UPPERCOMPONENT}_HEADER > + NAMES ${Boost_${UPPERCOMPONENT}_HEADER_NAME} > + HINTS ${Boost_INCLUDE_DIR} This leaves a bunch of Boost_${UPPERCOMPONENT}_HEADER values in the cache. The names look public, and they are publicly visible. We should not expose this implementation detail. Also, the find_path() approach means it might find the header somewhere other than Boost_INCLUDE_DIR. If it is not there, we cannot be confident that it will match the library found. Can the check use just if(EXISTS) instead? Thanks, -Brad -- 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] [CMake 0016103]: AUTORCC will not regenerate qrc when a resource changes
The following issue has been SUBMITTED. == https://cmake.org/Bug/view.php?id=16103 == Reported By:OregonGhost Assigned To: == Project:CMake Issue ID: 16103 Category: CMake Reproducibility:always Severity: minor Priority: normal Status: new == Date Submitted: 2016-05-13 06:36 EDT Last Modified: 2016-05-13 06:36 EDT == Summary:AUTORCC will not regenerate qrc when a resource changes Description: I am using CMake with Visual C++ (2010 & 2013) and Qt 5.4. My primary target has a qrc file listed as source. AUTOMOC, AUTORCC and AUTOUIC are ON. When the qrc file itself is changed, rcc is called. When a resource the qrc file links to is changed, rcc is not called. As a result, CMake happily builds an executable with old resources, unless the qrc has been changed. According to https://cmake.org/Bug/view.php?id=15074, this should work for some time now. It did not for me with CMake 3.2, which I was using until recently, nor with 3.5.2, which I have currently installed. Steps to Reproduce: Relevant portions of CMakeLists.txt: set(CMAKE_AUTORCC ON) ... find_package(Qt5Core REQUIRED) ... set( my_sources ... my.qrc ) ... add_executable( my WIN32 ... ${my_sources} ) Example from my.qrc: Resources/Tags/BulletBlue.png => Change BulletBlue.png and qrc_my.cpp is NOT regenerated, nor recompiled. Additional Information: Running on Windows 10, currently with Visual C++ 2013, but the problem also happens on Windows 7 and with Visual C++ 2010. == Issue History Date ModifiedUsername FieldChange == 2016-05-13 06:36 OregonGhostNew Issue == -- 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] Difference between PRIVATE and PUBLIC with target_link_libraries
On Fri, 13 May 2016 07:06:32 +1000 Craig Scottwrote: > Patrick, > > I suggest if you can reduce your problem down to a small, reproducible > example, then file a bug. I did a test just now with CMake 3.5.2 and > everything behaved as expected, including the header search path > propagation, so maybe there's something unusual in your project which > a simple case doesn't capture. Perhaps also try different generator > types in case that results in something different (unlikely, but > since you see different behaviour to me, give it a go). I filed a bug with a test-case reduced to 7 lines of cmake. I reproduced it with GNU Make and Ninja a generator. https://cmake.org/Bug/view.php?id=16102 I'm also reading some cmake-code, but haven't yet found where includes are inherited from linked targets. Currently looking at cmGeneratorTarget::GetIncludeDirectories() ... Thanks for your feedback. best regards, -- Patrick. -- 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