[cmake-developers] CMake identifies MacOSX10.7-Xcode43-ub as GNU, but it runs clang.
Hi, This causes the failure of the WriteCompilerDetectionHeader test: http://open.cdash.org/testDetails.php?test=250378767build=3306874 Though the misidentification has been the case since before that refactoring: http://open.cdash.org/testDetails.php?test=247853583build=3293163 Could this be because it is old clang which did not define __clang__? Apart from the misidentification, I don't understand how the WriteCompilerDetectionHeader test could have a different result than the compiler identification code. It should be checking the same defines in the same order, and it should arrive at the same incorrect conclusion that the compiler is GNU. And ideas? Thanks, Steve. -- 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] CMake identifies MacOSX10.7-Xcode43-ub as GNU, but it runs clang.
Stephen Kelly wrote: Could this be because it is old clang which did not define __clang__? Apart from the misidentification, I don't understand how the WriteCompilerDetectionHeader test could have a different result than the compiler identification code. It should be checking the same defines in the same order, and it should arrive at the same incorrect conclusion that the compiler is GNU. That machine seems to partly be using llvm-gcc. At least that is what is used for the identification step, which is why it identifies as GNU. After the identification step (when building), clang is used, which is why my test fails. I conditionalized the test execution to exclude APPLE, which is fine for now. It's the same condition in GNU-CXX.cmake, and I introduced it exactly for this reason of excluding platforms from these features from platforms that cause problems until the features themselves are in. Thanks, Steve. -- 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] cmake --find-package
On Friday, April 25, 2014 12:10:30 Alan W. Irwin wrote: On 2014-04-24 22:41+0200 Alexander Neundorf wrote: On Wednesday, April 23, 2014 14:45:45 Alan W. Irwin wrote: On 2014-04-23 22:40+0200 Alexander Neundorf wrote: On Wednesday, April 23, 2014 13:21:39 Alan W. Irwin wrote: On 2014-04-23 13:21-0400 Bill Hoffman wrote: On 4/23/2014 12:22 PM, Alan W. Irwin wrote: However, if you discover the problem is a general one for --find-package and Qt5, then it appears that Qt5 might be a good illustrative example to use for your renewed effort at developing a reliable --find-package capability. I recently ran into a project using --find-package and found a limitation that could be very problematic. If a find module in CMake uses a try-compile, or tries to figure out anything to do with the compiler, this command will fail.I am not sure there is a good way around this. Certainly try-compile is not actively discouraged in the CMake Modules, so this can be added to any module at any time, breaking --find-package in the future. Hi Bill: You cannot use --find-package unless you specify the language. So I assume that --find-package enables the specified language, and, in general, you would think that try-compile would work properly under those circumstances. No. It doesn't really enable a language, it only loads a bunch of files to set the most urgently required variables. Most of it is implemented in CMakeFindPackageMode.cmake It is basically wrapping a find_package() call, setting up just enough to make it succeed usually. try_compile() will fail. My plan was to limit this mode to Config.cmake files only, but as I said, due to the changes in CMake this has become too much work, so I won't work on that in the forseeable future. Hi Alex: The question that remains is will --find-package be maintained indefinitely for CMake-3.x? I can't guarantee. Since modern Config.cmake files don't follow the old convention of setting a _LIBRARIES and a _INCLUDE_DIRS variable anymore, which is the basic assumption the --find-package feature was based on, I don't really feel motivated to fix this. As I said, --find-package is the only way I know how to obtain required compile and link flags for Qt5 at the present time (assuming the patch for the library name screwup is accepted for the CMake support files in Qt5, but that is a separate Qt5 issue compared to whether or not you decide to maintain --find-package for CMake-3.x). Until I discovered this thread, I had assumed that the --find-package option would be maintained indefinitely for CMake so I haven't looked further at other alternatives yet. Assuming you or someone else decides to remove the --find-package capability now or sometime during CMake-3.x (which from my point of view makes sense if you are not going to maintain it), I wouldn't object. This is actually the first time I get serious feedback for that feature, I had the impression nobody uses it or considers it useful. Hi Alex: I hadn't attempted to use this feature myself up to now because most of the PLplot build system was implemented long before --find-package was implemented. But, in general, I think --find-package is an excellent idea since ideally (assuming try-compile is not used) it should supply users with the essential compile and link flags needed for a dependency while relieving them of the burden of figuring out details of the CMake-based build system for that dependency. That's a large potential benefit for a typical modern project that might have say 20 or more dependencies. Much earlier in this thread you said the following: A new, similar --find-target mode or similar may be more appropriate: cmake --find-target --package Qt5Widgets --target Qt5::Widgets ... # KF5Config exports 3 independent targets: cmake --find-target --package KF5Config --target KF5::ConfigCore ... cmake --find-target --package KF5Config --target KF5::ConfigGui ... cmake --find-target --package KF5Config --target KF5::ConfigWidgets ... Yes, that will work. And a new command/option is not even necessary. The name of the target could be given as additional option. If none is given, it will use the variables as it does now, if a target is given, it will use this target and its properties. I'll work on that when I find the time (and nobody is faster). Since then you have apparently changed your mind about working on this (which I can completely understand; I also have very limited time I can work on CMake). But I have one important follow-up question for you. Is it actually straightforward (but tedious) to implement a translation of target properties into ordinary compile and link flags without detailed knowledge of which target properties have been used for a
[CMake] CMAKE for openCV version 2.0.0 on Windows 7
When I use the CMAKE GUI (version 2.8.12.2), on OpenCV-2.0.0a-win32, to install that for Visual studio 2010 express, on my Windows 7 machine, CMAKE fails to make some of the .dll and .lib files. ) The opencv file cv200d.lib is missing, for example. Also, the CMAKE GUI does not display some of the optional settings. ) CMAKE does not display the WITH_X options. There are many web pages that try to solve this opencv 2.0.0 + CMAKE failure, but no specific good solution is provided in detail. To compare;- the make + installation works correctly for opencv version 2.1, but there is some strange fault with version 2.0.0 + CMAKE. Has anyone used the CMAKE GUI to fully and correctly make OpenCV-2.0.0a-win32 libraries on Windows 7 ? Can someone look at the problems and give a solution ? -- 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://www.cmake.org/mailman/listinfo/cmake
Re: [CMake] Alternative for INCLUDE_EXTERMAL_MSPROJECT for Visual Studio 2012 generator
A simple example: Sln1/CMakeLists.txt -- cmake_minimum_required(VERSION 2.8) project(project1) ADD_LIBRARY (project1 STATIC main.cpp) Sln2/CMakeLists.txt -- cmake_minimum_required(VERSION 2.8) project(project1) ADD_LIBRARY (project1 STATIC main.cpp) include(ExternalProject) ExternalProject_Add(project1 SOURCE_DIR ../Sln1) I get the following error when building your simple example. I'm uncertain why you *don't* get the same error, because I knew I was going to get something like this error when I just read your code. You can't have both a library *and* a custom target with the same name... In this case, you're using project1 for both the library and the external project name. C:\dev\dcole\tmp\b2cmake ..\Sln2 -- Building for: Visual Studio 11 -- The C compiler identification is MSVC 17.0.61030.0 -- The CXX compiler identification is MSVC 17.0.61030.0 -- Check for working C compiler using: Visual Studio 11 -- Check for working C compiler using: Visual Studio 11 -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler using: Visual Studio 11 -- Check for working CXX compiler using: Visual Studio 11 -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/ExternalProject.cmake:1760 (add_custom_target): add_custom_target cannot create target project1 because another target with the same name already exists. The existing target is a static library created in source directory C:/dev/dcole/tmp/Sln2. See documentation for policy CMP0002 for more details. Call Stack (most recent call first): CMakeLists.txt:7 (ExternalProject_Add) If I change 2 lines in Sln2/CMakeLists.txt, like this: project(project2) ADD_LIBRARY (project2 STATIC main.cpp) Then I get a project2.sln file that builds project1 and project2 just fine, but there is a problem with the INSTALL step of project1. To avoid the problem with the install step, I added an empty INSTALL_COMMAND to the ExternalProject_Add call, like this: ExternalProject_Add(project1 SOURCE_DIR ../Sln1 INSTALL_COMMAND ) After those changes, it all works just as I think you're intending it to work. (I used cmake 2.8.12.2 here... make sure you're using that, or the latest release candidate of the upcoming CMake 3.0...) Hope this helps, David C. -- 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://www.cmake.org/mailman/listinfo/cmake
[CMake] Adding (external project) dependency to interface target
My project uses the external project functionality to download and install a headers-only library. I use an interface library to import that library dependency to my project. I'd like to add a dependency from the external project target to the interface library to trigger the library downloading and configuration process. But apparently this is not allowed and I get this error: add_dependencies Cannot add target-level dependencies to INTERFACE library target EigenExternal Is there any workaround for this or am I doing something wrong? Thanks a lot, Jose -- 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://www.cmake.org/mailman/listinfo/cmake
[Cmake-commits] CMake branch, next, updated. v3.0.0-rc4-2573-gc67496e
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 c67496e058b5664da062e85522c3571252ba5025 (commit) via a887a7f3d9024b318c6b34f335b7daad33558543 (commit) from 30b80385d358fa8296839f5ce3b1fca572fc5bd6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c67496e058b5664da062e85522c3571252ba5025 commit c67496e058b5664da062e85522c3571252ba5025 Merge: 30b8038 a887a7f Author: Stephen Kelly steve...@gmail.com AuthorDate: Sat Apr 26 08:25:50 2014 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Sat Apr 26 08:25:50 2014 -0400 Merge topic 'file-generate-if-different' into next a887a7f3 Fix test. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a887a7f3d9024b318c6b34f335b7daad33558543 commit a887a7f3d9024b318c6b34f335b7daad33558543 Author: Stephen Kelly steve...@gmail.com AuthorDate: Sat Apr 26 14:25:25 2014 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Sat Apr 26 14:25:25 2014 +0200 Fix test. diff --git a/Tests/RunCMake/File_Generate/RunCMakeTest.cmake b/Tests/RunCMake/File_Generate/RunCMakeTest.cmake index dd1cfce..c055af4 100644 --- a/Tests/RunCMake/File_Generate/RunCMakeTest.cmake +++ b/Tests/RunCMake/File_Generate/RunCMakeTest.cmake @@ -14,7 +14,7 @@ set(timeformat %Y%j%H%M%S) macro(prepare_CMP0053_test policyStatus) file(REMOVE ${RunCMake_BINARY_DIR}/CMP0053-${policyStatus}-build/output_file.txt) set(RunCMake_TEST_FILE ${RunCMake_SOURCE_DIR}/CMP0053-${policyStatus}) - set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CMP0053-${policyStatus}-build) + set(RunCMake_TEST_BINARY_DIR CMP0053-${policyStatus}-build) run_cmake(CMP0053-${policyStatus}-prepare) unset(RunCMake_TEST_FILE) unset(RunCMake_TEST_BINARY_DIR) --- Summary of changes: Tests/RunCMake/File_Generate/RunCMakeTest.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/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v3.0.0-rc4-2575-g042e42a
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 042e42a388062d8d121902b9834928266a4c6c2f (commit) via 1b5d016df8e7e3138be7664d12a0a21fe439e4a5 (commit) from c67496e058b5664da062e85522c3571252ba5025 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=042e42a388062d8d121902b9834928266a4c6c2f commit 042e42a388062d8d121902b9834928266a4c6c2f Merge: c67496e 1b5d016 Author: Stephen Kelly steve...@gmail.com AuthorDate: Sat Apr 26 08:26:11 2014 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Sat Apr 26 08:26:11 2014 -0400 Merge topic 'file-generate-if-different' into next 1b5d016d file(GENERATE): Only write the file if content is different. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1b5d016df8e7e3138be7664d12a0a21fe439e4a5 commit 1b5d016df8e7e3138be7664d12a0a21fe439e4a5 Author: Stephen Kelly steve...@gmail.com AuthorDate: Fri Apr 25 20:11:05 2014 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Sat Apr 26 14:25:58 2014 +0200 file(GENERATE): Only write the file if content is different. Introduce policy CMP0053 to control this behavior. diff --git a/Help/manual/cmake-policies.7.rst b/Help/manual/cmake-policies.7.rst index 4b895fe..136cf5c 100644 --- a/Help/manual/cmake-policies.7.rst +++ b/Help/manual/cmake-policies.7.rst @@ -104,3 +104,4 @@ All Policies /policy/CMP0050 /policy/CMP0051 /policy/CMP0052 + /policy/CMP0053 diff --git a/Help/policy/CMP0053.rst b/Help/policy/CMP0053.rst new file mode 100644 index 000..cd7fa54 --- /dev/null +++ b/Help/policy/CMP0053.rst @@ -0,0 +1,17 @@ +CMP0053 +--- + +Always write the output of file(GENERATE). + +CMake 3.0 and lower always writes the output file specified in a +:command:`file(GENERATE)` command, even if the content is unchanged. + +The OLD behavior for this policy is for the :command:`file(GENERATE)` +command to always write the to the output file. The NEW behavior for +this policy is to write the output file only if the content to be written +is different. + +This policy was introduced in CMake version 3.1. +CMake version |release| warns when the policy is not set and uses +``OLD`` behavior. Use the :command:`cmake_policy` command to set it +to ``OLD`` or ``NEW`` explicitly. diff --git a/Help/release/dev/file-GENERATE-CMP0053.rst b/Help/release/dev/file-GENERATE-CMP0053.rst new file mode 100644 index 000..991a0f5 --- /dev/null +++ b/Help/release/dev/file-GENERATE-CMP0053.rst @@ -0,0 +1,7 @@ + +file-GENERATE-CMP0053 +- + +* The :command:`file(GENERATE)` command changed behavior to write the + output file only when content is changed. Policy :policy:`CMP0053` was + introduced to control the behavior. diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 5bfb664..92fe3c6 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -3265,7 +3265,8 @@ cmFileCommand::HandleUploadCommand(std::vectorstd::string const args) void cmFileCommand::AddEvaluationFile(const std::string inputName, const std::string outputExpr, const std::string condition, - bool inputIsContent + bool inputIsContent, + bool writeAlways ) { cmListFileBacktrace lfbt; @@ -3284,7 +3285,8 @@ void cmFileCommand::AddEvaluationFile(const std::string inputName, outputCge, this-Makefile, conditionCge, - inputIsContent); + inputIsContent, + writeAlways); } // @@ -3301,6 +3303,23 @@ bool cmFileCommand::HandleGenerateCommand( this-SetError(Incorrect arguments to GENERATE subcommand.); return false; } + bool writeAlways = false; + + switch (this-Makefile-GetPolicyStatus(cmPolicies::CMP0053)) +{ +case cmPolicies::WARN: + this-Makefile-IssueMessage(cmake::AUTHOR_WARNING, +this-Makefile-GetPolicies()- + GetPolicyWarning(cmPolicies::CMP0053)); +case cmPolicies::OLD: + writeAlways = true; + break; +case cmPolicies::NEW: +case
[Cmake-commits] CMake branch, next, updated. v3.0.0-rc4-2577-g897f685
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 897f685f9d3a1e28bd3531ab181145ef76411192 (commit) via bf60be87a9e5bb3a308e031604fd4247fb51527b (commit) from 042e42a388062d8d121902b9834928266a4c6c2f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=897f685f9d3a1e28bd3531ab181145ef76411192 commit 897f685f9d3a1e28bd3531ab181145ef76411192 Merge: 042e42a bf60be8 Author: Stephen Kelly steve...@gmail.com AuthorDate: Sat Apr 26 08:53:19 2014 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Sat Apr 26 08:53:19 2014 -0400 Merge topic 'WriteCompilerDetectionHeader-module' into next bf60be87 Restrict the platforms of the WriteCompilerDetectionHeader test. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bf60be87a9e5bb3a308e031604fd4247fb51527b commit bf60be87a9e5bb3a308e031604fd4247fb51527b Author: Stephen Kelly steve...@gmail.com AuthorDate: Sat Apr 26 14:51:33 2014 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Sat Apr 26 14:52:42 2014 +0200 Restrict the platforms of the WriteCompilerDetectionHeader test. This is the same condition used to do the feature tests for the moment in GNU-CXX.cmake. diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index f5271b5..27c87a0 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -411,7 +411,7 @@ if(BUILD_TESTING) ADD_TEST_MACRO(Module.GenerateExportHeader GenerateExportHeader) ADD_TEST_MACRO(Module.FindDependency FindDependency) - if (CMAKE_CXX_COMPILER_ID STREQUAL GNU) + if (CMAKE_CXX_COMPILER_ID STREQUAL GNU AND UNIX AND NOT APPLE) ADD_TEST_MACRO(Module.WriteCompilerDetectionHeader WriteCompilerDetectionHeader) endif() if (APPLE OR CMAKE_CXX_COMPILER_ID MATCHES GNU) --- Summary of changes: Tests/CMakeLists.txt |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, next, updated. v3.0.0-rc4-2579-g47a1c1b
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 47a1c1b9930697494784e62d6440450702455fcb (commit) via f2dbfd5b73a7f22d7d318a8808259835436303b8 (commit) from 897f685f9d3a1e28bd3531ab181145ef76411192 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=47a1c1b9930697494784e62d6440450702455fcb commit 47a1c1b9930697494784e62d6440450702455fcb Merge: 897f685 f2dbfd5 Author: Stephen Kelly steve...@gmail.com AuthorDate: Sat Apr 26 08:53:57 2014 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Sat Apr 26 08:53:57 2014 -0400 Merge topic 'WriteCompilerDetectionHeader-module' into next f2dbfd5b Add the WriteCompilerDetectionHeader module. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f2dbfd5b73a7f22d7d318a8808259835436303b8 commit f2dbfd5b73a7f22d7d318a8808259835436303b8 Author: Stephen Kelly steve...@gmail.com AuthorDate: Mon Oct 21 16:59:40 2013 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Sat Apr 26 14:53:34 2014 +0200 Add the WriteCompilerDetectionHeader module. Provide a function to write a portable header to detect compiler features. diff --git a/Help/manual/cmake-modules.7.rst b/Help/manual/cmake-modules.7.rst index 2bbe622..ecc9cc4 100644 --- a/Help/manual/cmake-modules.7.rst +++ b/Help/manual/cmake-modules.7.rst @@ -232,3 +232,4 @@ All Modules /module/UsewxWidgets /module/Use_wxWindows /module/WriteBasicConfigVersionFile + /module/WriteCompilerDetectionHeader diff --git a/Help/module/WriteCompilerDetectionHeader.rst b/Help/module/WriteCompilerDetectionHeader.rst new file mode 100644 index 000..4c81b48 --- /dev/null +++ b/Help/module/WriteCompilerDetectionHeader.rst @@ -0,0 +1 @@ +.. cmake-module:: ../../Modules/WriteCompilerDetectionHeader.cmake diff --git a/Help/release/dev/module-WriteCompilerDetectionHeader.rst b/Help/release/dev/module-WriteCompilerDetectionHeader.rst new file mode 100644 index 000..d355d2c --- /dev/null +++ b/Help/release/dev/module-WriteCompilerDetectionHeader.rst @@ -0,0 +1,5 @@ +module-WriteCompilerDetectionHeader +--- + +* The WriteCompilerDetectionHeader module was added to allow creation of + a portable header file for compiler optional feature detection. diff --git a/Modules/WriteCompilerDetectionHeader.cmake b/Modules/WriteCompilerDetectionHeader.cmake new file mode 100644 index 000..89a1808 --- /dev/null +++ b/Modules/WriteCompilerDetectionHeader.cmake @@ -0,0 +1,367 @@ +#.rst: +# WriteCompilerDetectionHeader +# +# +# This module provides the function write_compiler_detection_header(). +# +# The ``WRITE_COMPILER_DETECTION_HEADER`` function can be used to generate +# a file suitable for preprocessor inclusion which contains macros to be +# used in source code:: +# +#write_compiler_detection_header( +# FILE file +# PREFIX prefix +# COMPILERS compiler [...] +# FEATURES feature [...] +# [VERSION version] +# [PROLOG prolog] +# [EPILOG epilog] +#) +# +# The ``write_compiler_detection_header`` function generates the +# file ``file`` with macros which all have the prefix ``prefix``. +# +# ``VERSION`` may be used to specify a generation compatibility with older +# CMake versions. By default, a file is generated with compatibility with +# the :variable:`CMAKE_MINIMUM_REQUIRED_VERSION`. Newer CMake versions may +# generate additional code, and the ``VERSION`` may be used to maintain +# compatibility in the generated file while allowing the minimum CMake +# version of the project to be changed indepenendently. +# +# ``PROLOG`` may be specified as text content to write at the start of the +# header. ``EPILOG`` may be specified as text content to write at the end +# of the header +# +# At least one ``compiler`` and one ``feature`` must be listed. Compilers +# which are known to CMake, but not specified are detected and a preprocessor +# ``#error`` is generated for them. A preprocessor macro matching +# ``${PREFIX}_COMPILER_IS_${CompilerId}`` is generated for each compiler +# known to CMake to contain the value ``0`` or ``1``. +# +# Feature Test Macros +# === +# +# For each compiler, a preprocessor test of the compiler version is generated +# denoting whether the each feature is enabled. A preprocessor macro +# matching ``${PREFIX}_COMPILER_${FEATURE_NAME_UPPER}`` is generated to +# contain the value ``0`` or ``1`` depending on whether the compiler in +# use supports the feature: +# +# ..
[Cmake-commits] CMake branch, next, updated. v3.0.0-rc4-2581-gb4aa998
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 b4aa9984f257d28ad8020be348b5d7ba54327325 (commit) via 892519accf010085f7e6712464d84c06be88096d (commit) from 47a1c1b9930697494784e62d6440450702455fcb (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b4aa9984f257d28ad8020be348b5d7ba54327325 commit b4aa9984f257d28ad8020be348b5d7ba54327325 Merge: 47a1c1b 892519a Author: Stephen Kelly steve...@gmail.com AuthorDate: Sat Apr 26 09:34:12 2014 -0400 Commit: CMake Topic Stage kwro...@kitware.com CommitDate: Sat Apr 26 09:34:12 2014 -0400 Merge topic 'file-generate-if-different' into next 892519ac Fix tests. http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=892519accf010085f7e6712464d84c06be88096d commit 892519accf010085f7e6712464d84c06be88096d Author: Stephen Kelly steve...@gmail.com AuthorDate: Sat Apr 26 15:32:50 2014 +0200 Commit: Stephen Kelly steve...@gmail.com CommitDate: Sat Apr 26 15:32:50 2014 +0200 Fix tests. diff --git a/Tests/RunCMake/File_Generate/RunCMakeTest.cmake b/Tests/RunCMake/File_Generate/RunCMakeTest.cmake index c055af4..1f70ef4 100644 --- a/Tests/RunCMake/File_Generate/RunCMakeTest.cmake +++ b/Tests/RunCMake/File_Generate/RunCMakeTest.cmake @@ -13,8 +13,8 @@ set(timeformat %Y%j%H%M%S) macro(prepare_CMP0053_test policyStatus) file(REMOVE ${RunCMake_BINARY_DIR}/CMP0053-${policyStatus}-build/output_file.txt) - set(RunCMake_TEST_FILE ${RunCMake_SOURCE_DIR}/CMP0053-${policyStatus}) - set(RunCMake_TEST_BINARY_DIR CMP0053-${policyStatus}-build) + set(RunCMake_TEST_FILE CMP0053-${policyStatus}) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CMP0053-${policyStatus}-build) run_cmake(CMP0053-${policyStatus}-prepare) unset(RunCMake_TEST_FILE) unset(RunCMake_TEST_BINARY_DIR) --- Summary of changes: Tests/RunCMake/File_Generate/RunCMakeTest.cmake |4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) hooks/post-receive -- CMake ___ Cmake-commits mailing list Cmake-commits@cmake.org http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits
[Cmake-commits] CMake branch, master, updated. v3.0.0-rc4-727-gc8b76d5
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 c8b76d58bd27c929f70ae999d14bb414cf8c4c43 (commit) from 415b75ff378b1498d86b5c84616c65e5f68bfb66 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c8b76d58bd27c929f70ae999d14bb414cf8c4c43 commit c8b76d58bd27c929f70ae999d14bb414cf8c4c43 Author: Kitware Robot kwro...@kitware.com AuthorDate: Sun Apr 27 00:01:09 2014 -0400 Commit: Kitware Robot kwro...@kitware.com CommitDate: Sun Apr 27 00:01:09 2014 -0400 CMake Nightly Date Stamp diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 0b521ac..98f854e 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 0) -set(CMake_VERSION_PATCH 20140426) +set(CMake_VERSION_PATCH 20140427) #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/cgi-bin/mailman/listinfo/cmake-commits