Я применяю CMake для генерации решения Visual Studio 2017 для сборки 32-битного приложения и для Windows 10. Для создания системы сборки я позволил CMake вызвать некоторые Java инструменты для генерации некоторого кода для компиляции. (применяя Eclipse Modeling Framework). Чтобы найти Java, я применяю модуль поиска CMake FindJava
в вызове find_package(Java)
.
Я заметил, что FindJava
автоматически выбирает 32-битную версию Java в этом случае хотя 64-битный Java также доступен. Обратите внимание, когда я вызываю CMake для генерации для Visual Studio 2017 x64
, FindJava
возвращается с 64-битным Java. Итак, версия Java, похоже, зависит от разрядности используемого генератора.
Моя проблема в том, что 32-битный Java иногда не может выделить достаточно памяти для выполнения инструментов генерации кода.
Чтобы избежать этого, я бы хотел, чтобы FindJava
всегда находил 64-битный Java, не зависящий от разрядности генератора Visual Studio.
Как этого добиться?
В настоящее время я использую CMake 3.14, но могу обновить, если это поможет.
Редактировать
Я забыл упомянуть, что внедряю систему сборки CMake, которая будет использоваться многими разработчики на своих машинах. Поэтому я предпочел бы не указывать фиксированный путь к 32-разрядной и 64-разрядной Java установкам на компьютерах сборки.