[Cmake-commits] CMake branch, next, updated. v2.8.12.1-5897-gb8bbab4
Daniele E. Domenichelli
daniele.domenichelli at gmail.com
Wed Nov 27 18:03:25 EST 2013
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 b8bbab49a67056db603ae48403de45b3fc758d58 (commit)
via da13eecef80a62ff17dcf4c19bff8729d0e7bc71 (commit)
via d236993695e9a7bf3a4301d84eb3238059fe9a47 (commit)
via bf203c8f8e4a6ad4f642b2653f8abca563484889 (commit)
via 273e66e761589f29b5202ea6e61e0fa890d4bb8e (commit)
via 1acf3c6cae0524925c269d41cd0bddbbcec9f8f9 (commit)
via 8a8cc69e1a3b9a9f35a16290519d8249f14a4029 (commit)
via 3a88afa33e311749358c3abc393804aa421fb4f5 (commit)
via c9d0426ba560d1b70656a3f444ddb7053b7f82e4 (commit)
from 23ebeb79ea28706205d5882fd3b8e242df588957 (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=b8bbab49a67056db603ae48403de45b3fc758d58
commit b8bbab49a67056db603ae48403de45b3fc758d58
Merge: 23ebeb7 da13eec
Author: Daniele E. Domenichelli <daniele.domenichelli at gmail.com>
AuthorDate: Wed Nov 27 18:03:22 2013 -0500
Commit: CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Nov 27 18:03:22 2013 -0500
Merge topic 'CMakeParseArguments_EmptyArgs' into next
da13eec Make define_property() scriptable
d236993 CMakeParseArguments: Add unit tests
bf203c8 CMakeParseArguments: Add workaround for compatibility with CMake <= 2.8.12
273e66e CMakeParseArguments: Next release will be 3.0.0, not 2.8.13
1acf3c6 CMakeParseArguments: Avoid replacing CMAKE_MATCH_1
8a8cc69 CMakeParseArguments: Update documentation
3a88afa CMakeParseArguments: Keep compatibility with previous behaviour
c9d0426 CMakeParseArguments: Do not skip empty arguments
diff --cc Tests/RunCMake/CMakeLists.txt
index 89a0794,bb26396..9325b8c
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@@ -135,5 -134,5 +135,6 @@@ endif(
add_RunCMake_test(File_Generate)
add_RunCMake_test(ExportWithoutLanguage)
add_RunCMake_test(target_link_libraries)
+add_RunCMake_test(target_compile_features)
add_RunCMake_test(CheckModules)
+ add_RunCMake_test(CMakeParseArguments)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=da13eecef80a62ff17dcf4c19bff8729d0e7bc71
commit da13eecef80a62ff17dcf4c19bff8729d0e7bc71
Author: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Thu Nov 14 16:14:30 2013 +0100
Commit: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
CommitDate: Thu Nov 28 00:02:22 2013 +0100
Make define_property() scriptable
This will allow CMakeParseArguments and some other modules that use
define_property (i.e. ExternalProject) to be used in script mode.
diff --git a/Source/cmDefinePropertyCommand.h b/Source/cmDefinePropertyCommand.h
index 8dc4d96..c4143cf 100644
--- a/Source/cmDefinePropertyCommand.h
+++ b/Source/cmDefinePropertyCommand.h
@@ -34,6 +34,13 @@ public:
*/
virtual const char* GetName() const { return "define_property";}
+ /**
+ * This determines if the command is invoked when in script mode.
+ * define_property() will have no effect in script mode, but this will
+ * make many of the modules usable in cmake/ctest scripts.
+ */
+ virtual bool IsScriptable() const { return true; }
+
cmTypeMacro(cmDefinePropertyCommand, cmCommand);
private:
std::string PropertyName;
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d236993695e9a7bf3a4301d84eb3238059fe9a47
commit d236993695e9a7bf3a4301d84eb3238059fe9a47
Author: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Thu Nov 14 11:54:29 2013 +0100
Commit: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
CommitDate: Thu Nov 28 00:02:22 2013 +0100
CMakeParseArguments: Add unit tests
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 209b0b3..bb26396 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -135,3 +135,4 @@ add_RunCMake_test(File_Generate)
add_RunCMake_test(ExportWithoutLanguage)
add_RunCMake_test(target_link_libraries)
add_RunCMake_test(CheckModules)
+add_RunCMake_test(CMakeParseArguments)
diff --git a/Tests/RunCMake/CMakeParseArguments/ARGUMENT-KEEP.cmake b/Tests/RunCMake/CMakeParseArguments/ARGUMENT-KEEP.cmake
new file mode 100644
index 0000000..1913713
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/ARGUMENT-KEEP.cmake
@@ -0,0 +1,29 @@
+# CMAKE_MINIMUM_REQUIRED_VERSION 2.8.12
+# CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY 1
+# CMAKE_PARSE_ARGUMENTS_(KEEP|SKIP)_EMPTY KEEP
+# => KEEP
+
+cmake_minimum_required(VERSION 2.8.12)
+
+include(CMakeParseArguments)
+
+set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY 1)
+
+macro(MY_INSTALL)
+ set(options OPTIONAL FAST)
+ set(oneValueArgs DESTINATION RENAME)
+ set(multiValueArgs TARGETS CONFIGURATIONS)
+ cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" CMAKE_PARSE_ARGUMENTS_KEEP_EMPTY "${ARGN}")
+endmacro()
+
+my_install(DESTINATION "" TARGETS foo "" bar)
+
+if(NOT DEFINED MY_INSTALL_DESTINATION)
+ message(FATAL_ERROR "NOT DEFINED MY_INSTALL_DESTINATION")
+elseif(NOT "${MY_INSTALL_DESTINATION}" STREQUAL "")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_DESTINATION}\" STREQUAL \"\"")
+endif()
+
+if(NOT "${MY_INSTALL_TARGETS}" STREQUAL "foo;;bar")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_TARGETS}\" STREQUAL \"foo;;bar\"")
+endif()
diff --git a/Tests/RunCMake/CMakeParseArguments/ARGUMENT-SKIP.cmake b/Tests/RunCMake/CMakeParseArguments/ARGUMENT-SKIP.cmake
new file mode 100644
index 0000000..6e0598c
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/ARGUMENT-SKIP.cmake
@@ -0,0 +1,27 @@
+# CMAKE_MINIMUM_REQUIRED_VERSION 2.8.12
+# CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY 0
+# CMAKE_PARSE_ARGUMENTS_(KEEP|SKIP)_EMPTY SKIP
+# => SKIP
+
+cmake_minimum_required(VERSION 2.8.12)
+
+include(CMakeParseArguments)
+
+set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY 0)
+
+macro(MY_INSTALL)
+ set(options OPTIONAL FAST)
+ set(oneValueArgs DESTINATION RENAME)
+ set(multiValueArgs TARGETS CONFIGURATIONS)
+ cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY "${ARGN}")
+endmacro()
+
+my_install(DESTINATION "" TARGETS foo "" bar)
+
+if(DEFINED MY_INSTALL_DESTINATION)
+ message(FATAL_ERROR "DEFINED MY_INSTALL_DESTINATION")
+endif()
+
+if(NOT "${MY_INSTALL_TARGETS}" STREQUAL "foo;bar")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_TARGETS}\" STREQUAL \"foo;bar\"")
+endif()
diff --git a/Tests/RunCMake/CMakeParseArguments/CMakeLists.txt b/Tests/RunCMake/CMakeParseArguments/CMakeLists.txt
new file mode 100644
index 0000000..4b3de84
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8.12)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/CMakeParseArguments/Example.cmake b/Tests/RunCMake/CMakeParseArguments/Example.cmake
new file mode 100644
index 0000000..063b5f8
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/Example.cmake
@@ -0,0 +1,70 @@
+include(CMakeParseArguments)
+
+macro(MY_INSTALL)
+ set(options OPTIONAL FAST)
+ set(oneValueArgs DESTINATION RENAME)
+ set(multiValueArgs TARGETS CONFIGURATIONS)
+ cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
+endmacro()
+
+my_install(TARGETS foo bar DESTINATION bin OPTIONAL)
+
+if(NOT MY_INSTALL_OPTIONAL)
+ message(FATAL_ERROR "NOT MY_INSTALL_OPTIONAL")
+endif()
+
+if(MY_INSTALL_FAST)
+ message(FATAL_ERROR "MY_INSTALL_FAST")
+endif()
+
+if(NOT "${MY_INSTALL_DESTINATION}" STREQUAL "bin")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_DESTINATION}\" STREQUAL \"bin\"")
+endif()
+
+if(DEFINED MY_INSTALL_RENAME)
+ message(FATAL_ERROR "DEFINED MY_INSTALL_RENAME")
+endif()
+
+if(NOT "${MY_INSTALL_TARGETS}" STREQUAL "foo;bar")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_TARGETS}\" STREQUAL \"foo;bar\"")
+endif()
+
+if(DEFINED MY_INSTALL_CONFIGURATIONS)
+ message(FATAL_ERROR "DEFINED MY_INSTALL_CONFIGURATIONS")
+endif()
+
+if(DEFINED MY_INSTALL_UNPARSED_ARGUMENTS)
+ message(DEFINED MY_INSTALL_UNPARSED_ARGUMENTS)
+endif()
+
+
+
+my_install(TARGETS foo bar DESTINATION bin OPTIONAL blub)
+
+if(NOT MY_INSTALL_OPTIONAL)
+ message(FATAL_ERROR "NOT MY_INSTALL_OPTIONAL")
+endif()
+
+if(MY_INSTALL_FAST)
+ message(FATAL_ERROR "MY_INSTALL_FAST")
+endif()
+
+if(NOT "${MY_INSTALL_DESTINATION}" STREQUAL "bin")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_DESTINATION}\" STREQUAL \"bin\"")
+endif()
+
+if(DEFINED MY_INSTALL_RENAME)
+ message(FATAL_ERROR "DEFINED MY_INSTALL_RENAME")
+endif()
+
+if(NOT "${MY_INSTALL_TARGETS}" STREQUAL "foo;bar")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_TARGETS}\" STREQUAL \"foo;bar\"")
+endif()
+
+if(DEFINED MY_INSTALL_CONFIGURATIONS)
+ message(FATAL_ERROR "DEFINED MY_INSTALL_CONFIGURATIONS")
+endif()
+
+if(NOT "${MY_INSTALL_UNPARSED_ARGUMENTS}" STREQUAL "blub")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_UNPARSED_ARGUMENTS}\" STREQUAL \"blub\"")
+endif()
diff --git a/Tests/RunCMake/CMakeParseArguments/PROPERTY-KEEP.cmake b/Tests/RunCMake/CMakeParseArguments/PROPERTY-KEEP.cmake
new file mode 100644
index 0000000..67046ef
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/PROPERTY-KEEP.cmake
@@ -0,0 +1,29 @@
+# CMAKE_MINIMUM_REQUIRED_VERSION 2.8.12
+# CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY 0
+# CMAKE_PARSE_ARGUMENTS_(KEEP|SKIP)_EMPTY UNSET
+# => KEEP
+
+cmake_minimum_required(VERSION 2.8.12)
+
+include(CMakeParseArguments)
+
+set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY 0)
+
+macro(MY_INSTALL)
+ set(options OPTIONAL FAST)
+ set(oneValueArgs DESTINATION RENAME)
+ set(multiValueArgs TARGETS CONFIGURATIONS)
+ cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
+endmacro()
+
+my_install(DESTINATION "" TARGETS foo "" bar)
+
+if(NOT DEFINED MY_INSTALL_DESTINATION)
+ message(FATAL_ERROR "NOT DEFINED MY_INSTALL_DESTINATION")
+elseif(NOT "${MY_INSTALL_DESTINATION}" STREQUAL "")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_DESTINATION}\" STREQUAL \"\"")
+endif()
+
+if(NOT "${MY_INSTALL_TARGETS}" STREQUAL "foo;;bar")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_TARGETS}\" STREQUAL \"foo;;bar\"")
+endif()
diff --git a/Tests/RunCMake/CMakeParseArguments/PROPERTY-SKIP.cmake b/Tests/RunCMake/CMakeParseArguments/PROPERTY-SKIP.cmake
new file mode 100644
index 0000000..941d63f
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/PROPERTY-SKIP.cmake
@@ -0,0 +1,27 @@
+# CMAKE_MINIMUM_REQUIRED_VERSION 2.8.12
+# CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY 1
+# CMAKE_PARSE_ARGUMENTS_(KEEP|SKIP)_EMPTY UNSET
+# => SKIP
+
+cmake_minimum_required(VERSION 2.8.12)
+
+include(CMakeParseArguments)
+
+set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY 1)
+
+macro(MY_INSTALL)
+ set(options OPTIONAL FAST)
+ set(oneValueArgs DESTINATION RENAME)
+ set(multiValueArgs TARGETS CONFIGURATIONS)
+ cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
+endmacro()
+
+my_install(DESTINATION "" TARGETS foo "" bar)
+
+if(DEFINED MY_INSTALL_DESTINATION)
+ message(FATAL_ERROR "DEFINED MY_INSTALL_DESTINATION")
+endif()
+
+if(NOT "${MY_INSTALL_TARGETS}" STREQUAL "foo;bar")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_TARGETS}\" STREQUAL \"foo;bar\"")
+endif()
diff --git a/Tests/RunCMake/CMakeParseArguments/RunCMakeTest.cmake b/Tests/RunCMake/CMakeParseArguments/RunCMakeTest.cmake
new file mode 100644
index 0000000..30ab6c6
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/RunCMakeTest.cmake
@@ -0,0 +1,9 @@
+include(RunCMake)
+
+run_cmake(Example)
+run_cmake(VERSION-SKIP)
+# run_cmake(VERSION-KEEP) # Enable when 3.0.0 is released
+run_cmake(PROPERTY-SKIP)
+run_cmake(PROPERTY-KEEP)
+run_cmake(ARGUMENT-SKIP)
+run_cmake(ARGUMENT-KEEP)
diff --git a/Tests/RunCMake/CMakeParseArguments/VERSION-KEEP.cmake b/Tests/RunCMake/CMakeParseArguments/VERSION-KEEP.cmake
new file mode 100644
index 0000000..44967ec
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/VERSION-KEEP.cmake
@@ -0,0 +1,27 @@
+# CMAKE_MINIMUM_REQUIRED_VERSION 3.0.0
+# CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY UNSET
+# CMAKE_PARSE_ARGUMENTS_(KEEP|SKIP)_EMPTY UNSET
+# => KEEP
+
+cmake_minimum_required(VERSION 3.0.0)
+
+include(CMakeParseArguments)
+
+macro(MY_INSTALL)
+ set(options OPTIONAL FAST)
+ set(oneValueArgs DESTINATION RENAME)
+ set(multiValueArgs TARGETS CONFIGURATIONS)
+ cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
+endmacro()
+
+my_install(DESTINATION "" TARGETS foo "" bar)
+
+if(NOT DEFINED MY_INSTALL_DESTINATION)
+ message(FATAL_ERROR "NOT DEFINED MY_INSTALL_DESTINATION")
+elseif(NOT "${MY_INSTALL_DESTINATION}" STREQUAL "")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_DESTINATION}\" STREQUAL \"\"")
+endif()
+
+if(NOT "${MY_INSTALL_TARGETS}" STREQUAL "foo;;bar")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_TARGETS}\" STREQUAL \"foo;;bar\"")
+endif()
diff --git a/Tests/RunCMake/CMakeParseArguments/VERSION-SKIP.cmake b/Tests/RunCMake/CMakeParseArguments/VERSION-SKIP.cmake
new file mode 100644
index 0000000..88ff49c
--- /dev/null
+++ b/Tests/RunCMake/CMakeParseArguments/VERSION-SKIP.cmake
@@ -0,0 +1,25 @@
+# CMAKE_MINIMUM_REQUIRED_VERSION 2.8.12
+# CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY UNSET
+# CMAKE_PARSE_ARGUMENTS_(KEEP|SKIP)_EMPTY UNSET
+# => SKIP
+
+cmake_minimum_required(VERSION 2.8.12)
+
+include(CMakeParseArguments)
+
+macro(MY_INSTALL)
+ set(options OPTIONAL FAST)
+ set(oneValueArgs DESTINATION RENAME)
+ set(multiValueArgs TARGETS CONFIGURATIONS)
+ cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}")
+endmacro()
+
+my_install(DESTINATION "" TARGETS foo "" bar)
+
+if(DEFINED MY_INSTALL_DESTINATION)
+ message(FATAL_ERROR "DEFINED MY_INSTALL_DESTINATION")
+endif()
+
+if(NOT "${MY_INSTALL_TARGETS}" STREQUAL "foo;bar")
+ message(FATAL_ERROR "NOT \"\${MY_INSTALL_TARGETS}\" STREQUAL \"foo;bar\"")
+endif()
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bf203c8f8e4a6ad4f642b2653f8abca563484889
commit bf203c8f8e4a6ad4f642b2653f8abca563484889
Author: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Thu Nov 14 11:42:35 2013 +0100
Commit: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
CommitDate: Thu Nov 28 00:02:22 2013 +0100
CMakeParseArguments: Add workaround for compatibility with CMake <= 2.8.12
This "wrapper" macro is a workaround that allows to use this version of this
module with CMake <= 2.8.12.
Before that version set(VAR "" PARENT_SCOPE) did not set the variable in
the parent scope and instead it used to unset it.
This wrapper calls the real function, but if necessary (i.e. when empty
arguments should not be skipped and CMake < 3.0.0) it parses the arguments
again in order to find single and multiple arguments that have not been set
and sets them to an empty string in the same variable scope as the caller.
diff --git a/Modules/CMakeParseArguments.cmake b/Modules/CMakeParseArguments.cmake
index e688e55..6aa2d63 100644
--- a/Modules/CMakeParseArguments.cmake
+++ b/Modules/CMakeParseArguments.cmake
@@ -163,40 +163,10 @@ define_property(DIRECTORY PROPERTY "CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY" IN
)
-function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames)
- # first set all result variables to empty/FALSE
- foreach(arg_name ${_singleArgNames} ${_multiArgNames})
- set(${prefix}_${arg_name})
- endforeach()
-
- foreach(option ${_optionNames})
- set(${prefix}_${option} FALSE)
- endforeach()
-
- set(${prefix}_UNPARSED_ARGUMENTS)
-
+function(_CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames _skipEmpty)
set(insideValues FALSE)
set(currentArgName)
- get_property(_defaultSkipEmptySet DIRECTORY PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY SET)
- get_property(_defaultSkipEmpty DIRECTORY PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY)
-
- if("x${ARGN}" MATCHES "^xCMAKE_PARSE_ARGUMENTS_(SKIP|KEEP)_EMPTY;?")
- if("${CMAKE_MATCH_1}" STREQUAL "SKIP")
- set(_skipEmpty 1)
- elseif("${CMAKE_MATCH_1}" STREQUAL "KEEP")
- set(_skipEmpty 0)
- endif()
- string(REGEX REPLACE "^${CMAKE_MATCH_0}" "" ARGN "x${ARGN}")
- elseif(_defaultSkipEmptySet)
- set(_skipEmpty ${_defaultSkipEmpty})
- elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.0.0)
- # Keep compatibility with previous releases
- set(_skipEmpty 1)
- else()
- set(_skipEmpty 0)
- endif()
-
if(_skipEmpty)
set(_loopARGN ${ARGN})
else()
@@ -257,3 +227,63 @@ function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgName
endforeach()
endfunction()
+
+
+# This "wrapper" macro is a workaround that allows to use this version of this
+# module with CMake <= 2.8.12
+# Before that version set(VAR "" PARENT_SCOPE) did not set the variable in
+# the parent scope and instead it used to unset it.
+# This wrapper calls the real function, but if necessary (i.e. when empty
+# arguments should not be skipped and CMake < 3.0.0) it parses the arguments
+# again in order to find single and multiple arguments that have not been set
+# and sets them to an empty string in the same variable scope as the caller.
+macro(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames)
+ # first set all result variables to empty/FALSE
+ foreach(arg_name ${_singleArgNames} ${_multiArgNames})
+ set(${prefix}_${arg_name})
+ endforeach()
+
+ foreach(option ${_optionNames})
+ set(${prefix}_${option} FALSE)
+ endforeach()
+
+ set(${prefix}_UNPARSED_ARGUMENTS)
+
+ get_property(_defaultSkipEmptySet DIRECTORY PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY SET)
+ get_property(_defaultSkipEmpty DIRECTORY PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY)
+
+ if("x${ARGN}" MATCHES "^xCMAKE_PARSE_ARGUMENTS_(SKIP|KEEP)_EMPTY;?")
+ if("${CMAKE_MATCH_1}" STREQUAL "SKIP")
+ set(_skipEmpty 1)
+ elseif("${CMAKE_MATCH_1}" STREQUAL "KEEP")
+ set(_skipEmpty 0)
+ endif()
+ string(REGEX REPLACE "^${CMAKE_MATCH_0}" "" ARGN "x${ARGN}")
+ elseif(_defaultSkipEmptySet)
+ set(_skipEmpty "${_defaultSkipEmpty}")
+ elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.0.0)
+ # Keep compatibility with previous releases
+ set(_skipEmpty 1)
+ else()
+ set(_skipEmpty 0)
+ endif()
+
+ _cmake_parse_arguments("${prefix}" "${_optionNames}" "${_singleArgNames}" "${_multiArgNames}" "${_skipEmpty}" "${ARGN}")
+
+ if(NOT _skipEmpty AND CMAKE_VERSION VERSION_LESS 3.0.0)
+ set(__singleArgNames ${_singleArgNames})
+ set(__multiArgNames ${_multiArgNames})
+ foreach(currentArg ${ARGN})
+ if(NOT DEFINED ${prefix}_${currentArg})
+ list(FIND __singleArgNames "${currentArg}" _singleArgIndex)
+ list(FIND __multiArgNames "${currentArg}" _multiArgIndex)
+ if(NOT ${_singleArgIndex} EQUAL -1 OR NOT ${_multiArgIndex} EQUAL -1)
+ set(${prefix}_${currentArg} "")
+ endif()
+ endif()
+ endforeach()
+ unset(__singleArgNames)
+ unset(__multiArgNames)
+ endif()
+
+endmacro()
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=273e66e761589f29b5202ea6e61e0fa890d4bb8e
commit 273e66e761589f29b5202ea6e61e0fa890d4bb8e
Author: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Thu Nov 14 11:58:08 2013 +0100
Commit: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
CommitDate: Thu Nov 28 00:02:22 2013 +0100
CMakeParseArguments: Next release will be 3.0.0, not 2.8.13
diff --git a/Modules/CMakeParseArguments.cmake b/Modules/CMakeParseArguments.cmake
index d4b42a5..e688e55 100644
--- a/Modules/CMakeParseArguments.cmake
+++ b/Modules/CMakeParseArguments.cmake
@@ -46,7 +46,7 @@
# The cmake CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY (old behaviour) and
# CMAKE_PARSE_ARGUMENTS_KEEP_EMPTY options decide how empty arguments
# should be handled. If none of these options is set, for backwards
-# compatibility, if CMAKE_MINIMUM_REQUIRED_VERSION < 2.8.13, the default
+# compatibility, if CMAKE_MINIMUM_REQUIRED_VERSION < 3.0.0, the default
# behaviour is to skip empty arguments, otherwise the default behaviour
# is to keep them. Using the CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY
# directory property the user can explicitly set the default behaviour
@@ -190,7 +190,7 @@ function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgName
string(REGEX REPLACE "^${CMAKE_MATCH_0}" "" ARGN "x${ARGN}")
elseif(_defaultSkipEmptySet)
set(_skipEmpty ${_defaultSkipEmpty})
- elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.13)
+ elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 3.0.0)
# Keep compatibility with previous releases
set(_skipEmpty 1)
else()
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1acf3c6cae0524925c269d41cd0bddbbcec9f8f9
commit 1acf3c6cae0524925c269d41cd0bddbbcec9f8f9
Author: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Thu Nov 14 11:57:10 2013 +0100
Commit: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
CommitDate: Thu Nov 28 00:02:22 2013 +0100
CMakeParseArguments: Avoid replacing CMAKE_MATCH_1
diff --git a/Modules/CMakeParseArguments.cmake b/Modules/CMakeParseArguments.cmake
index 3f5375f..d4b42a5 100644
--- a/Modules/CMakeParseArguments.cmake
+++ b/Modules/CMakeParseArguments.cmake
@@ -182,12 +182,12 @@ function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgName
get_property(_defaultSkipEmpty DIRECTORY PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY)
if("x${ARGN}" MATCHES "^xCMAKE_PARSE_ARGUMENTS_(SKIP|KEEP)_EMPTY;?")
- string(REGEX REPLACE "^${CMAKE_MATCH_0}" "" ARGN "x${ARGN}")
if("${CMAKE_MATCH_1}" STREQUAL "SKIP")
set(_skipEmpty 1)
elseif("${CMAKE_MATCH_1}" STREQUAL "KEEP")
set(_skipEmpty 0)
endif()
+ string(REGEX REPLACE "^${CMAKE_MATCH_0}" "" ARGN "x${ARGN}")
elseif(_defaultSkipEmptySet)
set(_skipEmpty ${_defaultSkipEmpty})
elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.13)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8a8cc69e1a3b9a9f35a16290519d8249f14a4029
commit 8a8cc69e1a3b9a9f35a16290519d8249f14a4029
Author: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Fri Nov 8 16:41:41 2013 +0100
Commit: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
CommitDate: Thu Nov 28 00:02:22 2013 +0100
CMakeParseArguments: Update documentation
diff --git a/Modules/CMakeParseArguments.cmake b/Modules/CMakeParseArguments.cmake
index b396657..3f5375f 100644
--- a/Modules/CMakeParseArguments.cmake
+++ b/Modules/CMakeParseArguments.cmake
@@ -2,16 +2,23 @@
# CMakeParseArguments
# -------------------
#
+# Parse arguments given to a macro or a function.
#
-#
-# CMAKE_PARSE_ARGUMENTS(<prefix> <options> <one_value_keywords>
-# <multi_value_keywords> args...)
-#
-# CMAKE_PARSE_ARGUMENTS() is intended to be used in macros or functions
+# cmake_parse_arguments() is intended to be used in macros or functions
# for parsing the arguments given to that macro or function. It
# processes the arguments and defines a set of variables which hold the
# values of the respective options.
#
+# ::
+#
+# cmake_parse_arguments(<prefix>
+# <options>
+# <one_value_keywords>
+# <multi_value_keywords>
+# [CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY|CMAKE_PARSE_ARGUMENTS_KEEP_EMPTY]
+# args...
+# )
+#
# The <options> argument contains all options for the respective macro,
# i.e. keywords which can be used when calling the macro without any
# value following, like e.g. the OPTIONAL keyword of the install()
@@ -25,7 +32,7 @@
# macro which can be followed by more than one value, like e.g. the
# TARGETS or FILES keywords of the install() command.
#
-# When done, CMAKE_PARSE_ARGUMENTS() will have defined for each of the
+# When done, cmake_parse_arguments() will have defined for each of the
# keywords listed in <options>, <one_value_keywords> and
# <multi_value_keywords> a variable composed of the given <prefix>
# followed by "_" and the name of the respective keyword. These
@@ -36,6 +43,17 @@
# <prefix>_UNPARSED_ARGUMENTS, this can be checked afterwards to see
# whether your macro was called with unrecognized parameters.
#
+# The cmake CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY (old behaviour) and
+# CMAKE_PARSE_ARGUMENTS_KEEP_EMPTY options decide how empty arguments
+# should be handled. If none of these options is set, for backwards
+# compatibility, if CMAKE_MINIMUM_REQUIRED_VERSION < 2.8.13, the default
+# behaviour is to skip empty arguments, otherwise the default behaviour
+# is to keep them. Using the CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY
+# directory property the user can explicitly set the default behaviour
+# for a folder and its subfolders.
+#
+#
+#
# As an example here a my_install() macro, which takes similar arguments
# as the real install() command:
#
@@ -80,7 +98,42 @@
# interpreted as the beginning of the new option. E.g.
# my_install(TARGETS foo DESTINATION OPTIONAL) would result in
# MY_INSTALL_DESTINATION set to "OPTIONAL", but MY_INSTALL_DESTINATION
-# would be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefor.
+# would be empty and MY_INSTALL_OPTIONAL would be set to TRUE therefore.
+#
+#
+#
+# If the "CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY" option is set,
+# cmake_parse_argumentswill not consider empty arguments.
+# Therefore
+#
+# ::
+#
+# my_install(DESTINATION "" TARGETS foo "" bar)
+#
+# Will set
+#
+# ::
+#
+# MY_INSTALL_DESTINATION = (unset)
+# MY_INSTALL_MULTI = "foo;bar"
+#
+# Using the "CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY" option instead, will set
+#
+# ::
+#
+# MY_INSTALL_SINGLE = ""
+# MY_INSTALL_MULTI = "foo;;bar"
+#
+#
+# It is also important to note that:
+#
+# ::
+#
+# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}" )
+# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
+#
+# Will behave differently, because in the latter case empty arguments
+# are not passed to cmake_parse_arguments.
#=============================================================================
# Copyright 2010 Alexander Neundorf <neundorf at kde.org>
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3a88afa33e311749358c3abc393804aa421fb4f5
commit 3a88afa33e311749358c3abc393804aa421fb4f5
Author: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Fri Nov 8 16:26:06 2013 +0100
Commit: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
CommitDate: Thu Nov 28 00:02:22 2013 +0100
CMakeParseArguments: Keep compatibility with previous behaviour
The behaviour is now decided as follows:
* If CMAKE_MINIMUM_REQUIRED_VERSION < 2.8.13, the default behaviour is
to skip empty arguments, otherwise the default behaviour is to keep
them.
* Using the CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY directory property
the user can explicitly set the default behaviour for a folder and its
subfolders.
* Using CMAKE_PARSE_ARGUMENTS_(SKIP|KEEP)_EMPTY or as the first argument
of the call after the mandatory ones, the user can specify whether to
keep or to skip the empty arguments, regardless of the default
behaviour for that cmake_parse_arguments() call.
Therefore the new syntax is:
cmake_parse_arguments(<prefix>
<options>
<one_value_keywords>
<multi_value_keywords>
[CMAKE_PARSE_ARGUMENTS_SKIP_EMPTY|CMAKE_PARSE_ARGUMENTS_KEEP_EMPTY]
args...
)
diff --git a/Modules/CMakeParseArguments.cmake b/Modules/CMakeParseArguments.cmake
index d96e9a4..b396657 100644
--- a/Modules/CMakeParseArguments.cmake
+++ b/Modules/CMakeParseArguments.cmake
@@ -102,6 +102,14 @@ endif()
set(__CMAKE_PARSE_ARGUMENTS_INCLUDED TRUE)
+define_property(DIRECTORY PROPERTY "CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY" INHERITED
+ BRIEF_DOCS "Whether empty arguments should be skipped or not by default."
+ FULL_DOCS
+ "See documentation of the cmake_parse_arguments() function in the "
+ "CMakeParseArguments module."
+ )
+
+
function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgNames)
# first set all result variables to empty/FALSE
foreach(arg_name ${_singleArgNames} ${_multiArgNames})
@@ -117,8 +125,33 @@ function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgName
set(insideValues FALSE)
set(currentArgName)
+ get_property(_defaultSkipEmptySet DIRECTORY PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY SET)
+ get_property(_defaultSkipEmpty DIRECTORY PROPERTY CMAKE_PARSE_ARGUMENTS_DEFAULT_SKIP_EMPTY)
+
+ if("x${ARGN}" MATCHES "^xCMAKE_PARSE_ARGUMENTS_(SKIP|KEEP)_EMPTY;?")
+ string(REGEX REPLACE "^${CMAKE_MATCH_0}" "" ARGN "x${ARGN}")
+ if("${CMAKE_MATCH_1}" STREQUAL "SKIP")
+ set(_skipEmpty 1)
+ elseif("${CMAKE_MATCH_1}" STREQUAL "KEEP")
+ set(_skipEmpty 0)
+ endif()
+ elseif(_defaultSkipEmptySet)
+ set(_skipEmpty ${_defaultSkipEmpty})
+ elseif(CMAKE_MINIMUM_REQUIRED_VERSION VERSION_LESS 2.8.13)
+ # Keep compatibility with previous releases
+ set(_skipEmpty 1)
+ else()
+ set(_skipEmpty 0)
+ endif()
+
+ if(_skipEmpty)
+ set(_loopARGN ${ARGN})
+ else()
+ set(_loopARGN IN LISTS ARGN)
+ endif()
+
# now iterate over all arguments and fill the result variables
- foreach(currentArg IN LISTS ARGN)
+ foreach(currentArg ${_loopARGN})
list(FIND _optionNames "${currentArg}" optionIndex) # ... then this marks the end of the arguments belonging to this keyword
list(FIND _singleArgNames "${currentArg}" singleArgIndex) # ... then this marks the end of the arguments belonging to this keyword
list(FIND _multiArgNames "${currentArg}" multiArgIndex) # ... then this marks the end of the arguments belonging to this keyword
@@ -126,13 +159,25 @@ function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgName
if(${optionIndex} EQUAL -1 AND ${singleArgIndex} EQUAL -1 AND ${multiArgIndex} EQUAL -1)
if(insideValues)
if("${insideValues}" STREQUAL "SINGLE")
- set(${prefix}_${currentArgName} "${currentArg}")
+ if(_skipEmpty)
+ set(${prefix}_${currentArgName} ${currentArg})
+ else()
+ set(${prefix}_${currentArgName} "${currentArg}")
+ endif()
set(insideValues FALSE)
elseif("${insideValues}" STREQUAL "MULTI")
- list(APPEND ${prefix}_${currentArgName} "${currentArg}")
+ if(_skipEmpty)
+ list(APPEND ${prefix}_${currentArgName} ${currentArg})
+ else()
+ list(APPEND ${prefix}_${currentArgName} "${currentArg}")
+ endif()
endif()
else()
- list(APPEND ${prefix}_UNPARSED_ARGUMENTS "${currentArg}")
+ if(_skipEmpty)
+ list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg})
+ else()
+ list(APPEND ${prefix}_UNPARSED_ARGUMENTS "${currentArg}")
+ endif()
endif()
else()
if(NOT ${optionIndex} EQUAL -1)
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c9d0426ba560d1b70656a3f444ddb7053b7f82e4
commit c9d0426ba560d1b70656a3f444ddb7053b7f82e4
Author: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
AuthorDate: Tue Nov 5 15:31:49 2013 +0100
Commit: Daniele E. Domenichelli <daniele.domenichelli at iit.it>
CommitDate: Thu Nov 28 00:02:22 2013 +0100
CMakeParseArguments: Do not skip empty arguments
Current implementation of cmake_parse_arguments skips empty arguments.
For example:
cmake_parse_arguments("OPTION" "SINGLE" "MULTI" ${ARGN})
with ARGN that is set using something like:
<args> SINGLE "" <more args> # (<args>;SINGLE;;<more args>)
<args> SINGLE "" # (<args>;SINGLE;)
it will fail in 4 different ways:
1) because the "foreach" skips empty arguments.
2) because list(APPEND <list> ${currentArg}) will fail to append an
empty element to the list if ${currentArg} is an empty string.
3) because set(${prefix}_${arg_name} ${${prefix}_${arg_name}} PARENT_SCOPE)
will not set an empty variable to the parent scope if
${${prefix}_${arg_name}} is an empty string.
4) because empty arguments are not passed to cmake_parse_arguments
if not quoted, i.e. if ARGN="a;;b"
* ${ARGN} will pass the arguments "a", "b"
* "${ARGN}" will pass the arguments "a", "", "b".
This patch fixes the first behaviour using foreach(IN LISTS) version,
the second and the third by enclosing args in quotes where required, and
finally fixes the documentation in order to suggest to use quoted
"${ARGN}" in order not to miss the empty arguments at the end of the
list.
diff --git a/Modules/CMakeParseArguments.cmake b/Modules/CMakeParseArguments.cmake
index 4248176..d96e9a4 100644
--- a/Modules/CMakeParseArguments.cmake
+++ b/Modules/CMakeParseArguments.cmake
@@ -45,7 +45,7 @@
# set(options OPTIONAL FAST)
# set(oneValueArgs DESTINATION RENAME)
# set(multiValueArgs TARGETS CONFIGURATIONS)
-# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} )
+# cmake_parse_arguments(MY_INSTALL "${options}" "${oneValueArgs}" "${multiValueArgs}" "${ARGN}" )
# ...
#
#
@@ -118,7 +118,7 @@ function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgName
set(currentArgName)
# now iterate over all arguments and fill the result variables
- foreach(currentArg ${ARGN})
+ foreach(currentArg IN LISTS ARGN)
list(FIND _optionNames "${currentArg}" optionIndex) # ... then this marks the end of the arguments belonging to this keyword
list(FIND _singleArgNames "${currentArg}" singleArgIndex) # ... then this marks the end of the arguments belonging to this keyword
list(FIND _multiArgNames "${currentArg}" multiArgIndex) # ... then this marks the end of the arguments belonging to this keyword
@@ -126,13 +126,13 @@ function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgName
if(${optionIndex} EQUAL -1 AND ${singleArgIndex} EQUAL -1 AND ${multiArgIndex} EQUAL -1)
if(insideValues)
if("${insideValues}" STREQUAL "SINGLE")
- set(${prefix}_${currentArgName} ${currentArg})
+ set(${prefix}_${currentArgName} "${currentArg}")
set(insideValues FALSE)
elseif("${insideValues}" STREQUAL "MULTI")
- list(APPEND ${prefix}_${currentArgName} ${currentArg})
+ list(APPEND ${prefix}_${currentArgName} "${currentArg}")
endif()
else()
- list(APPEND ${prefix}_UNPARSED_ARGUMENTS ${currentArg})
+ list(APPEND ${prefix}_UNPARSED_ARGUMENTS "${currentArg}")
endif()
else()
if(NOT ${optionIndex} EQUAL -1)
@@ -152,9 +152,10 @@ function(CMAKE_PARSE_ARGUMENTS prefix _optionNames _singleArgNames _multiArgName
endforeach()
# propagate the result variables to the caller:
- foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames})
- set(${prefix}_${arg_name} ${${prefix}_${arg_name}} PARENT_SCOPE)
+ foreach(arg_name ${_singleArgNames} ${_multiArgNames} ${_optionNames} UNPARSED_ARGUMENTS)
+ if(DEFINED ${prefix}_${arg_name})
+ set(${prefix}_${arg_name} "${${prefix}_${arg_name}}" PARENT_SCOPE)
+ endif()
endforeach()
- set(${prefix}_UNPARSED_ARGUMENTS ${${prefix}_UNPARSED_ARGUMENTS} PARENT_SCOPE)
endfunction()
-----------------------------------------------------------------------
Summary of changes:
Modules/CMakeParseArguments.cmake | 179 +++++++++++++++++---
Source/cmDefinePropertyCommand.h | 7 +
Tests/RunCMake/CMakeLists.txt | 1 +
.../CMakeParseArguments/ARGUMENT-KEEP.cmake | 29 +++
.../CMakeParseArguments/ARGUMENT-SKIP.cmake | 27 +++
.../{set => CMakeParseArguments}/CMakeLists.txt | 0
Tests/RunCMake/CMakeParseArguments/Example.cmake | 70 ++++++++
.../CMakeParseArguments/PROPERTY-KEEP.cmake | 29 +++
.../CMakeParseArguments/PROPERTY-SKIP.cmake | 27 +++
.../CMakeParseArguments/RunCMakeTest.cmake | 9 +
.../CMakeParseArguments/VERSION-KEEP.cmake | 27 +++
.../CMakeParseArguments/VERSION-SKIP.cmake | 25 +++
12 files changed, 405 insertions(+), 25 deletions(-)
create mode 100644 Tests/RunCMake/CMakeParseArguments/ARGUMENT-KEEP.cmake
create mode 100644 Tests/RunCMake/CMakeParseArguments/ARGUMENT-SKIP.cmake
copy Tests/RunCMake/{set => CMakeParseArguments}/CMakeLists.txt (100%)
create mode 100644 Tests/RunCMake/CMakeParseArguments/Example.cmake
create mode 100644 Tests/RunCMake/CMakeParseArguments/PROPERTY-KEEP.cmake
create mode 100644 Tests/RunCMake/CMakeParseArguments/PROPERTY-SKIP.cmake
create mode 100644 Tests/RunCMake/CMakeParseArguments/RunCMakeTest.cmake
create mode 100644 Tests/RunCMake/CMakeParseArguments/VERSION-KEEP.cmake
create mode 100644 Tests/RunCMake/CMakeParseArguments/VERSION-SKIP.cmake
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list