File tree Expand file tree Collapse file tree 4 files changed +38
-2
lines changed Expand file tree Collapse file tree 4 files changed +38
-2
lines changed Original file line number Diff line number Diff line change @@ -823,8 +823,9 @@ bool cmFindPackageCommand::HandlePackageMode(
823
823
}
824
824
}
825
825
826
- if (this ->Makefile ->IsOn (" CMAKE_FIND_PACKAGE_PREFER_CONFIG" ) && !found &&
827
- handlePackageModeType == HandlePackageModeType::Config) {
826
+ if (this ->UseFindModules && !found &&
827
+ handlePackageModeType == HandlePackageModeType::Config &&
828
+ this ->Makefile ->IsOn (" CMAKE_FIND_PACKAGE_PREFER_CONFIG" )) {
828
829
// Config mode failed. Allow Module case.
829
830
result = false ;
830
831
}
Original file line number Diff line number Diff line change @@ -579,6 +579,26 @@ endif()
579
579
580
580
set (CMAKE_FIND_PACKAGE_PREFER_CONFIG OFF )
581
581
set (CMAKE_PREFIX_PATH )
582
+ set (CMAKE_MODULE_PATH )
583
+
584
+ ############################################################################
585
+ ##Test FIND_PACKAGE CMAKE_FIND_PACKAGE_PREFER_CONFIG - Do not recurse
586
+
587
+ # No CMAKE_PREFIX_PATH
588
+ set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} /PreferConfigRecurse )
589
+
590
+ # Now prefer config mode
591
+ set (CMAKE_FIND_PACKAGE_PREFER_CONFIG ON )
592
+ unset (ACME_FOUND )
593
+ unset (ACME_CONFIG )
594
+
595
+ find_package (ACME )
596
+ if (ACME_FOUND AND ACME_CONFIG )
597
+ message (SEND_ERROR "Incorrectly found ACME in CONFIG mode, from the MODULE package" )
598
+ endif ()
599
+
600
+ set (CMAKE_FIND_PACKAGE_PREFER_CONFIG OFF )
601
+ set (CMAKE_MODULE_PATH )
582
602
583
603
############################################################################
584
604
##Test find_package CMAKE_FIND_PACKAGE_PREFER_CONFIG with module fallback
@@ -592,3 +612,16 @@ find_package(ACME REQUIRED)
592
612
if (NOT ACME_FOUND )
593
613
message (SEND_ERROR "Did not find ACME package" )
594
614
endif ()
615
+
616
+ ############################################################################
617
+ ##Test find_package CMAKE_FIND_PACKAGE_PREFER_CONFIG with NO_MODULE
618
+
619
+ set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} /PreferConfigOnlyModule )
620
+
621
+ set (CMAKE_FIND_PACKAGE_PREFER_CONFIG ON )
622
+
623
+ find_package (ACME NO_MODULE )
624
+
625
+ if (ACME_FOUND )
626
+ message (SEND_ERROR "Should not find ACME package" )
627
+ endif ()
Original file line number Diff line number Diff line change
1
+ set (ACME_FOUND TRUE )
Original file line number Diff line number Diff line change
1
+ find_package (ACME NO_MODULE )
You can’t perform that action at this time.
0 commit comments