| 554 | |
| 555 | #if defined(_WIN32) && !defined(__CYGWIN__) |
| 556 | std::vector<cmWindowsRegistry::View> cmWindowsRegistry::ComputeViews(View view) |
| 557 | { |
| 558 | switch (view) { |
| 559 | case View::Both: |
| 560 | switch (this->TargetSize) { |
| 561 | case 64: |
| 562 | return std::vector<View>{ View::Reg64, View::Reg32 }; |
| 563 | break; |
| 564 | case 32: |
| 565 | return Is64BitWindows() |
| 566 | ? std::vector<View>{ View::Reg32, View::Reg64 } |
| 567 | : std::vector<View>{ View::Reg32 }; |
| 568 | break; |
| 569 | default: |
| 570 | // No language specified, fallback to host architecture |
| 571 | return Is64BitWindows() |
| 572 | ? std::vector<View>{ View::Reg64, View::Reg32 } |
| 573 | : std::vector<View>{ View::Reg32 }; |
| 574 | break; |
| 575 | } |
| 576 | break; |
| 577 | case View::Target: |
| 578 | switch (this->TargetSize) { |
| 579 | case 64: |
| 580 | return std::vector<View>{ View::Reg64 }; |
| 581 | break; |
| 582 | case 32: |
| 583 | return std::vector<View>{ View::Reg32 }; |
| 584 | break; |
| 585 | default: |
| 586 | break; |
| 587 | } |
| 588 | CM_FALLTHROUGH; |
| 589 | case View::Host: |
| 590 | return std::vector<View>{ Is64BitWindows() ? View::Reg64 : View::Reg32 }; |
| 591 | break; |
| 592 | case View::Reg64_32: |
| 593 | return Is64BitWindows() ? std::vector<View>{ View::Reg64, View::Reg32 } |
| 594 | : std::vector<View>{ View::Reg32 }; |
| 595 | break; |
| 596 | case View::Reg32_64: |
| 597 | return Is64BitWindows() ? std::vector<View>{ View::Reg32, View::Reg64 } |
| 598 | : std::vector<View>{ View::Reg32 }; |
| 599 | break; |
| 600 | default: |
| 601 | return std::vector<View>{ view }; |
| 602 | break; |
| 603 | } |
| 604 | } |
| 605 | #endif |
| 606 | |
| 607 | cm::optional<std::string> cmWindowsRegistry::ReadValue( |
no test coverage detected