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 156f4c2f80a5aa603d71a24ba78441961bfcfd7d (commit) via 47777942a5b4be182f8e95eb39444a2e55a395a5 (commit) via d427f12b7324c13d0b90cf02d2261cce8cf7be84 (commit) via 609fe39043f37366b50ee5ac0ae283b93af23492 (commit) via ff29c92df63ec9a9311b56537db285920c8faa30 (commit) from a96363f8991630e7b3a71efdbe41cdca57954459 (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=156f4c2f80a5aa603d71a24ba78441961bfcfd7d commit 156f4c2f80a5aa603d71a24ba78441961bfcfd7d Merge: 4777794 609fe39 Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed Jul 24 15:54:38 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Wed Jul 24 11:55:03 2019 -0400 Merge topic 'find_pkg_use_new_global_controls' 609fe39043 FindPackage: Support `NO_[]_PATH` global call options ff29c92df6 Tests: find_file restore PATH env variable after test runs Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3590 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=47777942a5b4be182f8e95eb39444a2e55a395a5 commit 47777942a5b4be182f8e95eb39444a2e55a395a5 Merge: a96363f d427f12 Author: Brad King <brad.k...@kitware.com> AuthorDate: Wed Jul 24 15:53:43 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Wed Jul 24 11:53:54 2019 -0400 Merge topic 'math_exp_not' d427f12b73 math(EXPR): Implement ~(exp_NOT) expression as documented Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !3582 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d427f12b7324c13d0b90cf02d2261cce8cf7be84 commit d427f12b7324c13d0b90cf02d2261cce8cf7be84 Author: Gabor Bencze <b.gabo...@gmail.com> AuthorDate: Fri Jul 19 22:18:11 2019 +0200 Commit: Brad King <brad.k...@kitware.com> CommitDate: Tue Jul 23 07:33:50 2019 -0400 math(EXPR): Implement ~(exp_NOT) expression as documented Fixes: #19252 diff --git a/Source/LexerParser/cmExprParser.cxx b/Source/LexerParser/cmExprParser.cxx index d2c65dc..8416e72 100644 --- a/Source/LexerParser/cmExprParser.cxx +++ b/Source/LexerParser/cmExprParser.cxx @@ -425,18 +425,18 @@ union yyalloc #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 17 +#define YYFINAL 19 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 30 +#define YYLAST 34 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 17 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 10 /* YYNRULES -- Number of rules. */ -#define YYNRULES 23 +#define YYNRULES 24 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 39 +#define YYNSTATES 41 #define YYUNDEFTOK 2 #define YYMAXUTOK 271 @@ -486,7 +486,7 @@ static const yytype_uint8 yyrline[] = { 0, 77, 77, 82, 85, 90, 93, 98, 101, 106, 109, 112, 117, 120, 123, 128, 131, 134, 140, 145, - 148, 151, 156, 159 + 148, 151, 154, 159, 162 }; #endif @@ -513,10 +513,10 @@ static const yytype_uint16 yytoknum[] = }; # endif -#define YYPACT_NINF -8 +#define YYPACT_NINF -11 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-8))) + (!!((Yystate) == (-11))) #define YYTABLE_NINF -1 @@ -527,10 +527,11 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int8 yypact[] = { - 0, 0, 0, 0, -8, 2, -7, -5, 8, 3, - 10, 1, -8, -8, -8, -8, 6, -8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -8, -5, - 8, 3, 10, 10, 1, 1, -8, -8, -8 + 1, 1, 1, 1, 1, -11, 6, -10, -4, 9, + 4, 11, 2, -11, -11, -11, -11, 7, -11, -11, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + -11, -4, 9, 4, 11, 11, 2, 2, -11, -11, + -11 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -538,22 +539,23 @@ static const yytype_int8 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 0, 0, 0, 0, 22, 0, 2, 3, 5, 7, - 9, 12, 15, 19, 20, 21, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 23, 4, - 6, 8, 10, 11, 13, 14, 16, 17, 18 + 0, 0, 0, 0, 0, 23, 0, 2, 3, 5, + 7, 9, 12, 15, 19, 20, 21, 0, 22, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 24, 4, 6, 8, 10, 11, 13, 14, 16, 17, + 18 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -8, -8, 12, 5, 11, 9, -2, 4, -1, -8 + -11, -11, 22, 10, 8, 12, -3, -2, -1, -11 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 5, 6, 7, 8, 9, 10, 11, 12, 13 + -1, 6, 7, 8, 9, 10, 11, 12, 13, 14 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -561,28 +563,29 @@ static const yytype_int8 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint8 yytable[] = { - 14, 15, 17, 1, 2, 18, 25, 26, 27, 19, - 3, 21, 22, 23, 24, 16, 4, 28, 18, 32, - 33, 20, 0, 29, 36, 37, 38, 34, 35, 31, - 30 + 15, 16, 20, 18, 1, 2, 19, 27, 28, 29, + 21, 3, 23, 24, 25, 26, 4, 5, 30, 20, + 34, 35, 22, 36, 37, 17, 38, 39, 40, 32, + 31, 0, 0, 0, 33 }; static const yytype_int8 yycheck[] = { - 1, 2, 0, 3, 4, 12, 5, 6, 7, 14, - 10, 8, 9, 3, 4, 3, 16, 11, 12, 21, - 22, 13, -1, 18, 25, 26, 27, 23, 24, 20, - 19 + 1, 2, 12, 4, 3, 4, 0, 5, 6, 7, + 14, 10, 8, 9, 3, 4, 15, 16, 11, 12, + 23, 24, 13, 25, 26, 3, 27, 28, 29, 21, + 20, -1, -1, -1, 22 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 3, 4, 10, 16, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 25, 25, 19, 0, 12, 14, - 13, 8, 9, 3, 4, 5, 6, 7, 11, 20, - 21, 22, 23, 23, 24, 24, 25, 25, 25 + 0, 3, 4, 10, 15, 16, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 25, 25, 19, 25, 0, + 12, 14, 13, 8, 9, 3, 4, 5, 6, 7, + 11, 20, 21, 22, 23, 23, 24, 24, 25, 25, + 25 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ @@ -590,7 +593,7 @@ static const yytype_uint8 yyr1[] = { 0, 17, 18, 19, 19, 20, 20, 21, 21, 22, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25, - 25, 25, 26, 26 + 25, 25, 25, 26, 26 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -598,7 +601,7 @@ static const yytype_uint8 yyr2[] = { 0, 2, 1, 1, 3, 1, 3, 1, 3, 1, 3, 3, 1, 3, 3, 1, 3, 3, 3, 1, - 2, 2, 1, 3 + 2, 2, 2, 1, 3 }; @@ -1294,7 +1297,7 @@ yyreduce: { cmExpr_yyget_extra(yyscanner)->SetResult((yyvsp[0].Number)); } -#line 1298 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1301 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 3: @@ -1302,7 +1305,7 @@ yyreduce: { (yyval.Number) = (yyvsp[0].Number); } -#line 1306 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1309 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 4: @@ -1310,7 +1313,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) | (yyvsp[0].Number); } -#line 1314 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1317 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 5: @@ -1318,7 +1321,7 @@ yyreduce: { (yyval.Number) = (yyvsp[0].Number); } -#line 1322 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1325 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 6: @@ -1326,7 +1329,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) ^ (yyvsp[0].Number); } -#line 1330 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1333 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 7: @@ -1334,7 +1337,7 @@ yyreduce: { (yyval.Number) = (yyvsp[0].Number); } -#line 1338 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1341 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 8: @@ -1342,7 +1345,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) & (yyvsp[0].Number); } -#line 1346 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1349 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 9: @@ -1350,7 +1353,7 @@ yyreduce: { (yyval.Number) = (yyvsp[0].Number); } -#line 1354 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1357 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 10: @@ -1358,7 +1361,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) << (yyvsp[0].Number); } -#line 1362 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1365 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 11: @@ -1366,7 +1369,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) >> (yyvsp[0].Number); } -#line 1370 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1373 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 12: @@ -1374,7 +1377,7 @@ yyreduce: { (yyval.Number) = (yyvsp[0].Number); } -#line 1378 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1381 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 13: @@ -1382,7 +1385,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) + (yyvsp[0].Number); } -#line 1386 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1389 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 14: @@ -1390,7 +1393,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) - (yyvsp[0].Number); } -#line 1394 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1397 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 15: @@ -1398,7 +1401,7 @@ yyreduce: { (yyval.Number) = (yyvsp[0].Number); } -#line 1402 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1405 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 16: @@ -1406,7 +1409,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) * (yyvsp[0].Number); } -#line 1410 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1413 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 17: @@ -1417,7 +1420,7 @@ yyreduce: } (yyval.Number) = (yyvsp[-2].Number) / (yyvsp[0].Number); } -#line 1421 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1424 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 18: @@ -1425,7 +1428,7 @@ yyreduce: { (yyval.Number) = (yyvsp[-2].Number) % (yyvsp[0].Number); } -#line 1429 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1432 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 19: @@ -1433,7 +1436,7 @@ yyreduce: { (yyval.Number) = (yyvsp[0].Number); } -#line 1437 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1440 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 20: @@ -1441,7 +1444,7 @@ yyreduce: { (yyval.Number) = + (yyvsp[0].Number); } -#line 1445 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1448 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 21: @@ -1449,27 +1452,35 @@ yyreduce: { (yyval.Number) = - (yyvsp[0].Number); } -#line 1453 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1456 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 22: -#line 156 "cmExprParser.y" /* yacc.c:1652 */ +#line 154 "cmExprParser.y" /* yacc.c:1652 */ { - (yyval.Number) = (yyvsp[0].Number); + (yyval.Number) = ~ (yyvsp[0].Number); } -#line 1461 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1464 "cmExprParser.cxx" /* yacc.c:1652 */ break; case 23: #line 159 "cmExprParser.y" /* yacc.c:1652 */ { + (yyval.Number) = (yyvsp[0].Number); + } +#line 1472 "cmExprParser.cxx" /* yacc.c:1652 */ + break; + + case 24: +#line 162 "cmExprParser.y" /* yacc.c:1652 */ + { (yyval.Number) = (yyvsp[-1].Number); } -#line 1469 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1480 "cmExprParser.cxx" /* yacc.c:1652 */ break; -#line 1473 "cmExprParser.cxx" /* yacc.c:1652 */ +#line 1484 "cmExprParser.cxx" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1702,7 +1713,7 @@ yyreturn: #endif return yyresult; } -#line 164 "cmExprParser.y" /* yacc.c:1918 */ +#line 167 "cmExprParser.y" /* yacc.c:1918 */ /* End of grammar */ diff --git a/Source/LexerParser/cmExprParser.y b/Source/LexerParser/cmExprParser.y index 2137473..7ae2118 100644 --- a/Source/LexerParser/cmExprParser.y +++ b/Source/LexerParser/cmExprParser.y @@ -151,6 +151,9 @@ unary: | exp_MINUS unary { $<Number>$ = - $<Number>2; } +| exp_NOT unary { + $<Number>$ = ~ $<Number>2; + } factor: exp_NUMBER { diff --git a/Tests/MathTest/CMakeLists.txt b/Tests/MathTest/CMakeLists.txt index 5403d29..396f633 100644 --- a/Tests/MathTest/CMakeLists.txt +++ b/Tests/MathTest/CMakeLists.txt @@ -16,6 +16,8 @@ set(expressions "1000 -12*5" "1000 +12*-5" "1000 -12*-5" + "~~1" + "1000 & ~0" ) set(FILE_EXPRESSIONS "extern void test_expression(int x, int y, const char * text);\n") diff --git a/Tests/RunCMake/math/MATH-InvalidExpression-stderr.txt b/Tests/RunCMake/math/MATH-InvalidExpression-stderr.txt index 9e73ed5..22226f2 100644 --- a/Tests/RunCMake/math/MATH-InvalidExpression-stderr.txt +++ b/Tests/RunCMake/math/MATH-InvalidExpression-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error at MATH-InvalidExpression.cmake:1 \(math\): - math cannot parse the expression: "INVALID": syntax error, unexpected \$end, - expecting exp_PLUS or exp_MINUS or exp_OPENPARENT or exp_NUMBER \(7\). + math cannot parse the expression: "INVALID": syntax error, unexpected \$end + \(7\). Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\)$ https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=609fe39043f37366b50ee5ac0ae283b93af23492 commit 609fe39043f37366b50ee5ac0ae283b93af23492 Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Mon Jul 22 15:44:37 2019 -0400 Commit: Robert Maynard <robert.mayn...@kitware.com> CommitDate: Mon Jul 22 17:17:02 2019 -0400 FindPackage: Support `NO_[]_PATH` global call options diff --git a/Help/command/find_package.rst b/Help/command/find_package.rst index 6e1d232..2186bd8 100644 --- a/Help/command/find_package.rst +++ b/Help/command/find_package.rst @@ -293,13 +293,15 @@ enabled. The package root variables are maintained as a stack so if called from within a find module, root paths from the parent's find module will also be searched after paths for the current package. - This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed. + This can be skipped if ``NO_PACKAGE_ROOT_PATH`` is passed or by setting + the :variable:`CMAKE_FIND_USE_PACKAGE_ROOT_PATH` to ``FALSE``. See policy :policy:`CMP0074`. 2. Search paths specified in cmake-specific cache variables. These are intended to be used on the command line with a ``-DVAR=value``. The values are interpreted as :ref:`semicolon-separated lists <CMake Language Lists>`. - This can be skipped if ``NO_CMAKE_PATH`` is passed:: + This can be skipped if ``NO_CMAKE_PATH`` is passed or by setting the + :variable:`CMAKE_FIND_USE_CMAKE_PATH` to ``FALSE``:: CMAKE_PREFIX_PATH CMAKE_FRAMEWORK_PATH @@ -309,7 +311,8 @@ enabled. These are intended to be set in the user's shell configuration, and therefore use the host's native path separator (``;`` on Windows and ``:`` on UNIX). - This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed:: + This can be skipped if ``NO_CMAKE_ENVIRONMENT_PATH`` is passed or by setting + the :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` to ``FALSE``:: <PackageName>_DIR CMAKE_PREFIX_PATH @@ -322,7 +325,8 @@ enabled. be specified with the ``PATHS`` option. 5. Search the standard system environment variables. This can be - skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is passed. Path entries + skipped if ``NO_SYSTEM_ENVIRONMENT_PATH`` is passed or by setting the + :variable:`CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH` to ``FALSE``. Path entries ending in ``/bin`` or ``/sbin`` are automatically converted to their parent directories:: @@ -339,7 +343,8 @@ enabled. 7. Search cmake variables defined in the Platform files for the current system. This can be skipped if ``NO_CMAKE_SYSTEM_PATH`` is - passed:: + passed or by setting the :variable:`CMAKE_FIND_USE_CMAKE_SYSTEM_PATH` + to ``FALSE``:: CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_FRAMEWORK_PATH diff --git a/Help/release/dev/global-controls-over-find-locations.rst b/Help/release/dev/global-controls-over-find-locations.rst index 79bc869..1c0b226 100644 --- a/Help/release/dev/global-controls-over-find-locations.rst +++ b/Help/release/dev/global-controls-over-find-locations.rst @@ -2,8 +2,8 @@ global-controls-over-find-locations ----------------------------------- * The :command:`find_file`, :command:`find_library`, :command:`find_path`, - and :command:`find_program` commands have learned to check the following - variables to control searching + :command:`find_package`, and :command:`find_program` commands have learned to + check the following variables to control searching * :variable:`CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH` - Controls the searching the cmake-specific environment variables. diff --git a/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst b/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst index 33514a0..2db5081 100644 --- a/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst +++ b/Help/variable/CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst @@ -3,7 +3,7 @@ CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH Controls the searching the cmake-specific environment variables by the :command:`find_program`, :command:`find_library`, :command:`find_file`, -and :command:`find_path` commands. +:command:`find_path`, and command:`find_package` commands. This is useful in cross-compiling environments. By default this variable is not set, which is equivalent to it having diff --git a/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst b/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst index cefc645..4ca7ad1 100644 --- a/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst +++ b/Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst @@ -3,7 +3,7 @@ CMAKE_FIND_USE_CMAKE_PATH Controls the searching the cmake-specific cache variables by the :command:`find_program`, :command:`find_library`, :command:`find_file`, -and :command:`find_path` commands. +:command:`find_path`, and command:`find_package` commands. This is useful in cross-compiling environments. By default this variable is not set, which is equivalent to it having diff --git a/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst b/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst index 2aa544d..d3259ae 100644 --- a/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst +++ b/Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst @@ -3,7 +3,7 @@ CMAKE_FIND_USE_CMAKE_SYSTEM_PATH Controls the searching cmake platform specific variables by the :command:`find_program`, :command:`find_library`, :command:`find_file`, -and :command:`find_path` commands. +:command:`find_path`, and command:`find_package` commands. This is useful in cross-compiling environments. By default this variable is not set, which is equivalent to it having diff --git a/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst b/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst index 899e62e..e17fdcc 100644 --- a/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst +++ b/Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst @@ -3,7 +3,7 @@ CMAKE_FIND_USE_PACKAGE_ROOT_PATH Controls the searching of :variable:`<PackageName>_ROOT` variables by the :command:`find_program`, :command:`find_library`, :command:`find_file`, -and :command:`find_path` commands. +:command:`find_path`, and command:`find_package` commands. This is useful in cross-compiling environments. By default this variable is not set, which is equivalent to it having diff --git a/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst b/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst index 604c710..71432f6 100644 --- a/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst +++ b/Help/variable/CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst @@ -3,7 +3,7 @@ CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH Controls the searching the standard system environment variables by the :command:`find_program`, :command:`find_library`, :command:`find_file`, -and :command:`find_path` commands. +:command:`find_path`, and command:`find_package` commands. This is useful in cross-compiling environments. By default this variable is not set, which is equivalent to it having diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index c6d599e..e4551dd 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -225,6 +225,9 @@ bool cmFindPackageCommand::InitialPass(std::vector<std::string> const& args, this->SortDirection = strcmp(sd, "ASC") == 0 ? Asc : Dec; } + // Find what search path locations have been enabled/disable + this->SelectDefaultSearchModes(); + // Find the current root path mode. this->SelectDefaultRootPathMode(); diff --git a/Tests/RunCMake/find_package/FromPATHEnv-stdout.txt b/Tests/RunCMake/find_package/FromPATHEnv-stdout.txt new file mode 100644 index 0000000..2ead349 --- /dev/null +++ b/Tests/RunCMake/find_package/FromPATHEnv-stdout.txt @@ -0,0 +1,9 @@ +-- Resolved_FOUND='0' +-- Resolved_FOUND='1' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' diff --git a/Tests/RunCMake/find_package/FromPATHEnv.cmake b/Tests/RunCMake/find_package/FromPATHEnv.cmake new file mode 100644 index 0000000..4822b13 --- /dev/null +++ b/Tests/RunCMake/find_package/FromPATHEnv.cmake @@ -0,0 +1,27 @@ +set(ENV_PATH "$ENV{PATH}") +foreach(path "/does_not_exist" "/PackageRoot" "") + unset(Resolved_FOUND CACHE) + set(Resolved_DIR "") + set(ENV{PATH} "${CMAKE_CURRENT_SOURCE_DIR}${path}") + find_package(Resolved QUIET) + message(STATUS "Resolved_FOUND='${Resolved_FOUND}'") +endforeach() + +set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH OFF) +foreach(path "/does_not_exist" "/PackageRoot" "") + unset(Resolved_FOUND CACHE) + set(Resolved_DIR "") + set(ENV{PATH} "${CMAKE_CURRENT_SOURCE_DIR}${path}") + find_package(Resolved QUIET) + message(STATUS "Resolved_FOUND='${Resolved_FOUND}'") +endforeach() + +set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH ON) +foreach(path "/does_not_exist" "/PackageRoot" "") + unset(Resolved_FOUND CACHE) + set(Resolved_DIR "") + set(ENV{PATH} "${CMAKE_CURRENT_SOURCE_DIR}${path}") + find_package(Resolved NO_SYSTEM_ENVIRONMENT_PATH QUIET) + message(STATUS "Resolved_FOUND='${Resolved_FOUND}'") +endforeach() +set(ENV{PATH} "${ENV_PATH}") diff --git a/Tests/RunCMake/find_package/FromPrefixPath-stdout.txt b/Tests/RunCMake/find_package/FromPrefixPath-stdout.txt new file mode 100644 index 0000000..2ead349 --- /dev/null +++ b/Tests/RunCMake/find_package/FromPrefixPath-stdout.txt @@ -0,0 +1,9 @@ +-- Resolved_FOUND='0' +-- Resolved_FOUND='1' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' +-- Resolved_FOUND='0' diff --git a/Tests/RunCMake/find_package/FromPrefixPath.cmake b/Tests/RunCMake/find_package/FromPrefixPath.cmake new file mode 100644 index 0000000..be853c1 --- /dev/null +++ b/Tests/RunCMake/find_package/FromPrefixPath.cmake @@ -0,0 +1,29 @@ +set(ENV_PATH "$ENV{PATH}") +set(ENV{PATH} "") +foreach(path "/does_not_exist" "/PackageRoot" "") + unset(Resolved_FOUND CACHE) + set(Resolved_DIR "") + set(CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}${path}") + find_package(Resolved QUIET) + message(STATUS "Resolved_FOUND='${Resolved_FOUND}'") +endforeach() + +set(CMAKE_FIND_USE_CMAKE_PATH OFF) +set(CMAKE_PREFIX_PATH ) +foreach(path "/does_not_exist" "/PackageRoot" "") + unset(Resolved_FOUND CACHE) + set(Resolved_DIR "") + set(CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}${path}") + find_package(Resolved QUIET) + message(STATUS "Resolved_FOUND='${Resolved_FOUND}'") +endforeach() + +set(CMAKE_FIND_USE_CMAKE_PATH ON) +foreach(path "/does_not_exist" "/PackageRoot" "") + unset(Resolved_FOUND CACHE) + set(Resolved_DIR "") + set(CMAKE_PREFIX_PATH "${CMAKE_CURRENT_SOURCE_DIR}${path}") + find_package(Resolved NO_CMAKE_PATH QUIET) + message(STATUS "Resolved_FOUND='${Resolved_FOUND}'") +endforeach() +set(ENV{PATH} "${ENV_PATH}") diff --git a/Tests/RunCMake/find_package/RunCMakeTest.cmake b/Tests/RunCMake/find_package/RunCMakeTest.cmake index 066523e..208f83c 100644 --- a/Tests/RunCMake/find_package/RunCMakeTest.cmake +++ b/Tests/RunCMake/find_package/RunCMakeTest.cmake @@ -3,6 +3,8 @@ include(RunCMake) run_cmake(CMP0074-WARN) run_cmake(CMP0074-OLD) run_cmake(ComponentRequiredAndOptional) +run_cmake(FromPATHEnv) +run_cmake(FromPrefixPath) run_cmake(MissingNormal) run_cmake(MissingNormalRequired) run_cmake(MissingNormalVersion) https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ff29c92df63ec9a9311b56537db285920c8faa30 commit ff29c92df63ec9a9311b56537db285920c8faa30 Author: Robert Maynard <robert.mayn...@kitware.com> AuthorDate: Mon Jul 22 17:16:26 2019 -0400 Commit: Robert Maynard <robert.mayn...@kitware.com> CommitDate: Mon Jul 22 17:17:02 2019 -0400 Tests: find_file restore PATH env variable after test runs diff --git a/Tests/RunCMake/find_file/FromPrefixPath.cmake b/Tests/RunCMake/find_file/FromPrefixPath.cmake index 1bf8409..63c6a07 100644 --- a/Tests/RunCMake/find_file/FromPrefixPath.cmake +++ b/Tests/RunCMake/find_file/FromPrefixPath.cmake @@ -1,3 +1,4 @@ +set(ENV_PATH "$ENV{PATH}") set(ENV{PATH} "") foreach(path "/does_not_exist" "/include" "") unset(PrefixInPATH_File CACHE) @@ -15,3 +16,4 @@ foreach(path "/does_not_exist" "/include" "") message(STATUS "PrefixInPATH_File='${PrefixInPATH_File}'") endforeach() set(CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH ON) +set(ENV{PATH} "${ENV_PATH}") ----------------------------------------------------------------------- Summary of changes: Help/command/find_package.rst | 15 ++- .../dev/global-controls-over-find-locations.rst | 4 +- .../CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH.rst | 2 +- Help/variable/CMAKE_FIND_USE_CMAKE_PATH.rst | 2 +- Help/variable/CMAKE_FIND_USE_CMAKE_SYSTEM_PATH.rst | 2 +- Help/variable/CMAKE_FIND_USE_PACKAGE_ROOT_PATH.rst | 2 +- .../CMAKE_FIND_USE_SYSTEM_ENVIRONMENT_PATH.rst | 2 +- Source/LexerParser/cmExprParser.cxx | 125 +++++++++++---------- Source/LexerParser/cmExprParser.y | 3 + Source/cmFindPackageCommand.cxx | 3 + Tests/MathTest/CMakeLists.txt | 2 + Tests/RunCMake/find_file/FromPrefixPath.cmake | 2 + Tests/RunCMake/find_package/FromPATHEnv-stdout.txt | 9 ++ Tests/RunCMake/find_package/FromPATHEnv.cmake | 27 +++++ .../find_package/FromPrefixPath-stdout.txt | 9 ++ Tests/RunCMake/find_package/FromPrefixPath.cmake | 29 +++++ Tests/RunCMake/find_package/RunCMakeTest.cmake | 2 + .../math/MATH-InvalidExpression-stderr.txt | 4 +- 18 files changed, 173 insertions(+), 71 deletions(-) create mode 100644 Tests/RunCMake/find_package/FromPATHEnv-stdout.txt create mode 100644 Tests/RunCMake/find_package/FromPATHEnv.cmake create mode 100644 Tests/RunCMake/find_package/FromPrefixPath-stdout.txt create mode 100644 Tests/RunCMake/find_package/FromPrefixPath.cmake hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits