1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/tboox-xmake

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CHANGELOG.md 240 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 11:32 b69bdc9

Чанлог

master (не выпущен)

Новые функции

  • #5813: добавлены before_config и after_config для правила.
  • #5848: поддержка пользовательских инструментов сборки MSVC, таких как PortableBuildTools и msvc-wine.
  • #5880: использование пакета msvc для сборки проекта.
  • #5884: добавление установочных советов для пакета.

Изменения

  • #5817: улучшение стандартного изображения для пакетов.
  • #5869: добавлена поддержка модулей стандартной библиотеки libstdc++ для gcc.

v2.9.6

Новые функции

  • #5527: добавлена возможность использования set_policy("compatibility.version", "3.0") для предварительного просмотра функций версии 3.0.
  • #5649: добавлен package.check_fcsnippets.

Изменения

  • #5631: добавлена опция as_needed для add_linkgroups.
  • #5702: улучшен модуль hash.
  • #5688: улучшен модуль хэшсета.
  • #5711: добавлена поддержка анализа зависимостей include для sdcc.
  • #5727: улучшены конфигурации для add_requires.
  • #5762: улучшена скорость bin2c.

Исправленные ошибки

  • #5645: исправлена ошибка xmake watch для Linux.
  • #5686: исправлена ошибка сканирования модулей.

v2.9.5

Новые функции

  • #5462: добавлен xmake l cli.bisect.
  • #5488: добавлена поддержка использования cosmocc для создания бинарного файла xmake.
  • #5491: предоставлен единый бинарный файл xmake со встроенными файлами Lua.
  • #5580: добавлен @builtin/xrepo для добавления окружений для xrepo env shell.

Изменения

  • #5507: используется treeless для улучшения git.clone.
  • #5536: добавлен jar-генератор в режиме swig.
  • #5573: улучшена производительность генератора vsxmake.
  • #5601: улучшено правило utils.symbols.export_all для фильтрации пути к исходному файлу.

Исправленные ошибки

  • #4750: исправлена ошибка компиляции команд генератора для xmake tests.
  • #5465: исправлена проблема с блокировкой пакета требует.
  • #4760: исправлена проблема клиента distcc.

v2.9.4

Новые функции

  • #5278: добавлена политика build.intermediate_directory, позволяющая отключить и настроить промежуточный каталог.
  • #5313: добавлена поддержка Windows ARM/ARM64EC.
  • #5296: добавлена поддержка Intel LLVM Fortran Compiler.
  • #5384: добавлена add_bindirs для пакета.

Изменения

  • #5280: добавлено расширение файла для модулей C++20.
  • #5251: обновлены 7z/curl для установщика Windows.
  • #5286: улучшено парсинг шестнадцатеричной строки в json.
  • #5302: улучшена поддержка Vala.
  • #5335: улучшены xmake install и xpack, добавлена функция set_prefixdir для цели.
  • #5387: улучшен xmake test.
  • #5376: улучшено управление объектными модулями и пакетами только для модулей.

Исправленные ошибки

  • #5288: исправлен xmake test для Unity build.

  • #5270: исправлено. pch/include for gcc/clang

  • #5276: исправить find vc6.

  • #5259: исправить ошибку функции завершения командной строки.

v2.9.3

Новые функции

  • #4637: добавить генератор микса для xpack.
  • #5107: добавить деб-генератор для xpack.
  • #5148: добавить on_source в пакет.

Изменения

  • #5156: улучшить установку пакетов cargo для rust.

Исправленные ошибки

  • #5176: исправить VS toolset v144.

v2.9.2

Новые функции

  • #5005: показать все API.
  • #5003: добавить build.fence policy.
  • #5060: поддерживать сборку Verilator target в статическую библиотеку.
  • #5074: добавить команду xrepo download для загрузки исходного кода пакета.
  • #5086: добавить поддержку проверки для пакета.
  • #5103: добавить сборку файлов qt ts.
  • #5104: вызвать where в find_program.

Изменения

  • #5077: использовать 64-битный хост-компилятор для msvc при сборке 32-битной цели.
  • #5109: поддержка runpath/rpath для add_rpathdirs.
  • #5132: улучшить поддержку ifort/icc/icx на windows.

Исправленные ошибки

  • #5059: исправить загрузку огромных целей.
  • #5029: исправить сбой на termux.

v2.9.1

Новые функции

  • #4874: добавить поддержку Harmony SDK.
  • #4889: добавить модуль сигнала для регистрации обработчика сигнала в lua.
  • #4925: добавить поддержку собственных модулей.
  • #4938: поддержка cppfront/h2.

Изменения

  • Улучшить пакеты для поддержки clang-cl.
  • #4893: улучшить rc включает deps.
  • #4928: улучшить скорость сборки и компоновки.
  • #4931: обновить pdcurses.
  • #4973: улучшить выбор скрипта.

Исправленные ошибки

  • #4882: исправить установку зависимостей с помощью --group.
  • #4877: исправить ошибку компиляции для xpack с объединением Unity.
  • #4887: исправить объектные зависимости.

v2.8.9

Новые функции

  • #4843: определение порядка байтов/порядка следования байтов на машине сборки.

Изменения

  • #4798: улучшить обнаружение wasi sdk.
  • #4772: улучшить tools.cmake для поддержки vs2022 preview (v144).
  • #4813: добавить кодировку gb2312.
  • #4864: улучшить извлечение символов для gdb.
  • #4831: разрешить target:fileconfig() для заголовочных файлов.
  • #4846: улучшить отображение прогресса.

Исправленные ошибки

  • Исправить сопоставление с образцом select_script.
  • #4763: исправить {force = true}.
  • #4807: исправить nimble::find_package.
  • #4857: исправить синтаксический анализ основных параметров.

v2.8.8

Изменения

  • Добавить package:check_sizeof().

Исправленные ошибки

  • #4774: исправить android symbol strip. Текст запроса:

#4769: Fix cross toolchain and format.

  • #4776: Fix soname for linux.
  • #4638: Fix vsxmake with --menu config.

v2.8.7

Новые функции

  • #4544: Поддержка ожидания тайм-аута процесса для xmake test.
  • #4606: Добавить add_versionfiles api в пакет.
  • #4709: Поддержка инструментальной цепочки cosmocc.
  • #4715: Добавить api is_cross() в область описания.
  • #4747: Добавить политику build.always_update_configfiles.

Изменения

  • #4575: Проверка недопустимого имени области.
  • Добавление поддержки loong64.
  • Улучшение поддержки dlang/dmd для фреймворков.
  • #4571: Улучшение вывода xmake test.
  • #4609: Улучшенное определение сред сборки vs.
  • #4614: Поддержка android ndk 26b.
  • #4473: Включение вывода предупреждений по умолчанию.
  • #4477: Улучшенная поддержка времени выполнения libc++/libstdc++.
  • #4657: Улучшенный выбор шаблона скрипта.
  • #4673: Рефакторинг поддержки модулей.
  • #4746: Добавлена поддержка собственных модулей для генератора cmake.

Исправленные ошибки

  • #4596: Исправление удалённого кэша сборки.
  • #4689: Исправление наследования зависимостей.

Перевод текста на русский язык:

[#4769] (https://github.com/xmake-io/xmake/issues/4769): исправить кросс-инструментальную цепочку и формат.

Версия 2.8.7

Новые возможности

Изменения

Устранённые ошибки

  • [#4596] (https://github.com/xmake-io/xmake/issues/4596): исправление удалённого кеша сборки.

  • [#4689] (https://github.com/xmake-io/xmake/issues/4689): исправление наследования зависимостей. Без зависимостей

  • Добавить глобальный каталог хранилища ccache.

  • Поддержка Qt6 для Wasm (#4137).

  • Добавление аргумента recheck в on_config (#4173).

  • Улучшение удалённой сборки для поддержки отладки исходного кода xmake (#4200).

  • Добавление дополнительных и педантичных предупреждений (#4209).

Исправленные ошибки

  • Исправление extrafiles (#4110).
  • Исправление генератора compile_commands для clangd (#4115).
  • Исправление генератора compile_commands для модулей C++ (#4199).
  • Исправлен сбой os.mv на Windows.
  • Исправлено сообщение об ошибке при сборке рабочей области Rust (#4214).

v2.8.2

Новые функции

  • Поддержка soname и версии (#4002).
  • Поддержка avx512 и sse4.2 для add_vectorexts (#1613).
  • Возможность установки исходных/целевых кодировок с помощью set_encodings (#2471).
  • Поддержка ассемблера stm8 на цепочке инструментов sdcc (#4071).
  • Принудительное включение файлов для C/C++ (#4101).
  • Дополнительные файлы для генераторов vs/vsxmake (#2384).

Изменения

  • Улучшена поддержка msys2/crt64 (#3960).
  • Убраны некоторые устаревшие API (#4032).
  • Обновлены файлы vcproj в tools.msbuild.
  • Добавлена поддержка пакетов «add_requires("xmake::xxx")».
  • Улучшено использование Rust для кросс-компиляции (#4049).
  • Улучшена поддержка модулей clang.

Исправленные ошибки

  • Исправлена ошибка, из-за которой не завершались все дочерние процессы на macOS/Linux.

v2.8.1

Новые возможности

  • Длинный путь для установщика Windows (#3821).
  • Поддержка диспетчера пакетов zypper (#3828).
  • Инструменты.msbuild теперь поддерживают обновление vsproj (#3871).
  • Поддержка grpc для protobuf (#3148).
  • Путь к библиотеке для add_links (#3889).
  • Настройка objc precompiled header с помощью set_pmxxheader (#3912).
  • Добавлена возможность указывать путь к библиотечным файлам для add_links.

Изменения

  • Улучшен os.getenvs для Windows (#3752).
  • Генератор ninja для wasm теперь поддерживается в tools.cmake (#3371).
  • Поиск пакетов с использованием pkg-config стал лучше (#3777).
  • Передача цепочек инструментов для Windows в tools.xmake (#3815).
  • Генерация compile_commands.json стала лучше (#3857).
  • Поиск пакетов по описанию стал более точным (#3892).
  • Сборка программы Swift, поддержка нескольких модулей (#3916).
  • Обновление среды выполнения Lua до 5.4.6.

Устранённые ошибки

  • Ошибка find_tool из xmake/packages исправлена (#3755).
  • Ошибки пакетов из conan 2.x исправлены (#3787).
  • Проблема vs_runtime для conan 2.x решена (#3839).

v2.7.9

Новые функции

  • Конфигурация wasm.preloadfiles для wasm (#3613).
  • Поддержка conan >=2.0.5 (#3703).

Изменения

  • Генератор cmake теперь поддерживает add_cxflags с заданным инструментом (#3669).
  • Улучшения в xrepo clean (#3679). Изменения
  • #3216: Добавить инструменты Intel One API для обнаружения.
  • #3020: Добавить --lsp=clangd для улучшения генерации compile_commands.json.
  • #3215: Добавить includeDirs и defines в c51.
  • #3251: Улучшить сборку Zig и C программы.

Исправленные ошибки

  • #3203: Исправить compile_commands.
  • #3222: Исправить предкомпилированные заголовки в ObjC.
  • #3240: Исправить запуск цели с одним аргументом.
  • #3238: Исправить модуль сопоставления clang.

v2.7.4

Новые функции

  • #3049: Добавить плагин xmake format.
  • Добавить правило plugin.compile_commands.autoupdate.
  • #3172: Добавить xmake.sh.
  • #3168: добавить поддержку стандарта C++23 для модулей на msvc.

Изменения

  • #3056: улучшить поддержку Zig.
  • #3060: улучшить обнаружение msys2 для среды clang toolchains.
  • #3071: поддержка rc для llvm/clang toolchain.
  • #3122: генерировать зависимости предварительно обработанных модулей, чтобы избежать импорта #ifdef import.
  • #3125: компилировать частные модули C++20.
  • #3133: добавить поддержку внутренних разделов.
  • #3146: добавить стандартные компоненты для пакетов.
  • #3192: вывод JSON для автозаполнения.

Исправление ошибок

  • Исправление ошибки requires-lock.
  • #3065: исправить отсутствующие зависимости пакетов.
  • #3082: исправить генератор build.ninja.
  • #3092: исправить ошибку добавления xrepo.
  • #3013: исправить и поддерживать путь UNC в Windows.
  • #2902: исправить файл, к которому нет доступа из-за того, что он занят другим процессом.
  • #3074: исправить генератор CMakelists.
  • #3141: исправить порядок импорта на GCC и принудительно установить его на clang и msvc.
  • Исправить инструменты/пакет xmake сборки каталога.
  • #3159: исправить compile_commands для CLion.

v2.7.3

Новые функции

  • Новый необязательный синтаксис конфигурации. Он дружественен LSP, автоматически вызывает target_end() для достижения изоляции области видимости.
  • #2944: Добавить правила gnu-rm.binary и gnu-rm.static и тесты для проекта embed.
  • #2636: Поддержка компонентов пакета.
  • Поддержка armasm/armasm64 для msvc.
  • #3023: Добавить поддержку отладки с помощью renderdoc.
  • #3022: Добавить флаги для конкретных компиляторов и линкеров.
  • #3025: Метод включения/отключения исключений C++.
  • #3017: Поддержка компилятора ispc.

Изменения

  • #2925: Улучшение плагина doxygen.
  • #2948: Поддержка OpenBSD.
  • Добавить опцию xmake g --insecure-ssl=y, чтобы отключить SSL-сертификат при загрузке пакетов.
  • #2971: Стабилизировать проекты vs и vsxmake.
  • #3000: Поддержка инкрементной компиляции для модулей. Улучшение поддержки модулей стандарта C++ в clang и msvc

Исправленные ошибки

  • #2949: исправление vs group.
  • #2952: исправление armlink для длинных аргументов.
  • #2954: исправление проблемы с путями разделов модуля C++.
  • #3033: обнаружение циклической зависимости модулей.

v2.7.2

Новые функции

  • Поддержка Windows Arm64 (#2140).
  • Добавление package.librarydeps.strict_compatibility для строгой совместимости package linkdeps (#2719).
  • Поддержка os.execv для запуска файла сценария оболочки (#2810).
  • Улучшение правила для поддержки порядка зависимостей (#2817).
  • Передача cross-file в meson.install и trybuild (#2824).
  • Усовершенствование отладки пакета с использованием каталога отладочных источников (#2856).
  • Улучшение trybuild для сборки 3-й исходной библиотеки с помощью скриптов xmake-repo (#2859).
  • Поддержка динамического создания и внедрения правил и целей в область действия скрипта (#2879).
  • Разрешение xmake пакету встраивать правила и скрипты (#2374).

Добавление инструментальной цепочки clang-cl.

Изменения

  • Улучшение os.cp для поддержки символических ссылок (#2745).
  • Улучшение пакетов vcpkg для поддержки FreeBSD (#2773).
  • Улучшение xrepo.env для целевой системы (#2778).
  • Добавление опции алгоритма дайджеста для wdk signtool (#2783).
  • Улучшение json для поддержки пустого массива (#2787).
  • Улучшенное определение matlab и среды выполнения (#2782).
  • Улучшенный mconfdialog (#2793).
  • Поддержка кросс-компиляции macOS arm64/x86_64 для установки пакетов (#2804).
  • Улучшенная оптимизация cl (#2809).
  • Улучшения trybuild для meson/cmake/autoconf.
  • Улучшение генерации конфигурационных файлов (#2846).
  • Лучший контроль над порядком выполнения правил (#2866).

Исправленные ошибки

  • Исправление проблемы со сборкой модулей C++, которая зависала и замедлялась для msvc (#2740).
  • Исправление ошибки при сборке драйвера Linux (#2875).
  • Исправление pch не найден с msvc/ccache (#2885).

v2.7.1

Новые функции

  • Добавление модуля fwatcher и команды плагина xmake watch (#2555).
  • Добавление возможности xmake service --pull 'build/**' outputdir для извлечения заданных файлов на удалённом сервере.
  • Улучшение C++20 модулей, поддержка headerunits и генераторов проектов (#2641).
  • Поддержка Mac Catalyst (#2679).

Изменения

  • Более гибкая загрузка пакетов из cmake (#2576).

  • Дальнейшее улучшение add_headerfiles(), добавлена поддержка {install = false} (#2577).

  • Отключение -fdirectives-only для ccache по умолчанию (#2603).

  • Установка stdout в режим буферизации строк (#2580).

  • Улучшено планирование задач для параллельной и распределённой компиляции на основе использования памяти/ЦП (#2571).

  • Улучшен генератор cmakelists (#2410). Улучшения и исправления ошибок

  • #2690: Улучшение передачи наборов инструментов для пакетов.

  • #2686: Поддержка инкрементальной компиляции и анализа зависимостей заголовочных файлов для Keil, ARMCC и ARMClang.

  • #2562: Улучшение включения зависимостей для rc.exe.

  • Улучшение количества заданий параллельного построения по умолчанию.

Исправленные ошибки

  • #2614: Исправление построения тестов подмодулей 2 для MSVC.
  • #2620: Исправление кэша сборки для инкрементальной компиляции.
  • #2177: Исправление segmentation fault в Python.library для macOS.
  • #2708: Исправление ошибки компоновки для mode.coverage rule.
  • Исправление rpath для фреймворков macOS/iPhoneOS и приложений.

v2.6.9

Новые функции

  • #2474: Добавление инструментальных цепочек icx и dpcpp.
  • #2523: Улучшенная поддержка LTO.
  • #2527: Добавление API set_runargs.

Изменения

  • Улучшен tools.cmake для поддержки WebAssembly.
  • #2491: Откат к локальному компилятору/кэшу с удалённого, если сервер недоступен.
  • #2514: Отключение Unity Build для генератора проектов.
  • #2473: Улучшенное использование apt::find_package для поиска из файлов PC.
  • #2512: Улучшенный удалённый сервис для поддержки конфигурации тайм-аута.

Исправленные ошибки

  • #2488: Исправлена удалённая компиляция с Windows на Linux.
  • #2504: Исправлен баг удалённой сборки на msys2/cygwin.
  • #2525: Исправлены установка зависимостей пакетов и зависание.
  • #2557: Исправлены ссылки на cmake.find_package.
  • Исправлены конфликты путей в предварительно обработанных файлах, вызванные кэшем.

v2.6.8

Новые функции

  • #2447: Добавлены правила qt.qmlplugin и поддержка qmltypesregistrar.
  • #2446: Поддерживается целевая группа для команды xmake install.
  • #2469: Генерируется файл vcpkg-configuration.json.

Изменения

  • Добавлена политика preprocessor.linemarkers для отключения linemarkers с целью ускорения работы ccache/distcc.
  • #2389: Усовершенствована команда xmake run для параллельного запуска целей.
  • #2417: Изменено значение по умолчанию опции/showmenu.
  • #2440: Усовершенствованы сообщения об ошибках при установке пакетов.
  • #2438: Гарантировано, что решение и файл проекта не изменяются при сортировке этих таблиц.
  • #2434: Усовершенствован менеджер плагинов, позволяющий обрабатывать несколько репозиториев плагинов.
  • #2421: Усовершенствовано меню конфигураций опций.
  • #2425: Добавлена политика preprocessor.gcc.directives_only.
  • #2455: Усовершенствованы параметры оптимизации для emcc.
  • #2467: Добавлен запасной вариант компиляции для msvc/ccache.
  • #2452: Добавлена политика build.warning.

Исправленные ошибки

  • #2435: Исправлена ошибка поиска, когда имя пакета имеет расширение.
  • #2445: Исправлена ошибка ccache для msvc.
  • #2452: Исправлено предупреждение о выходе для ccache. error
  • #2387: улучшить pkgconfig и find_package
  • добавить политику build.ccache

Исправленные ошибки

  • #2382: исправить конфигурацию пакета headeronly
  • #2388: исправить ошибку пути
  • #2385: исправить cmake/find_package
  • #2395: исправить c++modules
  • исправить ошибку find_qt

v2.6.6

Новые функции

  • #2327: поддержка nvc/nvc++/nvfortran в nvidia-hpc-sdk
  • добавление интерфейсов экземпляра пути
  • #2344: добавить модуль сжатия lz4
  • #2349: добавить поддержку keil/c51 проекта
  • #274: поддержка распределённой компиляции
  • использование встроенного локального кэша вместо ccache

Изменения

  • #2309: поддержка авторизации пользователя для удалённой компиляции
  • улучшение удалённой компиляции для поддержки сжатия lz4

Исправленные ошибки

  • исправление стека lua при выборе версий пакетов

v2.6.5

Новые функции

  • #2138: поддержка шаблона пакета
  • #2185: добавить --appledev=simulator для улучшения поддержки apple simulator
  • #2227: улучшить пакет cargo с помощью файла Cargo.toml
  • улучшить add_requires для поддержки git commit как версии
  • #622: поддержка удалённой компиляции
  • #2282: добавить add_filegroups для поддержки группы файлов для генераторов vs/vsxmake/cmake

Изменения

  • #2137: улучшение модуля path
  • уменьшение размера двоичного файла xmake на 50% на macOS
  • улучшение tools/autoconf,cmake для поддержки переключения инструментальных средств.
  • #2221: улучшение api реестра для поддержки unicode
  • #2225: поддержка анализа зависимостей импорта для protobuf
  • #2265: сортировка CMakeLists.txt
  • ускорение os.files

Исправленные ошибки

  • #2233: исправление зависимостей модулей c++

v2.6.4

Новые функции

  • #2011: поддержка наследования базового пакета
  • поддержка сборки и запуска xmake на sparc, alpha, powerpc, s390x и sh4
  • добавление on_download для package()
  • #2021: поддержка Swift для linux и windows
  • #2024: добавление поддержки asn1c
  • #2031: поддержка скриптов компоновщика и скриптов версий для add_files
  • #2033: перехват ctrl-c для получения текущего обратного следа для отладки зависания
  • #2059: добавление xmake update --integrate для интеграции оболочки
  • #2070: добавление встроенных сред xrepo
  • #2117: поддержка передачи инструментальных цепочек в пакет для других платформ
  • #2121: поддержка экспорта заданного списка символов

Изменения

  • #2036: улучшение xrepo для установки пакетов из файла конфигурации, например, xrepo install xxx.lua
  • #2039: улучшение фильтрации каталога для генератора vs
  • #2025: поддержка phony и headeronly цели для генератора vs
  • улучшение поиска vstudio и codesign скорости
  • #2077: улучшение генератора проектов vs для поддержки cuda

Исправленные ошибки

  • #2005: исправление path.extension

  • #2008: исправление Windows manifest

  • #2016: исправить конфликт имён файлов объектов для генератора проектов vs.

v2.6.3

Новые функции

  • Поддержка режима манифеста vcpkg и выбор версии для пакета/установки (#1298).
  • Добавление правила python.library для создания модулей pybind (#1896).
  • Добавление функций remove_files, remove_headerfiles и объявление del_files устаревшими (#1939).
  • Использование on_config в качестве официального API для правил/целей.
  • Поддержка riscv32/64.
  • Добавление оболочки CMake для Xrepo C и C++ диспетчера пакетов (#1970).
  • Встроенные файлы pac для github, можно использовать команду xmake g --proxy_pac=github_mirror.lua.

Изменения

  • Улучшение сборки драйвера linux, поддержка настройки пути к пользовательским заголовкам linux (#1923).
  • Улучшение инструментальной цепочки armclang для поддержки сборки asm (#1962).
  • Улучшение генератора проектов vstudio (#1959).
  • Добавление описания параметров по умолчанию (#1969).

Исправленные ошибки

  • Исправление проблемы с развёртыванием android qt apk (#1875).
  • Исправление слияния статических архивов (#1973).

v2.6.2

Новые функции

  • Поддержка сборки модулей драйверов ядра linux (#1902).
  • Сборка и запуск целей с заданным шаблоном группы (#1913).
  • Фиксация сборки подмодулей c++20 для clang (#1982).

Изменение

  • Экранирование символов для set_configvar (#1872).
  • Предотвращение удаления других файлов при установке windows (#1888).
  • Улучшение правила plugin.vsxmake.autoupdate (#1895).
  • Более точное определение icc и ifort инструментальных цепочек (#1893).
  • Поддержка внешних заголовков без экспериментального для msvc (#1905).
  • Улучшение генератора vs201x (#1904).
  • Добавлена переменная среды XMAKE_THEME для переключения темы.
  • Возможность принудительного создания проекта в непустом каталоге с помощью -f/--force (#1907).
  • Улучшенное обнаружение find_package и конфигураций (#1917).

Исправленные ошибки

  • Исправлена ошибка package:fetch_linkdeps (#1885).
  • Исправлен порядок ссылок в пакете (#1903).

v2.6.1

Новые функции

  • Поддержка смешанных целей на rust & c++ и зависимостей cargo (#1799).
  • Правила utils.glsl2spv для компиляции файлов шейдеров .vert/.frag в файлы spirv и двоичные файлы заголовков c (#1799).

Изменения

  • По умолчанию используется среда выполнения Lua5.4.
  • Улучшено system::find_package, поддерживается поиск пакетов из envs (#1776).
  • Улучшен apt:find_package, поддерживается поиск псевдонимов пакетов (#1786).
  • Добавлены предварительно скомпилированные заголовки в генератор cmake (#1819).
  • Улучшена поддержка модулей C++20 для msvc.
  • Добавлена пользовательская команда в генераторе проектов vs (#1792).
  • Улучшены программы MDK и добавлена поддержка set_runtimes("microlib") (#1835).
  • Улучшена сборка модулей C++20 с библиотеками (#1858).
  • Добавили переменные окружения $XMAKE_BINARY_REPO и $XMAKE_MAIN_REPO.
  • Улучшены проекты openmp (#1865).
  • Файлы pdb устанавливаются для статической библиотеки (#1845). Баг фикст:
  • Фикс семвер для парсинга билд стринг с нулевым префиксом.
  • Фикс рул и билд бпф программы, ошибка в №50 (https://github.com/libbpf/libbpf-bootstrap/issues/50).
  • Фикс xmake f --menu не реагирует в вскдэй и поддержка КонПТИ терминал вирт кейс в №1610 (https://github.com/xmake-io/xmake/issues/1610).

v2.5.9

Новые функции:

Изменения:

V2.5.8

Новые функции:

Изменение:

  • Улучшить Vala для поддержки генерации библиотек и биндингов в №1618 (https://github.com/xmake-io/xmake/issues/1618).
  • Улучшить правила Qt для поддержки Qt 4.x.
  • Улучшить set_symbols("debug") для генерации pdb файла для clang на виндовс.
  • Улучшить слияние статических библиотек в №1638 (https://github.com/xmake-io/xmake/issues/1638).
  • Улучшить on_load/after_load для поддержки добавления целевых депс динамически.
  • Переименовать динамические и импортные библиотеки суффиксы для mingw в №1675 (https://github.com/xmake-io/xmake/pull/1675).
  • Поддерживать определение переменной без кавычек для конфигурационных файлов в №1694 (https://github.com/xmake-io/xmake/issues/1694).
  • Поддержка Android NDK r23.
  • Добавить c++latest и clatest для set_languages.
  • Добавить save_scope и restore_scope, чтобы исправить apis check_xxx в №1720 (https://github.com/xmake-io/xmake/issues/1720).
  • Улучшить генератор compile_commands для поддержки nvcc в №1726 (https://github.com/xmake-io/xmake/issues/1726).

Исправленные ошибки:

V2.5.7

Новые функции:

  • Поддержка для компиляции проекта языка Vala в №1534 (https://github.com/xmake-io/xmake/issues/1534).

  • Добавить правило utils.bin2c для генерации заголовка из бинарного файла в №1544 (https://github.com/xmake-io/xmake/issues/1544).

  • Поддержка запуска и получения вывода фрагментов c/c++ в опции в №1547 (https://github.com/xmake-io/xmake/issues/1547). ### Изменения

  • Поддержка пакетов arm/arm64 для vcpkg, спасибо @fallending.

  • Добавление поддержки менеджера пакетов portage, спасибо @Phate6660.

Улучшения

  • Улучшение find_package и добавление package:find_package для пакета xmake.
  • Удаление устаревших apis set_config_h и set_config_h_prefix.
  • Улучшенное локальное сканирование файлов пакетов (issue #1343).
  • Улучшенные конфигурации vs_runtime для бинарных пакетов (issue #1347).
  • Ускоренное сопоставление файлов с помощью del_files() (issue #1353).
  • Поддержка powershell в xrepo env shell (issue #1349).

Исправленные ошибки

  • Исправлены ошибки при добавлении пакетов (issue #1380).
  • Исправлена ошибка при добавлении локального git-источника для пакета (issue #1381).
  • Исправлено поведение cuda/nvcc toolchain (issue #1391).

v2.5.3

Новые функции

  • Поддержка add_files("*.def") для экспорта символов для windows/dll (issue #1259).
  • Добавлен find_package("nvtx") (issue #1267).
  • Добавлено правило platform.linux.bpf для сборки программы linux/bpf (issue #1274).
  • Поддержка fetchonly-пакетов для улучшения find_package (issue #1280).
  • Поддержка удалённых пакетов ndk-toolchain.
  • Добавлено правило utils.install.pkgconfig_importfiles для установки файлов *.pc (issue #1268).
  • Добавленное правило utils.install.cmake_importfiles для установки файлов *.cmake (issue #1268).
  • Добавлена политика platform.longpaths для поддержки длинных путей git (issue #348).
  • Поддержка установки и использования пакетов conda (issue #1314).
  • Добавлен модуль core.base.cpu и улучшено os.cpuinfo() (issue #1120).
  • Добавлены встроенные переменные git для add_configfiles (issue #1325).

Изменения

  • Поддержка условных целей для плагина vsxmake (issue #1275).
  • Улучшен android ndk для поддержки версии >= r22 (issue #1290).
  • Пакеты lib добавлены в PATH для проектов vsxmake (issue #1311).

Исправленные ошибки

  • Относительный путь к репозиторию исправлен в add_repositories (issue #1266).
  • Генератор vsxmake теперь корректно работает с опциями конфигураций (issue #1288).

v2.5.2

Новые функции

  • Поддержка zig cc и zig c++ как компиляторов C/C++ (issue #955).

  • Поддержка кросс-компиляции zig (issue #955).

  • Улучшено определение терминала и цветовых кодов (issue #1177).

  • Возможность передачи пользовательских скриптов конфигурации в xrepo (issue #1216).

  • Добавлен встроенный модуль linuxos для получения информации о системе Linux.

  • Возможность получения удалённых пакетов toolchain при сборке проекта (issue #1217).

  • Добавлен rule("utils.symbols.export_all") для экспорта всех символов для windows/dll (issue #1123).

  • Модуль utils.platform.gnu2mslib(mslib, gnulib) для преобразования mingw/xxx.dll.a в msvc xxx.lib (issue #1181).

  • Правила и генераторы улучшены для поддержки списков команд (issue #1246).

  • Улучшена поддержка внешних пакетов с помощью add_extsources (issue #1239).

  • Поддерживаются файлы .manifest для программ Windows (issue #1241). Поддержка использования команды xrepo remove --all для удаления всех пакетов.

  • #1254: Поддержка экспорта пакетов в родительскую цель.

Изменения

  • #1226: Добавить недостающие каталоги включения qt.
  • #1183: Улучшить языки C++ для поддержки Qt6.
  • #1237: Добавить файлы qt.ui для плагина vsxmake.
  • Улучшить плагины vs/vsxmake для поддержки предварительно скомпилированных заголовков и intellisense.
  • #1090: Упростить интеграцию пользовательских генераторов кода.
  • #1065: Улучшить правило protobuf для поддержки генераторов compile_commands.
  • #1249: Улучшить генератор vs/vsxmake для поддержки startproject.
  • #605: Улучшить порядок ссылок для add_deps/add_packages.
  • Удалить устаревшие API add_defines_h_if_ok и add_defines_h для опции.

Исправленные ошибки

  • #1219: Исправить проверку версии и обновление.
  • #1235: Исправить каталоги включений с пробелами.

v2.5.1

Новые функции

  • #1035: Меню конфигурации графики полностью поддерживает события мыши и поддерживает полосу прокрутки.
  • #1098: Поддержка stdin для os.execv.
  • #1079: Добавить правило автообновления плагина для vsxmake, add_rules("plugin.vsxmake.autoupdate").
  • Добавить xmake f --vs_runtime=MT и set_runtimes("MT") для установки времени выполнения vs для целей и пакетов.
  • #1032: Поддержка перечисления ключей и значений реестра.
  • #1026: Поддержка группы для проекта vs/vsxmake.
  • #1178: Добавить API add_requireconfs() для перезаписи конфигураций зависимых пакетов.
  • #1043: Добавить правило luarocks.module для luarocks-build-xmake.
  • #1190: Поддержка Apple Silicon (macOS ARM).
  • #1145: Поддержка развёртывания Qt для Windows, спасибо @SirLynix.

Изменения

  • #1072: Исправление и улучшение анализа зависимостей cl.
  • Поддержка utf8 для модулей ui и xmake f —menu.
  • Улучшение поддержки zig на macOS.
  • #1135: Улучшение мультиинструментальной цепочки и мультиплатформенности для целей.
  • #1153: Улучшение инструментальной цепочки llvm для поддержки sysroot на macOS.
  • #1071: Улучшение генерации проекта vs/vsxmake для поддержки удалённых пакетов.
  • Улучшение проекта плагина vs/vsxmake для поддержки глобальной настройки set_arch().
  • #1164: Улучшение запуска консольных программ для проекта vsxmake.
  • #1179: Улучшение инструментальной цепочки llvm и добавление isysroot.

Исправлены ошибки

  • #1091: Исправлено неправильное упорядочение унаследованных зависимостей библиотек.
  • #1105: Исправлен C++ intellisense для vsxmake.
  • #1132: Исправлена ошибка TrimEnd для vsxmake.
  • #1142: Исправлена проблема с git not found при установке пакетов.
  • Исправлена ошибка macos.version для macOS Big Sur.
  • #1084: Исправлена ошибка add_defines() (содержит пробелы).
  • #1195: Исправлена проблема Unicode для vs и улучшено find_vstudio/os.exec.

v2.3.9

Новые возможности

  • Добавлена новая команда xrepo для управления пакетами C/C++.

  • Поддержка установки пакетов кросс-компиляции.

  • Добавление инструментальных цепочек musl.cc. ### Изменения

  • Проблема № 997: Поддержка установки стандартных языков для xmake project -k cmake.

  • Проблема № 998: Поддержка установки пакетов vcpkg с помощью Windows-static-md.

  • Проблема № 996: Улучшение поиска каталога vcpkg.

  • Проблема № 1008: Улучшение кросс-платформенных инструментов.

  • Проблема № 1030: Улучшение правил для xcode.framework и xcode.application.

  • Проблема № 1051: Добавление команд edit и embed в set_symbols() только для msvc.

  • Проблема № 1062: Улучшение плагина xmake project -k vs.

Новые функции

  • Проблема № 955: Добавление шаблонов проектов zig.
  • Проблема № 956: Добавление платформы wasm и поддержка Qt/Wasm SDK.
  • Обновление виртуальной машины luajit и поддержка работы на устройстве mips64.
  • Проблема № 972: Добавление API depend.on_changed() для упрощения добавления зависимых файлов.
  • Проблема № 981: Добавление set_fpmodels() для режима оптимизации математики.
  • Проблема № 980: Поддержка компиляторов Intel C/C++ и Fortran.
  • Проблема № 986: Поддержка c11 и c17 для MSVC версии 16.8 и выше.
  • Проблема № 979: Добавление абстракции для OpenMP. add_rules("c++.openmp").

Изменения

  • Проблема № 958: Улучшение платформы mingw для поддержки инструментария llvm-mingw.
  • Улучшение add_requires("zlib~xxx") для одновременной установки нескольких пакетов.
  • Проблема № 977: Улучшение функции find_mingw для Windows.
  • Проблема № 978: Улучшение порядка флагов инструментария.
  • Улучшение инструментария Xcode для поддержки macOS/arm64.

Исправленные ошибки

  • Проблема № 951: Исправление поддержки emcc для Windows.
  • Проблема № 992: Исправление ошибки блокировки файла.

Примечание: Это перевод текста, который вы предоставили. Если у вас есть дополнительные вопросы или уточнения, пожалуйста, дайте мне знать. Поддержка новых функций в xmake:

  • v2.3.6:

    • Добавлена функция xmake project -k xcode для генерации проекта с использованием cmake.
    • Поддержка компилятора gfortran (#870).
    • Поддержка компилятора zig (#887).
    • Добавление модуля json (#893).
    • Поддержка кросс-компиляции для golang (#898).
    • Поддержка менеджера пакетов go для установки пакетов go (#275).
    • Поддержка менеджера пакетов dub для установки пакетов dlang (#581).
  • v2.3.5:

    • Улучшено обнаружение инструментария кросс-компиляции (#902).
    • Появилась возможность использовать команду xmake show -l envs для отображения всех встроенных переменных среды (#861).
    • Реализована поддержка поиска локальных файлов пакетов для установки удалённых пакетов (#854).

Изменения:

  • В версии 2.3.6 добавлена поддержка новых файлов зависимостей cl.exe, /sourceDependencies xxx.json (#868).
  • В версии 2.3.5 добавлена поддержка импорта файлов из подкаталогов для правил protobuf (#828).

Исправления ошибок:

  • Исправлена ошибка прогресса для темы.
  • Исправлен неверный путь sysroot для macOS (#829).
  • Исправлена ошибка find_packages для режима отладки (#832).

В запросе не удалось перевести часть текста, так как он содержит специальные символы и форматирование, которые не могут быть корректно отображены в ответе. *Генерировать символы отладки (*.so / .dSYM) для программ Android и iOS

  • #687: Поддержка генерации программ objc/bundle.
  • #743: Поддержка генерации программ objc/framework.
  • Поддержка компиляции bundle, framework, mac application и ios application, а также всех некоторых шаблонов проектов.
  • Поддержка генерации файла ios *.ipa и codesign.
  • Добавить правило xmake.cli для разработки программы на Lua с использованием основного движка xmake.

Изменения

  • #750: Улучшение правила qt.widgetapp для поддержки приватного слота.
  • Улучшение Qt/deploy для Android и поддержка Qt 5.14.0.

Версия 2.3.2

Новые функции

  • Добавление темы PowerShell для терминала PowerShell.
  • Добавление команды xmake --dry-run -v для пробного запуска сборки и отображения только подробной команды сборки.
  • #712: Добавление платформы sdcc и поддержка компилятора sdcc.

Изменения

  • #589: Улучшение и оптимизация скорости сборки, поддержка параллельной компиляции и компоновки между целями.
  • Улучшение генератора ninja/cmake.
  • #728: Улучшение os.cp для поддержки структуры исходных каталогов.
  • #732: Улучшение find_package для поддержки пакетов homebrew/cmake.
  • #695: Улучшение abi для Android.

Исправленные ошибки

  • Исправление ошибок ссылок для msvc.
  • #718: Исправление ошибки кэша загрузки для пакета.
  • #722: Исправление некорректных зависимостей пакетов.
  • #719: Исправление проблемы с завершением процесса.
  • #720: Исправление генератора compile_commands.

Версия 2.3.1

Новые функции

  • #675: Поддержка компиляции файлов *.*c как C++, add_files("*.c", {sourcekind = "cxx"}).
  • #681: Поддержка компиляции xmake в msys/cygwin и добавление платформы msys/cygwin.
  • Добавление модулей ввода-вывода сокетов/каналов и поддержка планирования сокетов/процессов/каналов в сопрограмме.
  • #192: Попытка создания проекта с помощью сторонней системы сборки.
  • Включение цветной диагностики вывода для gcc/clang.
  • #588: Улучшение генератора проектов, xmake project -k ninja, поддержка build.ninja.

Изменения

  • #665: Поддержка анализа параметров команд в стиле *nix, благодаря @OpportunityLiu.
  • #673: Улучшение автозаполнения табуляции для поддержки значений аргументов.
  • #680: Улучшение скриптов get.sh и добавление зеркал загрузки.
  • Улучшение планировщика процессов.
  • #651: Улучшение модуля os/io для получения советов по ошибкам syserrors.

Исправленные ошибки

  • Исправление инкрементальной компиляции для проверки зависимого файла.
  • Исправление вывода журнала для анализа информации о проблемах xmake-vscode/problem.
  • #684: Исправление ошибок компоновщика для android ndk на Windows.

Версия 2.2.9

Новые функции

  • #569: Добавление правил сборки модулей C++.
  • Добавление генератора xmake project -k xmakefile.
  • 620: Добавление глобального ~/.xmakerc.lua для всех проектов.
  • 593: Добавление модуля core.base.socket.

Изменения

  • #563: Разделение правил сборки для конкретных языковых файлов от действия/сборки.

  • #570: Добавление правил qt.widgetapp и qt.quickapp.

  • #576: Использование set_toolchain вместо add_tools и set_tools.

  • Улучшение действия xmake create.

  • #589: Увеличение количества заданий по умолчанию для оптимизации скорости сборки. Улучшения и исправления ошибок в выпусках v2.2.8, v2.2.7, v2.2.6

  • Проблемы, которые были решены:

    • Улучшение работы find_package для поддержки библиотек .tbd на macOS.

    • Поддержка установки и использования других архитектур и пакетов Conan для iOS.

    • Улучшение hash.uuid и реализация uuid v4.

    • Улучшенное парсинг аргументов опций для поддержки -jN.

    • Исправление проблемы нехватки памяти при сериализации.

    • Устранение проблемы с порядком ссылок на удалённые пакеты.

    • Решение проблемы пути запуска для пакетов vcpkg.

    • Оптимизация скорости выполнения команды xmake require.

    • Коррекция режима.coverage и проверка флагов.

    • Добавление правил protobuf для C/C++.

    • Реализация поддержки utf-8 для модуля io на Windows.

    • Создание плагина xmake project -k vsxmake для вызова xmake из VS/MSBuild.

    • Возможность сборки выбранных файлов для заданной цели.

    • Внедрение файлового блокировщика для io.

    • Обеспечение поддержки Android/Termux.

    • Введение API add_cleanfiles для целевых объектов.

    • Предоставление API set_runenv для переопределения os/envs.

    • Блокировка всего проекта для предотвращения доступа других процессов.

    • Попытка включения /dev/shm для os.tmpdir.

    • Улучшение вывода Unicode для link/cl в VS.

    • Совершенствование бинарных биткод-скриптов Lua в каталоге программы.

    • Устранение ошибки, вызванной новым vsDevCmd.bat в VS 2019.

    • Поддержка clang в качестве компилятора CUDA, попытка использования xmake f --cu=clang.

    • Ввод API set_rundir() и add_runenvs() для целевых объектов и запуска.

    • Реализация завершения табуляции.

    • Добавление on_link, before_link и after_link для правил и целевых объектов.

    • Расширение поддержки lex/yacc с помощью правил add_rules("lex", "yacc").

    • Добавление API add_cugencodes() для улучшения настройки генерации кода для CUDA.

    • Анализ зависимостей для файлов cu (для CUDA 10.1+).

    • Явное указание источника git для обновления xmake, например, xmake update github:xmake-io/xmake#dev.

    • Обновление только скриптов, например, с помощью команды xmake update --scriptonly dev.

    • Улучшенная поддержка CUDA для device-link.

    • Развитие тестовой библиотеки.

    • Экспорт compile_flags.txt.

    • Простота настроек области видимости.

    • Интеграция менеджера пакетов clib.

    • Поддержка Qt для Android и развёртывание Android APK.

    • Добавление шаблонов пустых проектов Qt, таких как widgetapp_qt, quickapp_qt_static и widgetapp_qt_static.

    • Аргументы конфигурации --cu-cxx для nvcc/-ccbin.

    • Опции аргументов --ndk_stdcxx=y и --ndk_cxxstl=gnustl_static для NDK Android.

    • Улучшенный удалённый менеджер пакетов.

    • Более совершенные скрипты target:on_xxx для соответствия шаблонам android|armv7-a@macosx,linux|x86_64.

Это перевод текста без учёта контекста. Если вам нужна дополнительная информация или уточнение перевода, пожалуйста, сообщите мне об этом. Добавить модули расширения lib.luajit.ffi и lib.luajit.jit

  • #263: Добавить новый тип цели: объект для компиляции только объектных файлов.

Изменения

  • #229: Улучшить выбор набора инструментов для плагина vcproj.
  • Улучшить зависимости компиляции.
  • Поддерживать *.xz для экстрактора.
  • #249: пересмотреть форматирование прогресса до трёхзначных процентов с пробелом впереди.
  • #247: добавить -D и --diagnosis вместо --backtrace.
  • #259: улучшить on_build, on_build_file и on_xxx для цели и правила.
  • #269: очистить временные файлы за последние 30 дней.
  • Улучшить удалённый менеджер пакетов.
  • Поддержка добавления пакетов только с заголовочным файлом.
  • Поддержка изменения встроенных ссылок на пакеты, например, add_packages("xxx", {links = {}}).

Исправленные ошибки

  • Исправить несогласованность состояния после неудачного сбоя зависимого пакета установки.

v2.2.2

Новые функции

  • Поддержка ассемблера fasm.
  • Добавить apis has_config, get_config и is_config.
  • Добавить set_config для установки конфигурации по умолчанию.
  • Добавить $xmake --try для сборки проекта с использованием сторонней системы сборки.
  • Добавить set_enabled(false) для отключения цели.
  • #69: Добавить удалённое управление пакетами, add_requires("tbox ~1.6.1").
  • #216: Добавить правила windows mfc.

Изменения

  • Улучшение обнаружения среды Qt и поддержка mingw.
  • Добавление правил отладки и выпуска в автоматически сгенерированный xmake.lua.
  • #178: Изменить имя общей библиотеки для mingw.
  • Поддержка нечувствительного к регистру сопоставления шаблонов путей для add_files() в Windows.
  • Улучшенное обнаружение каталога Qt sdk для detect.sdks.find_qt.
  • #184: Улучшение lib.detect.find_package для поддержки vcpkg.
  • #208: Улучшение rpath для общей библиотеки.
  • #225: Улучшенное обнаружение среды vs.

Исправленные ошибки

  • #177: Исправление ошибки ссылки на зависимую цель.
  • Исправление высокой загрузки процессора и проблем с выходом для $ xmake f --menu.
  • #197: Исправление китайского пути для создания vs201x проекта.
  • Исправление ошибок правил wdk.
  • #205: Исправление targetdir, objectdir не используется в vsproject.

v2.2.1

Новые функции

  • #158: Поддержка CUDA Toolkit и компилятора.
  • Добавить apis set_tools и add_tools для изменения цепочек инструментов для специальных целей.
  • Добавить встроенные правила: mode.debug, mode.release, mode.profile и mode.check.
  • Добавить is_mode, is_arch и is_plat встроенные apis в пользовательских скриптах.
  • Добавить коды цвета 256.
  • #160: Поддержка среды компиляции Qt и добавление правил qt.console и qt.application.
  • Добавить некоторые шаблоны проектов Qt.
  • #169: Поддержка yasm для Linux, Macosx и Windows.
  • #159: Поддержка среды компиляции WDK для драйверов.

Изменения

  • Добавить FAQ в автоматически созданный xmake.lua.
  • Поддержка android NDK >= r14.
  • Улучшенные флаги предупреждений для swiftc.
  • #167: Улучшенные пользовательские правила.
  • Улучшены api os.files и os.dirs.
  • #171: Улучшенная зависимость сборки для правила qt.
  • Реализовать make clean для генерации плагина makefile.

Исправленные ошибки

  • Исправлено принудительное добавление флагов.

  • #157: Исправлена ошибка генерации файла pdb, если выходной каталог не существует.

  • Исправлена ошибка удаления всех символов для целевого файла macho.

  • #168: Исправлена ошибка создания проекта vs201x с архитектурами x86/x64. del_files() API для удаления файлов из списка файлов.

  • Добавить api rule(), add_rules() для реализации пользовательского правила сборки и улучшить add_files("src/*.md", {rule = "markdown"}).

  • Добавить API os.filesize().

  • Добавить компоненты cui core.ui.xxx.

  • Добавить xmake f --menu для настройки проекта с интерфейсом конфигурации меню.

  • Добавить set_values API к option().

  • Поддержка генерации интерфейса конфигурации меню на основе пользовательских параметров проекта.

  • Добавление позиции исходного файла в интерпретатор и результаты поиска в меню.

Изменения

  • Улучшение настройки кросс-инструментов, добавление псевдонима инструмента для поддержки неизвестного имени инструмента, например, xmake f --cc=gcc@ccmips.exe.
  • Улучшение сборки разделяемой библиотеки для платформы mingw (#151).
  • Улучшение генерации плагина makefile.
  • Улучшение проверки ошибок.
  • Улучшение add_cxflags ..., принудительная установка флагов без автоматической проверки: add_cxflags("-DTEST", {force = true}).
  • Улучшение add_files, добавление блока force для принудительной установки флагов без автоматической проверки: add_files("src/*.c", {force = {cxflags = "-DTEST"}}).
  • Улучшенное обнаружение корневого каталога проекта.
  • Улучшенное определение среды vs.
  • Обновление luajit до 2.1.0-beta3.
  • Поддержка запуска xmake на linux (arm, arm64).
  • Улучшенная генерация плагина vs201x.

Исправленные ошибки

  • Исправлена зависимость компиляции.
  • Исправление os.nuldev() для gcc на mingw (#151).
  • Исправлено ограничение длины строки командной строки для ar.exe (#150).
  • Исправлен сбой xmake f --cross.
  • Исправлено использование os.cd для пути к корню windows.

v2.1.8

Новые функции

  • Добавлена переменная среды XMAKE_LOGFILE для сохранения выходных данных в файл.
  • Поддерживается компилятор tinyc.

Изменения

  • Улучшена поддержка плагинов IDE/редакторов (например, vscode, sublime, intellij-idea).
  • При создании новых проектов добавляется файл .gitignore.
  • Улучшено создание шаблона проекта.
  • Улучшено обнаружение инструментов на macosx без xcode.
  • Улучшен set_config_header для поддержки set_config_header("config", {version = "2.1.8", build = "%Y%m%d%H%M"}).

Исправленные ошибки

  • Ошибка при определении текущего каталога при запуске цели (#145).

v2.1.7

Новые функции

  • Добавлено add_imports для массового импорта модулей для цели, опции и скрипта пакета.
  • Добавлено xmake -y/--yes для подтверждения ввода пользователя по умолчанию.
  • Добавлено xmake l package.manager.install xxx для установки программного пакета.
  • Добавлен плагин xmake для редактора vscode xmake-vscode.
  • Добавлено макроопределение xmake для выполнения последней команды.

Изменения

  • Поддержка 24-битных истинных цветов для cprint().
  • Поддержка @loader_path и $ORIGIN для add_rpathdirs().
  • Улучшено set_version("x.x.x", {build = "%Y%m%d%H%M"}) и добавлена версия сборки.
  • Перемещение каталога документации в репозиторий xmake-docs.
  • Улучшены действия установки и удаления и поддерживается использование переменных окружения DESTDIR и PREFIX.
  • Оптимизация обнаружения флагов.
  • Добавлен COLORTERM=nocolor для отключения вывода цветных кодов.
  • Удалены api and_bindings и add_rbindings.
  • Отключён вывод цветных кодов в файлы.
  • Обновлены шаблоны проектов с помощью tbox.
  • Улучшен интерфейс lib.detect.find_program.
  • Включён вывод цветных кодов для windows cmd.
  • Добавлены аргументы -w|--warning для включения вывода предупреждений.

Исправленные ошибки

  • Исправлена ошибка set_pcxxheader.
  • Исправлена ошибка os.tmpdir() в fakeroot (#140).
  • Исправлена ошибка os.getenv charset в windows (#142).
  • Исправлена ошибка компиляции с пробелами в пути.
  • Исправлена ошибка установки значения setenv. В запросе представлен текст технической направленности из области разработки и тестирования программного обеспечения. Основной язык текста запроса — английский.

Вот перевод текста на русский язык:

  • Изменения:
    • Добавить add_csnippet и add_cxxsnippet в option для обнаружения некоторых функций компилятора.
    • Добавить пользовательские модули расширения для обнаружения программ, библиотек и файлов.
    • Добавить интерфейсы модулей find_program, find_file, find_library, find_tool и find_package.
    • Добавить модули расширения net.* и devel.*.
    • Добавить API val() для получения значения встроенной переменной, например, val("host"), val("env PATH"), val("shell echo hello") и val("reg HKEY_LOCAL_MACHINE\\XX;Value").
    • Поддержка компиляции файла ресурсов Microsoft (.rc).
    • Добавить has_flags, features и has_features для обнаружения интерфейсов модулей.
    • Добавить API option.on_check, option.after_check и option.before_check.
    • Добавить API target.on_load.
    • Добавить API add_frameworkdirs.
    • Добавить API lib.detect.has_xxx и lib.detect.find_xxx.
    • Добавить API add_moduledirs.
    • Заменить add_subdirs и add_subfiles на API includes.
    • Улучшить плагин проекта для генерации compile_commands.json с помощью команды xmake project -k compile_commands.
    • Добавить поддержку прекомпилированных заголовков с помощью set_pcheader и set_pcxxheader, поддерживая gcc, clang, msvc.
    • Добавить платформу xmake f -p cross и поддержку пользовательских платформ.

Изменения:

  • Добавить ссылки и включения из зависимостей цели автоматически.
  • Улучшить import для загрузки пользовательских расширений и глобальных модулей.
  • Улучшить работу xmake lua для выполнения однострочных команд.
  • Усовершенствовать вывод ошибок и предупреждений gcc.
  • Улучшить интерфейс print для вывода таблицы.
  • Добавить общий параметр --root для запуска команды xmake от имени администратора.
  • Управлять привилегиями при запуске от имени администратора, сохранять привилегии администратора и понижать их.
  • Улучшить обработку xxx_script в файле xmake.lua для поддержки сопоставления с образцом, например, on_build("iphoneos|arm*", function (target) end).
  • Улучшить встроенные переменные для поддержки получения значений переменных окружения и реестра.
  • Улучшить обнаружение сред Visual Studio SDK и кросс-инструментальных цепочек.
  • Обнаруживать компиляторы и линкеры из переменных окружения.
  • Оптимизировать обнаружение параметров (кэш и многозадачность) и увеличить скорость на 70%.
  • Проверять зависимости ссылок и кэшировать файлы целей.
  • Поддерживать исходные файлы *.asm для плагина проекта vs201x.
  • Отметить add_bindings и add_rbindings как устаревшие.
  • Оптимизировать скорость перестроения xmake в Windows.
  • Переместить core.project.task в core.base.task.
  • Перенести плагины echo и app2ipa в репозиторий xmake-plugins.
  • Добавить новый API set_config_header("config.h", {prefix = ""}) вместо set_config_h и set_config_h_prefix.

Исправленные ошибки:

  • Исправить try-catch-finally.
  • Исправить ошибку интерпретатора при разборе многоуровневых подкаталогов.
  • Исправить проблему с путём в установочном скрипте get.sh.
  • Исправить ошибку кэша для import().

v2.1.4

Новые функции:

  • Добавить встроенные переменные $(programdir) и $(xmake).
  • Добавить API is_host для получения текущей операционной системы хоста.
  • Улучшить работу xmake lua, чтобы можно было выполнять интерактивные команды, читать-оценивать-печатать (REPL).

Изменения:

  • Изменить цвет меню параметров.
  • Улучшить сопоставление флагов оптимизации для cl.exe.
  • Попытаться получить путь к исполняемому файлу в качестве каталога программы xmake.
  • Улучшить область действия xmake.lua в add_subdirs и использовать независимую подобласть, чтобы избежать загрязнения области действия.
  • Получить размер терминала во время выполнения и переносить справочную информацию на мягкие строки.
  • Избегать создания каталога .xmake, если он не находится в проекте.

Исправлено:

  • ... ### v2.1.3

Новые функции:

  • #65: Добавить API set_default для цели, чтобы изменить поведение по умолчанию при сборке и установке.
  • Позволяет запускать команду xmake в подкаталогах проекта, автоматически находит корневой каталог проекта.
  • Добавить add_rpathdirs для целей и опций.

Изменения:

  • Более безопасная установка и удаление задач xmake install и xmake uninstall с правами администратора.
  • Предоставить пакеты установки rpm, deb и osxpkg.
  • Более безопасный процесс сборки и установки xmake.
  • Проверка запуска команды от имени пользователя root.
  • Улучшение проверки инструментов и реализация отложенной проверки.
  • Добавление пользовательских советов при автоматическом сканировании и генерации xmake.lua.

v2.1.2

Новые функции:

  • Добавлен скрипт пакета aur и поддержка установки xmake из yaourt.
  • Добавлена функция set_basename для целей.

Изменения:

  • Поддержка vs2017.
  • Поддержка компиляции Rust для Android.
  • Улучшен плагин vs201x и добавлена поддержка многорежимной компиляции.

v2.1.1

Новые функции:

  • Добавлены аргументы конфигурации --links, --linkdirs и --includedirs.
  • Добавлен плагин app2ipa.
  • Добавлен синтаксис словаря для xmake.lua.
  • Обеспечена интеллектуальная проверка и режим сборки без xmake.lua.
  • Добавлена функция set_xmakever для xmake.lua.
  • Добавлена функция add_frameworks для objc и swift.
  • Поддерживаются многоязычные расширения и добавлены языки golang, dlang и rust.
  • Добавлены необязательные функции target_end, option_end и task_end для области видимости.
  • Добавлены шаблоны проектов для golang, dlang и rust.

Изменения:

  • Поддержка vs2017 для плагина проекта.
  • Улучшены советы по ошибкам и предупреждениям gcc.
  • Улучшена языковая модель.
  • Улучшен интерфейс печати, поддерживается вывод lua print и формат вывода.
  • Автоматическое сканирование файлов проекта и генерация их для сборки, если xmake.lua не существует.
  • Изменение лицензии на Apache License 2.0.
  • Удалены некоторые двоичные инструменты.
  • Удалён скрипт install.bat и предоставлен пакет установки nsis.
  • Переписаны документы с использованием docute.
  • Улучшено использование функций os.run, os.exec, os.cp, os.mv и os.rm, добавлена поддержка шаблонов с подстановочными знаками.
  • Оптимизирована информация о выводе и добавлена опция -q|--quiet.
  • Улучшен генератор makefile, используются переменные $(XX) для инструментов и флагов.

v2.0.5

Новые функции:

  • Добавлено несколько встроенных модулей интерпретатора.
  • Поддержка ассемблера ml64 для Windows x64.

Изменения:

  • Улучшены интерфейсы ipairs и pairs, добавлена поддержка фильтра.
  • Добавлены фильтры для создания проекта vs201x.
  • Удаление core/tools (наборы инструментов msys) и использование xmake для компиляции основных источников в Windows.
  • Удаление xmake/packages для шаблонов.

v2.0.4

Новое:

К сожалению, не удалось перевести часть текста, так как он содержит специальные символы или непечатаемые символы. Возможности

  • Добавить нативную поддержку оболочки для xmake.lua. Например: add_ldflags("$(shell pkg-config --libs sqlite3)").
  • Включить файлы символов PDB для Windows.
  • Обеспечить поддержку отладчика для Windows (vsjitdebugger, ollydbg, windbg и др.).
  • Реализовать интерфейс getenv для глобальной области видимости xmake.lua.
  • Создать плагин для генерации файла проекта Visual Studio (VS2002 — VS2015).
  • Внедрить API set_default для опций.

Изменения

  • Улучшить формат встроенных переменных.
  • Поддержать опцию для строкового типа.

Исправленные ошибки

  • Исправить ошибку проверки ld без g++ в Linux.
  • Устранить проблему компиляции файлов *.cxx.

v2.0.3

Новые возможности

  • Автоматически проверять зависимость включаемых файлов.
  • Добавлять вывод с использованием цветов.
  • Поддерживать отладку, например: xmake run -d program...

Изменения

  • Улучшены интерфейсы запуска оболочки.
  • Обновлён luajit до версии 2.0.4.
  • Оптимизирована скорость многозадачной компиляции.

Исправленные ошибки

  • Исправлена ошибка установки каталога.
  • Исправлены ошибки корневого каталога для интерфейса import.
  • Исправлена проверка ошибок visual stdio в Windows.

v2.0.2

Изменения

  • Изменены действия установки и удаления.
  • Обновились шаблоны.
  • Улучшена проверка функций.

Исправленные ошибки

  • #7: Исправлена проблема создания проекта с '[targetname]'.
  • #9: Поддержка clang с C++11.
  • Исправлен баг с утечкой области действия API.
  • Исправлена ошибка пути для Windows.
  • Исправлена ошибка проверки функции.
  • Исправлена ошибка инструментальных цепочек.
  • Исправлена ошибка компиляции для Android в Windows.

v2.0.1

Новые функции

  • Добавлена задача API для запуска пользовательских задач.
  • Расширены плагины и предоставлены некоторые встроенные плагины.
  • Добавлен экспорт плагина IDE-проекта (например, makefile, который также будет поддерживать экспорт других проектов для VS, Xcode в будущем).
  • Добавлен демонстрационный плагин для печати «hello xmake».
  • Добавлен плагин make doxygen для документов.
  • Добавлен макроскриптовый плагин.
  • Добавлено больше модулей для разработки плагинов.
  • Добавлены исключения с использованием try/catch и упрощена грамматика для скрипта плагина.
  • Добавлены привязки опций.
  • Отображается прогресс при сборке.

Изменения

  • Переписан интерпретатор для xmake.lua.
  • Более строгий механизм обнаружения синтаксиса.
  • Строгий контроль области действия API для xmake.lua.
  • Упрощение разработки шаблонов.
  • Быстрое расширение платформ, инструментов, шаблонов и действий.
  • Упрощён API и поддерживается импорт модулей.
  • Удалена зависимость от GNU make/nmake, больше не нужен makefile.
  • Скорость сборки оптимизирована, ускорение в 4 раза по сравнению с v1.0.4.
  • Оптимизация автоматического обнаружения.
  • Некоторые имена API изменены, но сохранена совместимость со старой версией.
  • Оптимизировано объединение статических библиотек.
  • Упрощено использование кросс-компиляции с аргументом --sdk=xxx.
  • Упрощены логические опции для командной строки, например: xmake config --xxx=[y|n|yes|no|true|false].
  • Объединяются платформы iphoneos и iphonesimulator.
  • Объединяются платформы watchos и watchsimulator.

Исправленные ошибки

  • #3: Ошибка компиляции ArchLinux.
  • #4: Ошибка установки для Windows.
  • Исправлена ошибка переменной среды для Windows.

v1.0.4

Новые функции

  • Поддержка ассемблера Windows.
  • Добавление некоторых шаблонов проектов.
  • Поддержка кодов Swift.
  • Добавлен аргумент -v для вывода более подробной информации.
  • Добавлены платформы Apple: watchos, watchsimulator.
  • Добавлены архитектуры x64, amd64, x86_amd64 для Windows.
  • Поддержка переключения между статической и общей библиотекой.
  • Добавлен аргумент -j/--jobs для поддержки нескольких заданий.

Изменения

  • Улучшен API add_files и добавлена поддержка добавления файлов *.*o/obj/a/lib для объединения статических библиотек и объектных файлов.
  • Оптимизированы установка и удалены некоторые двоичные файлы.

Исправленные ошибки

  • #1: Ошибка установки Win7.
  • Исправлена ошибка проверки инструментальных цепочек.
  • Исправлена ошибка скрипта установки.
  • Исправлена ошибка установки для Linux x86_64.

v1.0.3

Новые функции

  • Добавлен API set_runscript и поддержка пользовательского действия.
  • Добавлен импорт API и поддержка импорта модулей в xmake.lua, например os, path, utils и т. д.
  • Добавлена новая архитектура: arm64-v8a для Android.

Исправленные ошибки

  • Исправлена ошибка API для set_installscript.

  • Исправлена ошибка установки Windows x86_64.

  • Исправлена ошибка относительного пути. Добавление before_config и after_config

  • #5848: Поддержка пользовательских MSVC инструментов, PortableBuildTools и msvc-wine.

  • #5880: Поддержка использования msvc пакетов для сборки проекта.

  • #5884: Добавление пользовательских подсказок при установке пакетов.

Улучшения

  • #5817: Улучшение конфигурации по умолчанию для установки пакетов.
  • #5869: Добавление поддержки библиотеки libstdc++ для GCC.

v2.9.6

Новые функции

  • #5527: Добавление set_policy("compatibility.version", "3.0") для предварительного просмотра функций версии 3.0.
  • #5649: Добавление package.check_fcsnippets.

Улучшения

  • #5631: Добавление параметра as_needed для add_linkgroups.
  • #5702: Улучшение модуля hash.
  • #5688: Улучшение hashset.
  • #5711: Поддержка анализа include зависимостей для sdcc.
  • #5727: Улучшение конфигураций для add_requires.
  • #5762: Повышение скорости bin2c.

Исправления ошибок

  • #5645: Исправление проблемы с отслеживанием рекурсивных файлов в xmake watch на Linux.
  • #5686: Исправление ошибки сканирования модулей.

v2.9.5

Новые функции

  • #5462: Добавление команды xmake l cli.bisect.
  • #5488: Возможность использовать cosmocc для создания двоичных файлов xmake.
  • #5491: Предоставление возможности встраивать Lua файлы в один двоичный файл xmake.
  • #5580: Добавление вспомогательного модуля @builtin/xrepo для быстрой настройки переменных среды с помощью xrepo env shell.

Улучшения

  • #5507: Повышение скорости загрузки при использовании git clone.
  • #5536: Добавление поддержки jar-генераторов в режиме swig.
  • #5573: Улучшение производительности генератора vsxmake.
  • #5601: Улучшение фильтрации путей исходных файлов в utils.symbols.export_all.

Исправления ошибок

  • #4750: Исправление генератора compile_commands для поддержки xmake tests.
  • #5465: Исправление проблем с блокировкой package requires.
  • #4760: Исправление проблем с распределённой компиляцией distcc.

v2.9.4

Новые функции

  • #5278: Добавление стратегии build.intermediate_directory для запрета создания промежуточных каталогов.
  • #5313: Поддержка Windows ARM и ARM64EC.
  • #5296: Поддержка Intel LLVM Fortran компилятора.
  • #5384: Добавление конфигурации add_bindirs для пакетов.

Улучшения

  • #5280: Добавление недостающих расширений файлов C++20 Modules.
  • #5251: Обновление встроенных 7z и curl в установщике Windows.
  • #5286: Улучшение поддержки JSON для шестнадцатеричного разбора.
  • #5302: Улучшение поддержки Vala.
  • #5335: Улучшение xmake install и xpack, добавление интерфейса set_prefixdir.
  • #5387: Улучшение работы xmake test.
  • #5376: Улучшение обработки списков объектов C++ modules и поддержка moduleonly пакетов.

Исправления ошибок

  • #5288: Исправление поддержки xmake test для Unity Build.
  • #5270: Исправление поддержки pch для gcc и clang.
  • #5276: Исправление поиска vc6 окружения.
  • #5259: Исправление неработающего командного завершения. ### Перевод текста на русский язык:

#5005: показать все API

  • #5003: добавить стратегию build.fence
  • #5060: поддержка статической библиотеки Verilator для целей сборки
  • #5074: добавление команды xrepo download для быстрой загрузки исходного кода пакета
  • #5086: добавить поддержку обнаружения пакетов
  • #5103: добавить поддержку qt ts для сборки
  • #5104: улучшить find_program, использовать команду where в Windows для улучшения поиска

Улучшения

  • #5077: при сборке x86-целей использовать компилятор msvc x64
  • #5109: улучшить поддержку add_rpathdirs, поддерживать переключение runpath/rpath
  • #5132: улучшить поддержку ifort/icc/icx в Windows

Исправления ошибок

  • #5059: исправить зависание при загрузке большого количества целей
  • #5029: исправить сбой при работе в termux

v2.9.1

Новые функции

  • #4874: добавить поддержку SDK для Hongmeng
  • #4889: добавить модуль signal для регистрации обработчиков сигналов
  • #4925: добавить поддержку native модуля
  • #4938: увеличить поддержку cppfront/h2

Улучшения

  • Улучшить управление пакетами, поддержать переключение clang-cl
  • #4893: улучшить обнаружение зависимостей rc-заголовков
  • #4928: улучшить скорость сборки и компоновки, особенно при инкрементальной компиляции
  • #4931: обновить pdcurses
  • #4973: улучшить режим сопоставления выбираемых скриптов

Исправление ошибок

  • #4882: исправить проблему с зависимостями установки
  • #4877: исправить проблему сбоя сборки xpack при unit build
  • #4887: исправить проблемы с линковкой объектов

v2.8.9

Новые функции

  • #4843: добавить интерфейс check_bigendian для определения порядка байтов

Улучшения

  • #4798: улучшить обнаружение wasi sdk
  • #4772: улучшить tools.cmake для совместимости с vs2022 preview (v144)
  • #4813: добавить кодировку gb2312
  • #4864: улучшить извлечение символов, поддерживая отладку точек останова gdb
  • #4831: улучшить target:fileconfig() для поддержки headerfiles
  • #4846: улучшить отображение прогресса, решить проблему с неправильным порядком

Исправление ошибок

  • Исправить режим сопоставления select_script для скриптов
  • #4763: исправить {force = true}
  • #4807: исправить nimble::find_package
  • #4857: исправить разбор базовых опций -P/-F и т. д.

v2.8.8

Улучшение

  • Добавить package:check_sizeof()

Исправление ошибок

  • #4774: исправить поддержку strip в NDK r26b для Android
  • #4769: исправить проблему кросс-компиляции инструментальной цепочки
  • #4776: исправить soname
  • #4638: исправить генератор vsxmake

v2.8.7

Новые функции

  • #4544: улучшить xmake test, поддерживая тайм-аут ожидания процесса
  • #4606: добавить add_versionfiles в пакет
  • #4709: добавить поддержку инструментальной цепочки cosmocc
  • #4715: добавить is_cross() в описание домена
  • #4747: добавить build.always_update_configfiles стратегию

Улучшения

  • #4575: обнаружить недействительные параметры домена
  • добавить больше поддержки loong64
  • улучшить поддержку dlang/dmd для фреймворков
  • #4571: улучшить вывод xmake test
  • #4609: улучшить обнаружение среды сборки vs
  • #4614: улучшить поддержку android ndk 26b
  • #4473: включить предупреждения по умолчанию
  • #4477: улучшить runtimes для поддержки libc++/libstdc++ Улучшение механизма сопоставления скриптов
  • #4657: Улучшение механизма сопоставления скриптов.
  • #4673: Рефакторинг поддержки модулей.
  • #4746: Добавление поддержки нативных C++ модулей для генератора CMake.

Исправление ошибок

  • #4596: Исправление проблемы с кэшированием при удалённой сборке.
  • #4689: Исправление ошибки наследования целевых зависимостей.

v2.8.6

Новые функции

  • Добавление стратегии network.mode.
  • #1433: Добавление команды xmake pack для создания установочных пакетов NSIS/zip/tar.gz/rpm/srpm/runself.
  • #4435: Увеличение поддержки batchsize для режима сборки UnityBuild.
  • #4485: Добавление поддержки стратегии package.install_locally.
  • Добавление поддержки NetBSD.

Изменения

  • #4484: Улучшение правил Swig.
  • Улучшения поддержки Haiku.

Исправления ошибок

  • #4372: Исправление ошибок в правилах Protobuf.
  • #4439: Исправление ошибок в правилах ASN1C.

v2.8.5

Новые функции

  • Поддержка изменения порядка ссылок и групп ссылок.
  • Поддержка кода amalgamation.
  • #3381: Добавление поддержки команды xmake test.
  • #4276: Поддержка пользовательских доменных API.
  • #4286: Добавление поддержки Apple XROS.
  • #4345: Поддержка обнаружения типов и размера sizeof.
  • #4369: Добавление стратегии windows.manifest.uac.

Улучшения

  • #4284: Улучшения встроенных модулей includes.

Исправления ошибок

  • #4256: Устранение проблем с intellisense для модулей C++ в генераторе vsxmake.

v2.8.3

Новые функции

  • #4122: Поддержка отладки Lua (EmmyLua).
  • #4132: Поддержка cppfront.
  • #4147: Добавление правил hlsl2spv.
  • Добавление модуля lib.lua.package.
  • #4226: Добавление стратегий, связанных с ASAN, и поддержка пакетов.
  • Добавление стратегии run.autobuild для запуска автоматической сборки перед запуском.
  • Добавление глобальной стратегии xmake g --policies=.

Улучшения

  • #4119: Улучшения интеграции с инструментом emcc и пакетом emscripten.
  • #4154: Добавление опции xmake -r --shallow target для оптимизации перестроения целей.
  • Добавление глобального каталога хранения ccache.
  • #4137: Улучшения Qt, включая поддержку Qt6 for Wasm.
  • #4173: Добавление параметра recheck в on_config.
  • #4200: Улучшения удалённой сборки, включая возможность отладки локального исходного кода xmake.
  • #4209: Добавление предупреждений extra и pedantic.

Исправления ошибок

  • #4110: Исправления проблем с extrafiles.
  • #4115: Исправления в генераторе compile_commands.
  • #4199: Исправления поддержки C++ modules в генераторе compile_commands.
  • Исправления проблемы с перемещением файлов (os.mv) между дисками в Windows.
  • #4214: Исправления проблем со сборкой Rust workspace.

v2.8.2

Новые функции

  • #4002: Увеличение поддержки soname.
  • #1613: Поддержка AVX512 и SSE4.2 для add_vectorexts.
  • #2471: Добавление API set_encodings для установки кодировок исходных и целевых файлов.
  • #4071: Поддержка компилятора sdcc для STM8.
  • #4101: Добавление force includes для C/C++.
  • #2384: Добавление интерфейса add_extrafiles для vs/vsxmake генератора.

Улучшения

  • #3960: Улучшения поддержки msys2/crt64.
  • #4032: Удаление устаревших интерфейсов.
  • Улучшения инструментов.msbuild для обновления vcproj файлов.
  • Поддержка пакетов с использованием add_requires("xmake::xxx").
  • #4049: Улучшения кросс-компиляции Rust.
  • Улучшения поддержки C++ modules под clang.

Исправления ошибок

  • Исправление проблемы, когда дочерние процессы не могли быстро завершиться на macOS/Linux. Улучшения и исправления ошибок:
  • Добавление поддержки zypper для управления пакетами.
  • Улучшение поддержки tools.msbuild для автоматического обновления vsproj.
  • Улучшение поддержки protobuf для grpc.
  • Поддержка add_links для добавления путей к библиотекам.
  • Улучшена поддержка objc прекомпилированных заголовков.
  • Добавлена поддержка путей к файлам библиотек.

Улучшения:

  • Улучшено получение переменных среды на Windows.
  • Улучшена поддержка использования ninja для создания пакетов wasm.
  • Усовершенствован поиск пакетов с помощью pkg-config.
  • Улучшена передача инструментальной цепочки для платформы Windows.
  • Улучшен процесс генерации compile_commands.json.
  • Улучшен поиск пакетов, добавлена возможность поиска по описанию.
  • Улучшено построение программ на Swift, поддерживается вызов символов между модулями.
  • Обновлена версия Lua до 5.4.6.

Исправления ошибок:

  • Исправлен поиск программы с помощью find_tool из xmake/packages.
  • Исправлено использование пакетов из conan 2.x.
  • Исправлены настройки vs_runtime для conan 2.x пакетов.

Новые функции:

  • Добавлена функция wasm.preloadfiles для расширения конфигурации.
  • Поддерживаются версии conan >=2.0.5.

Улучшения:

  • Улучшена поддержка специфических инструментов в cmake генераторе.
  • Улучшены функции xrepo clean.
  • Улучшена поддержка lex/yacc проектов в cmake/make генераторах.
  • Улучшена работа trybuild/cmake.
  • Решена проблема конфликтов файлов при распространении разных каталогов с одинаковыми именами.

Исправление ошибок:

  • Исправлена работа check_cxxfuncs и check_cxxsnippets.
  • Исправлен неработающий URL в xmake update.
  • Исправлено поведение xmake run при загрузке Qt окружения.
  • Исправлена ошибка msys2/mingw, когда os.exec всегда искал неправильную исполняемую программу.
  • Исправлены проблемы с настройкой переменных окружения в msys/mingw.

Новые функции (версия 2.7.8):

  • Анализ производительности компиляции и линковки.
  • Для target добавлены вспомогательные интерфейсы, такие как has_cflags и другие.
  • Добавлен параметр --fix для автоматического исправления ошибок с помощью clang.tidy.

Улучшения (версия 2.7.8):

  • Улучшена поддержка QT в msys2/mingw64 и wasm.
  • Поддержана среда fish shell.
  • Добавлена поддержка инкрементной компиляции для Dlang.
  • Улучшена привязка пакетов к виртуальным средам.
  • Добавлена поддержка swig java.
  • Улучшена поддержка переключения инструментальных цепочек в trybuild/cmake.
  • В msvc отключена кэш сборки для ускорения процесса, так как препроцессор msvc работает слишком медленно.

Исправление ошибок (версия 2.7.8):

  • Автоматическое завершение и menuconf были исправлены.
  • Проблема с кэшированием c++modules была решена.
  • Проблемы с armcc и зависимостями заголовков были решены.

Новые функции (версия 2.7.7):

  • Добавлена поддержка Haiku.
  • Функция xmake check для проверки кода проекта (clang-tidy) и конфигурации API параметров.
  • Возможность настраивать пользовательские HTTP заголовки в пакетах.

Улучшения (версия 2.7.7):

  • Улучшения в инструментарии dlang.
  • Анализатор источников target был улучшен.
  • Оптимизация и strip для dmd/ldc2 были улучшены.
  • Конфигурация для построения каталогов была улучшена, поддерживая внешние каталоги для более чистого дерева каталогов.
  • Поддержка std модулей для clang-17 была улучшена.

Исправление ошибок (версия 2.7.7):

  • Lanuages настройка для Qt проектов была исправлена. Версия 2.7.6

Новые функции:

  • C++ modules: установка и импорт из пакетов (#3228).
  • Поддержка iverilog и verilator (#3257).
  • Поддержка xp и vc6.0.
  • Автоматическое дополнение xrepo install (#3214).

Улучшения:

  • Улучшена поддержка clang libc++ (#3255).
  • Добавлена возможность компиляции xmake с помощью mingw.
  • Усовершенствована совместимость xmake на Windows XP.
  • При использовании внешних зависимостей json-модуль заменён на чистую реализацию lua, зависимость от lua-cjson удалена.

Исправления ошибок:

  • Исправлена проблема с поиском rc.exe в Visual Studio 2015 (#3229).
  • Исправлены проблемы с поддержкой макросов, содержащих пробелы (#3271).
  • Исправлено связывание nim (#3273).
  • Исправлен compile_commands для поддержки clangd (#3286).

Версия 2.7.5

Новые функции:

  • Для xrepo добавлена команда автоматического дополнения (#3201).
  • Добавлен MASM32 sdk (#3233).

Улучшения:

  • Усовершенствован инструмент Intel One API (#3216).
  • Добавлены параметры --lsp=clangd для улучшения генерации compile_commands.json (#3020).
  • В компилятор c51 добавлены includedirs и defines (#3215).
  • Улучшено смешивание компиляторов zig and c (#3251).

Исправление ошибок:

  • Исправлено compile_commands (#3203).
  • Исправлена поддержка прекомпилированных заголовков objc (#3222).
  • Исправлена обработка одного параметра в xmake run (#3240).
  • Исправлена ошибка параллельной записи в mapper при построении модуля clang (#3238).

Версия 2.7.4

Новые функции:

  • Добавлен плагин xmake format (#3049).
  • Добавлено правило plugin.compile_commands.autoupdate.
  • Добавлен файл xmake.sh (#3172).
  • Добавлена поддержка стандарта C++23 для msvc (#3168).

Улучшения:

  • Улучшена поддержка Zig (#3056).
  • Улучшено обнаружение среды msys2 (#3060).
  • Для llvm/clang добавлена поддержка rc-компиляции (#3071).
  • Усовершенствовано использование анализа исходного кода для зависимостей модулей C++20 (#3122).
  • Расширена поддержка частных модулей C++20 (#3125).
  • Поддерживаются модули internal partitions (#3133).
  • По умолчанию поддерживаются пакеты компонентов (#3146).
  • Для auto complete добавлен вывод json (#3192).

Исправление ошибок:

  • Исправлена ошибка requires-lock.
  • Исправлена ситуация, когда некоторые зависимости не устанавливались (#3065).
  • Исправлен генератор build.ninja (#3082).
  • Исправлена логика добавления репозиториев с помощью xrepo add-repo (#3092).
  • Исправлена работа с путями UNC в Windows (#3013).
  • Исправлена проблема, когда файл был занят другим дочерним процессом (#2902).
  • Исправлена настройка параметров ссылок в генераторе CMakelists (#3074).
  • Исправлен порядок импорта модулей C++ (#3141).
  • Исправлена сборка каталога установки инструментов/xmake (#3159). doxygen плагин
  • #2948: Поддержка OpenBSD
  • Добавление xmake g --insecure-ssl=y опции конфигурации для отключения проверки SSL сертификата
  • #2971: Обеспечение согласованности результатов сборки проектов vs/vsxmake
  • #3000: Улучшение поддержки C++ модулей, реализация поддержки инкрементальной компиляции
  • #3016: Улучшение поддержки std модулей в clang/msvc

Исправление ошибок

  • #2949: Исправление проблемы с vs группировкой
  • #2952: Исправление ошибки при обработке длинных команд в armlink
  • #2954: Исправление проблемы с путями в c++ module partitions
  • #3033: Обнаружение циклических зависимостей модулей

v2.7.2

Новые функции

  • #2140: Поддержка Windows Arm64
  • #2719: Добавление стратегии package.librarydeps.strict_compatibility для строгого ограничения совместимости пакетов
  • #2810: Поддержка os.execv для выполнения shell скриптов
  • #2817: Улучшение правил для обеспечения последовательного выполнения зависимостей
  • #2824: Передача кросс-файловой среды компиляции в meson.install и trybuild
  • #2856: Поддержка отладки программ с помощью xrepo из текущего указанного каталога исходного кода
  • #2859: Улучшенное построение сторонних библиотек с использованием xmake-repo репозитория
  • #2879: Лучшее динамическое создание и настройка target и rule
  • #2374: Разрешение xmake пакетам включать пользовательские правила
  • Добавление инструментария clang-cl

Улучшения

  • #2745: Улучшение os.cp для поддержки копирования символических ссылок
  • #2773: Улучшение установки vcpkg пакетов, поддержка платформы FreeBSD
  • #2778: Улучшение xrepo.env для поддержки загрузки целевой среды выполнения
  • #2783: Добавление алгоритмов подписи в WDK signtool инструмент
  • #2787: Улучшение json поддержки пустых массивов
  • #2782: Улучшение поиска matlib sdk и времени выполнения
  • #2793: Улучшение опыта работы с mconfdialog конфигурацией
  • #2804: Поддержка установки зависимостей на macOS arm64/x86_64 для кросс-компиляции
  • #2809: Улучшение оптимизации компилятора msvc
  • Улучшение режима trybuild для предоставления лучшей поддержки кросс-компиляции для meson/autoconf/cmake
  • #2846: Улучшение генерации configfiles
  • #2866: Лучшее управление порядком выполнения правил

Исправления ошибок

  • #2740: Исправление зависания при построении C++ modules с msvc
  • #2875: Исправление ошибки построения linux драйвера
  • #2885: Исправление сбоя pch компиляции с ccache под msvc

v2.7.1

Новые функции

  • #2555: Добавление модуля fwatcher и команды xmake watch плагина
  • Добавление команды xmake service --pull 'build/**' outputdir для извлечения файлов с удалённого сервера сборки
  • #2641: Улучшение C++20 модулей, поддержка headerunits и project генерации
  • #2679: Поддержка Mac Catalyst построения

Улучшения

  • #2576: Улучшение поиска пакетов из cmake, предоставление более гибких опций конфигурации
  • #2577: Улучшение add_headerfiles(), добавление поддержки {install = false}
  • #2603: По умолчанию отключить -fdirectives-only в ccache
  • #2580: Установка stdout в режим буферизации строк
  • #2571: Улучшение алгоритма распределения задач для распределённой компиляции, учёт состояния cpu/memory
  • #2410: Улучшение создания cmakelists
  • #2690: Улучшенная передача toolchains в пакеты
  • #2686: Улучшена поддержка armcc/armclang для инкрементной компиляции
  • #2562: Улучшено разрешение ссылок на файлы и поддержка инкрементной компиляции в rc.exe
  • Улучшен алгоритм параллельного построения задач по умолчанию

Исправления ошибок

  • #2614: Исправлена проблема с построением submodules2 тестового проекта для msvc

  • #2620: Исправлена ошибка, вызванная кэшем построения, которая приводила к проблемам с инкрементальной компиляцией Исходный текст на английском языке:

  • #2177: Fix python.library segmentation fault crash on macOS

  • #2708: Fix mode.coverage rule link error

  • Fix rpath loading path for ios/macOS framework and application

v2.6.9

New features

  • #2474: Add icx and dpcpp toolchain
  • #2523: Improve LTO support
  • #2527: Add set_runargs interface

Improvements

  • Improve tools.cmake support for wasm library build
  • #2491: If server is unreachable, automatically fallback to local compilation and caching
  • #2514: Disable Unity Build for project generator
  • #2473: Improve apt::find_package, support searching from pc file
  • #2512: Improve remote service support timeout configuration

Bug fixes

  • #2488: Fix remote compilation path issue from windows to linux
  • #2504: Fix msys2 remote compile failure issue
  • #2525: Fix stuck issue when installing dependency package
  • #2557: Fix cmake.find_package links error
  • Fix preprocessing file path collision issue caused by cache

v2.6.8

New features

  • #2447: Add qt.qmlplugin rule and qmltypesregistrar support
  • #2446: Support target group installation
  • #2469: Generate vcpkg-configuration.json

Improvements

  • Add preprocessor.linemarkers strategy to disable linemarkers to speed up ccache/distcc
  • #2389: Improve xmake run support parallel running of target program
  • #2417: Switch option/showmenu default value, default enable
  • #2440: Improve error message of failed installation package
  • #2438: Ensure generated vsxmake project will not change randomly
  • #2434: Improve plugin manager, allow multiple plugin management
  • #2421: Improve configuration option menu
  • #2425: Add preprocessor.gcc.directives_only strategy
  • #2455: Improve emcc optimization options
  • #2467: Support fallback to original file compilation, compatible with some issues of msvc preprocessor
  • #2452: Add build.warning strategy

Bug fixes

  • #2435: Fix unable to search package name with .
  • #2445: Fix ccache build failure issue on windows
  • #2452: Fix warning cannot output issue under ccache

v2.6.7

New feature

  • #2318: Add xmake f --policies= configuration parameter to modify default policy

Improvements

  • Automatically fallback to source code package build if precompiled package build fails
  • #2387: Improve pkgconfig and find_package
  • Add build.ccache strategy to configure compilation cache in project

Bug fixes

  • #2382: Modify headeronly package configuration
  • #2388: Fix path issue
  • #2385: Fix cmake/find_package
  • #2395: Fix C++ modules
  • Fix find_qt issue

v2.6.6

New features

  • #2327: Support nvidia-hpc-sdk toolchain nvc/nvc++/nvfortran compiler
  • Add path instance interface
  • #2344: Add lz4 compression module
  • #2349: Add keil/c51 project support
  • #274: Cross-platform distributed compilation support
  • Use built-in local cache instead of ccache

Improvements

  • #2309: Remote compilation support user authorization verification
  • Improve remote compilation, increase support for lz4 compression

Bug fixes

  • Fix lua stack imbalance crash issue when selecting package version

v2.6.5

New features

  • #2138: Support template package

  • #2185: Add --appledev=simulator to improve Apple simulator target compilation support

  • #2227: Improve cargo package, support specifying Cargo.toml file

  • Improve add_requires support git command as version

  • #622: Support remote compilation Добавление интерфейса add_filegroups для генератора vs/vsxmake/cmake

  • Улучшения:*

    • #2137: улучшение модуля path.
    • На macOS размер двоичного файла Xmake уменьшен на 50%.
    • Улучшение инструментов autoconf и cmake для лучшей поддержки переключения инструментальных цепочек.
    • #2221: улучшение API реестра для поддержки Unicode.
    • #2225: добавление поддержки анализа зависимостей и построения для protobuf.
    • #2265: сортировка файлов CMakeLists.txt.
    • Ускорение обхода файлов в os.files.
  • Исправления ошибок:*

    • #2233: исправление проблемы с зависимостями модулей C++.

v2.6.4

  • Новые функции:*

    • #2011: поддержка наследования и локального изменения официальных пакетов, например, для замены URL-адресов и версий существующих пакетов.
    • Поддержка компиляции и запуска xmake на sparc, alpha, powerpc, s390x и sh4.
    • Добавление on_download для пользовательской загрузки в package().
    • #2021: Поддержка сборки программ Swift под Linux и Windows.
    • #2024: Добавление поддержки asn1c.
    • #2031: Добавление поддержки linker scripts и version scripts для add_files.
    • #2033: Перехват ctrl-c для печати текущего стека выполнения для отладки и анализа проблем с зависанием.
    • #2059: Добавление команды xmake update --integrate для интеграции оболочки.
    • #2070: Добавление некоторых встроенных конфигураций среды xrepo.
    • #2117: Поддержка передачи инструментальной цепочки в пакеты для любой платформы.
    • #2121: Поддержка экспорта указанного списка символов для уменьшения размера динамических библиотек.
  • Улучшения:*

    • #2036: Улучшение поддержки xrepo для установки пакетов из конфигурационных файлов, например: xrepo install xxx.lua.
    • #2039: Улучшение отображения фильтров в генераторе vs.
    • #2025: Поддержка создания проектов vs и codesign для целей phony и headeronly.
    • Оптимизация скорости обнаружения vs и codesign.
    • #2077: Улучшение генератора проектов vs для поддержки CUDA.
  • Исправлены ошибки:*

    • #2005: Исправление проблемы с path.extension.
    • #2008: Исправление ошибки компиляции файла манифеста Windows.
    • #2016: Исправление сбоя компиляции в генераторе проектов vs из-за конфликта имён объектных файлов.

v2.6.3

  • Новые функции:*

    • #1298: Поддержка режима списка vcpkg для установки пакетов с возможностью выбора версии.
    • #1896: Добавление правила python.library для создания модулей pybind и поддержка soabi.
    • #1939: Добавление remove_files, remove_headerfiles и пометка del_files как устаревшего интерфейса.
    • Использование on_config в качестве официального открытого интерфейса для target и rule.
    • Добавлена поддержка riscv32/64.
    • #1970: Интеграция C/C++ пакетов через CMake wrapper в CMakelists с использованием xrepo.
    • Встроенное ускорение pac-прокси-файла с помощью зеркала GitHub, доступного через xmake g --proxy_pac=github_mirror.lua.
  • Улучшения:*

    • #1923: Улучшена сборка драйверов Linux с поддержкой настройки пути к пользовательским заголовкам Linux.
    • #1962: Улучшено использование инструментальной цепочки armclang для поддержки сборки asm.
    • #1959: Улучшен генератор проектов vstudio.
    • #1969: Добавлены описания параметров по умолчанию.
  • Исправлены ошибки:*

    • #1875: Исправлена проблема с неудачной установкой при развёртывании программ Qt для Android.
    • #1973: Исправлено объединение статических библиотек.
    • #1982: Исправлена зависимость от c++20 субмодулей при сборке с clang.

v2.6.2

  • Новые функции:*

    • #1902: Поддержка сборки модулей драйверов ядра Linux.
    • #1913: Групповое сопоставление для указания набора целевых программ для сборки и запуска.
  • Улучшения:*

    • #1872: Поддержка экранирования строковых значений в set_configvar.
    • #1888: Улучшен установщик Windows для предотвращения ошибочного удаления файлов из других каталогов установки.
    • #1895: Улучшено правило plugin.vsxmake.autoupdate.
    • #1893: Улучшено обнаружение icc и ifort.
    • #1905: Улучшено msvc для поиска внешних заголовочных файлов.
    • #1904: Улучшен генератор проектов vs201x.
    • Добавлен параметр среды XMAKE_THEME для переключения конфигурации темы. Вот перевод текста на русский язык:

#1907: добавление параметра -f / --force позволяет команде xmake create принудительно создавать в контролируемых каталогах.

  • #1917: улучшение find_package и конфигурации.

Исправленные ошибки

  • #1885: исправление проблемы с порядком ссылок package:fetch_linkdeps.
  • #1903: исправление порядка ссылок пакетов.

v2.6.1

Новые функции

  • #1799: поддержка смешанных программ Rust и C++, а также интеграция зависимостей Cargo.
  • Добавление правила utils.glsl2spv для компиляции файлов шейдеров vert/.frag и создания файлов spirv и двоичных заголовков C.

Улучшения

  • По умолчанию переключение на Lua 5.4 во время выполнения.
  • #1776: улучшение system::find_package, поддержка поиска системных библиотек в переменных окружения.
  • #1786: улучшение apt:find_package, поддержка поиска пакетов alias.
  • #1819: добавление предварительно скомпилированных заголовков в генератор cmake.
  • Улучшение поддержки C++20 Modules для msvc и стандартной библиотеки std.
  • #1792: добавление пользовательских команд в генератор проектов vs.
  • #1835: улучшение поддержки MDK для сборки программ, добавление set_runtimes("microlib").
  • #1858: улучшение сборки c++20 modules, решение проблем с кросс-таргетной сборкой.
  • Добавление переменных среды репозиториев $XMAKE_BINARY_REPO и $XMAKE_MAIN_REPO.
  • #1865: улучшение openmp проекта.
  • #1845: установка файлов pdb для статических библиотек.

Исправление ошибок

  • Исправление проблемы с анализом семантической версии, содержащей строки сборки с префиксом 0.
  • #50: исправление rule и ошибок сборки bpf программы.
  • #1610: исправление проблем с f --menu в vscode терминале и поддержка ConPTY виртуального терминала.

v2.5.9

Новые функции

  • Поддержка инструментальной цепочки wasi-sdk.
  • Поддержка Lua 5.4 времени выполнения.
  • Добавлены инструментальные цепочки gcc-8, gcc-9, gcc-10, gcc-11.
  • #1623: поддержка find_package для поиска пакетов через cmake.
  • #1747: добавлено set_kind("headeronly") для лучшей обработки установки headeronly библиотек.
  • Поддержка Unity build.
  • #1438: добавлен l cli.amalgamate для поддержки объединения кода.
  • Поддержка языка Nim.
  • Управление и переключение определённых конфигураций с помощью xrepo env.
  • Поддержка компилятора Circle.
  • Поддержка Keil/MDK armcc/armclang инструментальной цепочки.
  • #1774: добавлена таблица table.contains api.
  • #1735: добавлены пользовательские команды в cmake генератор.
  • #1781: улучшен get.sh скрипт установки для nixos.

Улучшения

  • Обнаружение особенностей C++17/20.
  • #1729: улучшение C++20 модулей для clang/gcc/msvc, поддержка межмодульных зависимостей и параллельной оптимизации.
  • #1779: улучшена ml.exe/x86, удалена встроенная опция -Gd. Коммит #1726: улучшить генератор compile_commands для поддержки nvcc.

Исправления ошибок:

  • #1671: исправить проблему с некоторыми некорректными абсолютными путями в *.cmake после установки предварительно скомпилированных пакетов.
  • #1689: исправить проблемы с отображением и загрузкой символов Unicode в плагине vsxmake.

Версия 2.5.7

Новые функции:

  • #1534: добавлена поддержка языка Vala.
  • #1544: добавлен инструмент utils.bin2c для автоматического создания файлов .h из двоичных ресурсов и их включения в код C/C++.
  • #1547: опция/фрагменты поддерживают режим проверки и могут получать вывод.
  • #1567: добавлена поддержка блокировки зависимостей xmake-requires.lock.
  • #1597: поддерживается компиляция файлов metal в metallib, а также улучшено создание встроенного default.metallib для приложения через xcode.application.

Улучшения:

  • #1540: улучшена компиляция автоматически сгенерированного кода.
  • #1578: улучшен add_repositories для лучшей поддержки относительных путей.
  • #1582: улучшены установка и поддержка символических ссылок через os.cp.

Исправление ошибок:

  • #1531: исправлена ошибка с сообщением об ошибке при загрузке целей.

Версия 2.5.6

Новые функции:

  • #1483: добавлены функции os.joinenvs() и улучшенные инструменты для работы с пакетами.
  • #1523: добавлены set_allowedmodes, set_allowedplats и set_allowedarchs.
  • #1523: добавлены set_defaultmode, set_defaultplat и set_defaultarch.

Улучшения:

  • Улучшена поддержка vs/vsxmake для VS2022.
  • #1513: улучшена совместимость с windows для предварительно скомпилированных пакетов.
  • Улучшен поиск vcpkg на windows.
  • Улучшена поддержка Qt6.

Исправление ошибок:

  • #489: исправлены некоторые проблемы, возникающие при выполнении os.execv с длинными значениями переменных среды.

Версия 2.5.5

Новые функции:

  • #1421: добавлена возможность устанавливать префиксы, суффиксы и расширения для имён целевых файлов.
  • #1422: добавлена поддержка поиска пакетов в vcpkg и conan.
  • #1424: установлен binary как тип цели по умолчанию.
  • #1140: добавлена возможность вручную выбирать пакеты для установки из сторонних менеджеров пакетов во время установки.
  • #1339: улучшен xmake package для создания нового формата локальных пакетов, бесшовной интеграции add_requires и добавлена поддержка генерации удалённых пакетов.
  • Добавлена поддержка платформы appletvos, можно использовать команду xmake f -p appletvos.
  • #1437: для пакетов добавлена опция headeronly, позволяющая игнорировать vs_runtime.
  • #1351: добавлена поддержка импорта и экспорта текущей конфигурации.
  • #1454: добавлена поддержка загрузки и установки предварительно скомпилированных пакетов для Windows.

Улучшения:

  • #1425: улучшен tools/meson для загрузки среды msvc и добавлены некоторые встроенные конфигурации.
  • #1442: добавлена поддержка скачивания пакетов из git url.
  • #1389: добавлена поддержка добавления сред инструментов в xrepo env.
  • #1453: добавлена поддержка экспорта правил protobuf для поиска заголовков.
  • Поддержка VS2022.

Исправление ошибок:

  • #1413: исправлена проблема с зависанием при поиске пакетов.
  • #1420: исправлены ошибки с кэшированием пакетов и конфигураций.
  • #1445: исправлена ошибка подписи WDK драйверов.
  • #1465: исправлены отсутствующие ссылки на каталоги. Улучшения поиска локальных пакетов
  • #1343: Улучшение поиска локальных файлов пакетов.

Проблемы с добавлением двоичных пакетов в vs_runtime

  • #1347: Проблемы с добавлением двоичных пакетов в конфигурацию vs_runtime.

Ускорение сопоставления файлов

  • #1353: Ускорение сопоставления файлов для улучшения производительности.

Поддержка xrepo env shell и улучшение поддержки PowerShell

  • #1349: Поддержка xrepo env shell для более эффективной работы с PowerShell.

Исправленные ошибки

Проблема с add_packages()

  • #1380: Исправление проблемы с функцией add_packages().

Проблема добавления локального источника git

  • #1381: Исправление проблем с добавлением локального источника git.

Исправление ошибок cuda/nvcc

  • #1391: Исправление ошибок, связанных с cuda/nvcc.

v2.5.3

Новые функции

Добавление поддержки add_files("*.def") для экспорта символов Windows/DLL

  • #1259: Добавлена поддержка функции add_files("*.def"), которая позволяет экспортировать символы Windows/DLL.

Поиск пакета nvtx

  • #1267: Добавлен поиск пакета nvtx.

Добавлена платформа.linux.bpf для сборки программ Linux/BPF

  • #1274: Добавлена платформа.linux.bpf, которая позволяет собирать программы Linux/BPF.

Улучшение find_package с помощью fetchonly пакетов

  • #1280: Улучшена функция find_package за счёт использования пакетов fetchonly.

Автоматическое извлечение удалённых инструментов ndk и интеграция.

Установка файлов pkgconfig и cmake

  • #1268: Добавлены правила установки файлов pkgconfig_importfiles и cmake_importfiles.

Поддержка git longpaths

  • #348: Добавлена стратегия platform.longpaths для поддержки длинных путей в git.

Использование пакетов conda

  • #1314: Поддержка установки пакетов с использованием conda.

Информация о процессоре и базовая версия ядра

  • #1120: Добавлен модуль core.base.cpu и улучшена функция os.cpuinfo().

Встроенные переменные для add_configfiles

  • #1325: В функцию add_configfiles добавлены встроенные переменные git.

Улучшения

Улучшенный генератор vsxmake с поддержкой условной компиляции

  • #1275: Генератор vsxmake был улучшен для поддержки условной компиляции.

Поддержка версий Android ndk r22 и выше

  • #1290: Добавлена поддержка версий Android ndk r22 и выше.

Путь к dll для проектов vsxmake

  • #1311: Для проектов vsxmake добавлен путь к dll, чтобы обеспечить корректную загрузку при отладке.

Исправления ошибок

Исправлена ошибка в add_repositories

  • #1266: Исправлена ошибка, связанная с относительными путями в функции add_repositories.

Исправлены проблемы с опциями в плагине vsxmake

  • #1288: Исправлены проблемы, связанные с обработкой опций в плагине vsxmake.

v2.5.2

Новые функции

Zig cc и zig c++ как компиляторы C/C++

  • #955: Поддержка Zig cc и Zig c++ в качестве компиляторов C/C++.

Перекрёстная компиляция с zig

  • #955: Возможность перекрёстной компиляции с использованием Zig.

Улучшенное обнаружение терминалов и цветовых кодов

  • #1177: Улучшено обнаружение терминалов и использование цветовых кодов.

Передача пользовательских includes скриптов в xrepo

  • #1216: Возможность передавать пользовательские includes скрипты в xrepo.

Получение информации о системе Linux

  • Добавлен встроенный модуль linuxos для получения информации о системе Linux.

Автоматическое получение инструментальных цепочек при компиляции проекта

  • #1217: Автоматическое получение инструментальных цепочек во время компиляции проекта.

Экспорт всех символов из Windows/DLL с помощью rule("utils.symbols.export_all")

  • #1123: Добавлена возможность автоматического экспорта всех символов Windows/DLL с помощью функции rule("utils.symbols.export_all").

Преобразование mingw/xxx.dll.a в msvc xxx.lib с помощью utils.platform.gnu2mslib

  • #1181: Добавлена функция utils.platform.gnu2mslib для преобразования mingw/xxx.dll.a в формат msvc xxx.lib.

Упрощение реализации правил с новыми командами пакетной обработки

  • #1246: Улучшены правила для упрощения реализации с использованием новых команд пакетной обработки.

Расширенные возможности поиска внешних пакетов с add_extsources

  • #1239: Расширены возможности поиска внешних пакетов с помощью функции add_extsources.

Возможность добавления .manifest файлов в Windows программы

  • #1241: Добавлена возможность добавлять .manifest файлы в Windows программы.

Удаление всех пакетов с xrepo remove --all

  • Возможность удаления всех пакетов с помощью команды xrepo remove --all.

Наследование конфигурации пакетов от родительских целей

  • #1254: Наследование конфигурации пакетов от родительских целевых объектов.

Улучшения

Дополнительные пути поиска заголовков Qt

  • #1226: Добавлены дополнительные пути поиска для заголовков Qt.

Обновление стандарта C++ для поддержки Qt6

  • #1183: Обновлён стандарт C++ для обеспечения совместимости с Qt6.

Qt.ui файлы для vs/vsxmake плагинов

  • #1237: Поддержка Qt.ui файлов для vs/vsxmake плагинов.

Улучшенная поддержка precompiled headers и intellisense для vs/vsxmake

  • Улучшена поддержка precompiled headers и intellisense для vs/vsxmake.

Упрощённые пользовательские правила

  • #1090: Правила упрощены для удобства использования.

Компиляция protobuf с поддержкой compile_commands генератора

  • #1065: Компиляция protobuf теперь поддерживает генератор compile_commands.

Запуск настроек проекта для vs/vsxmake генератора

  • #1249: Генератор vs/vsxmake теперь поддерживает запуск настроек проекта.

Порядок ссылок в add_deps и add_packages

  • #605: Порядок ссылок в функциях add_deps и add_packages стал более предсказуемым.

Удалены устаревшие интерфейсы add_defines_h_if_ok и add_defines_h

  • Устаревшие интерфейсы add_defines_h_if_ok и add_defines_h удалены.

Исправления ошибок

Обновления версии и исправления ошибок

  • #1219: Исправлены ошибки, связанные с обновлением версии.

Проблему с пробелами в путях поиска includes

  • #1235: Исправлена проблема с пробелами в путях поиска includes. Вот перевод текста на русский язык:

#1035: графическая конфигурация меню полностью поддерживает события мыши, и добавлен скроллинг.

  • #1098: поддерживается передача stdin в os.execv для перенаправления ввода.
  • #1079: для плагина vsxmake добавлена функция автоматического обновления проекта, add_rules("plugin.vsxmake.autoupdate").
  • Добавлены команды xmake f --vs_runtime=MT и set_runtimes("MT") для более удобного управления таргетами и пакетами.
  • #1032: поддерживается перечисление ключей и значений реестра.
  • #1026: поддерживается настройка групп для проектов vs/vsmake.
  • #1178: добавлен интерфейс add_requireconfs() для перезаписи конфигурации зависимостей пакетов.
  • #1043: для модулей luarocks добавлено правило сборки luarocks.module.
  • #1190: добавлена поддержка устройств Apple Silicon (macOS ARM).
  • #1145: поддерживается установка и развёртывание программ Qt на Windows, спасибо @SirLynix.

Улучшения

  • #1072: исправлены и улучшены зависимости заголовков компилятора cl.
  • Для модуля ui и команды xmake f --menu добавлена поддержка utf8.
  • Улучшена поддержка языка zig на macOS.
  • #1135: улучшено одновременное управление конфигурацией для нескольких платформ и инструментов.
  • #1153: улучшен инструмент llvm для macOS, добавлена поддержка isysroot.
  • #1071: улучшена поддержка удалённых зависимостей для плагинов vs/vsxmake.
  • Улучшено управление архитектурой для плагинов генерации проектов vs/vsxmake.
  • #1164: улучшена отладка плагинов vsxmake при загрузке консольных программ.
  • #1179: улучшен инструмент llvm, добавлена поддержка isysroot.

Исправления ошибок

  • #1091: исправлена ошибка с неправильным наследованием зависимостей.
  • #1105: исправлена проблема с интеллектуальными подсказками для C++ в плагине vsxmake.
  • #1132: устранена проблема с усечением путей в конфигурации плагина vsxmake.
  • #1142: решена проблема с поиском git при установке пакетов.
  • Исправлена проблема с версией macOS Big Sur.
  • #1084: исправлена проблема с обработкой макроопределений в команде add_defines(), где использовались двойные кавычки и пробелы.
  • #1195: устранены проблемы с кодировкой Unicode, улучшено обнаружение и выполнение процессов в среде vs.

v2.3.9

Новые функции

  • Добавлена новая команда xrepo для управления установкой C/C++ пакетов.
  • Поддерживается установка кросс-компилируемых зависимостей.
  • Добавлено управление инструментами на musl.cc.
  • #1009: поддерживается игнорирование проверки при установке любой версии пакета, add_requires("libcurl 7.73.0", {verify = false}).
  • #1016: добавлена проверка совместимости лицензий для зависимостей пакетов.
  • #1017: поддерживается использование внешних/системных заголовочных файлов с помощью команды add_sysincludedirs, по умолчанию зависимости используют -isystem.
  • #1020: поддерживается поиск пакетов pacman на archlinux и msys2.
  • Усовершенствовано управление меню с помощью команды xmake f --menu, добавлена поддержка операций с мышью.

Улучшения

  • #997: плагин xmake project -k cmake теперь поддерживает команду set_languages.
  • #998: поддерживается установка пакетов vcpkg типа windows-static-md.
  • #996: улучшено управление каталогами vcpkg.
  • #1008: улучшено управление кросс-компиляцией инструментов.
  • #1030: улучшено управление xcode.framework и xcode.application.
  • #1051: добавлены типы отладочной информации edit и embed для компиляторов msvc в команду set_symbols().
  • #1062: улучшен плагин xmake project -k vs.

v2.3.8

Новые функции

  • #955: добавлен шаблон пустого проекта Zig.
  • #956: добавлена платформа Wasm и поддержка Qt/Wasm SDK.
  • Обновлён luajit до последней ветки v2.1, поддерживается запуск xmake на mips64.
  • #972: добавлена команда depend.on_changed() для упрощения обработки файлов зависимостей.
  • #981: добавлена команда set_fpmodels() для абстрагирования настройки компиляции math/float-point.
  • #980: добавлена полная поддержка компиляторов Intel C/C++ и Fortran для всех платформ.
  • #986: добавлена поддержка c11/c17 для компиляторов msvc версии 16.8 и выше.
  • #979: добавлена поддержка OpenMP для разных платформ с использованием команды add_rules("c++.openmp").

Улучшения

  • #958: улучшена работа с mingw, добавлена поддержка llvm-mingw. Поддержка инструментальных цепочек и архитектур arm64/arm.
  • Добавление режима add_requires("zlib~xxx") для поддержки одновременной установки пакетов с различными конфигурациями в качестве независимых пакетов.
  • Улучшение обнаружения find_mingw на Windows.
  • Оптимизация флагов инструментальной цепочки.
  • Усовершенствование инструментальной цепочки XCode для macOS/arm64.

Исправление ошибок

  • Исправление поддержки emcc (WebAssembly) в инструментальной цепочке на Windows.
  • Решение проблемы, когда иногда не удавалось открыть файл блокировки.

v2.3.7

Новые функции

  • Поддержка установки xmake через winget.
  • Добавлен пакет xmake-tinyc с встроенным компилятором tinyc, который позволяет компилировать код C на Windows без среды msvc.
  • Введена инструментальная цепочка tinyc.
  • Интеграция инструментальной цепочки emcc (emscripten) для компиляции asm.js и WebAssembly.
  • Настройка приватного сетевого режима с помощью команды xmake g --network=private для предотвращения доступа к внешним зависимостям при компиляции.

Улучшения

  • Улучшена оптимизация линкера msvc для создания более компактных исполняемых файлов.
  • Повышено качество поддержки Qt на Ubuntu.
  • Улучшено обнаружение инструментальной цепочки CUDA 11.
  • Дальнейшее улучшение поддержки Qt, включая обнаружение Qt SDK, установленного через Ubuntu/apt.
  • Обновлён генератор CMake для проектов.
  • Экспорт всех зависимостей при создании пакета.
  • Попытка загрузки пакета, если его определение не содержит версии.
  • Обновление Android NDK для поддержки переключения между режимами arm и thumb.
  • Улучшены инструментальные цепочки Trybuild/CMake для Android/Mingw/iPhoneOS/WatchOS.

Исправления ошибок

  • Решена проблема с неудачной установкой пакетов vcpkg.
  • Исправлена ошибка в пользовательской инструментальной цепочке.
  • Решён вопрос с появлением bad light userdata pointer при запуске Lua на части устройств aarch64.

v2.3.6

Новые возможности

  • Внедрение генератора проектов Xcode с использованием команды xmake project -k cmake (текущая реализация основана на CMake).
  • Поддержка компилятора gfortran.
  • Поддержка компилятора zig.
  • Введение модуля json.
  • Улучшенная поддержка сборки проектов Golang с поддержкой кросс-компиляции.
  • Возможность интеграции сторонних пакетов Go через менеджер пакетов go.
  • Поддержка менеджера пакетов dub для интеграции сторонних Dlang зависимостей.

Улучшения

  • Поддержка нового формата вывода файлов заголовков cl.exe с опцией /sourceDependencies xxx.json.
  • Улучшения в кросс-компилируемых инструментальных цепочках.

v2.3.5

Новые возможности

  • Команда xmake show -l envs для отображения списка встроенных переменных среды xmake.
  • Поиск локальных пакетов для непосредственной установки удалённых зависимостей из указанного каталога.
  • Глобальная настройка прокси для wget, curl и git.

Улучшения

  • Расширение правил protobuf для импорта файлов proto из подкаталогов.
  • Режим mode.minsizerel оптимизирован для msvc с добавлением поддержки /GL.
  • Протобуф поддерживает импорт файлов из нескольких уровней подкаталогов.
  • Полная перепись встроенных правил сборки с возможностью переопределения.
  • Анализ зависимостей заголовков для файлов rc.
  • Исключение зависимости от глобальных переменных окружения в msvc инструментальной цепочке.
  • Переключение на хост-инструментальную цепочку при кросс-компиляции для конкретного target.

Исправления ошибок

  • Исправлены проблемы с отображением прогресса.
  • Решено несоответствие пути sysroot на macOS из-за нечувствительности системы к регистру.
  • Проблема с поиском пакетов в режиме debug решена. Проблемы, решённые в версии 2.3.3:
  • Проверка правильности включения каталогов includedirs, linkdirs и frameworkdirs.
  • Визуализация конфигурационного меню с поддержкой изменения размера окна при помощи команды xmake f --menu.
  • Автоматическое обнаружение ошибок при добавлении флагов конфигурации add_cxflags и подобных.
  • Поддержка генерации cmakelists для добавления фреймворков.
  • Независимые рабочие каталоги и каталоги сборки, сохранение чистоты каталога проекта.

Исправленные ошибки:

  • Ошибка в проверке зависимостей заголовочных файлов.
  • Проблема с символами отладки на Linux при использовании gcc strip.

Новые функции версии 2.3.3:

  • Генерация файлов символов so и dSYM для приложений Android и iOS.
  • Компиляция программ objc и пакетов bundle.
  • Компиляция программ framework для iOS.
  • Добавление новых шаблонов проектов, поддержка компиляции программ для macOS, iOS и Android, а также добавление некоторых вспомогательных инструментов для работы с пакетами ipa.
  • Расширение xmake.cli для поддержки разработки расширений lua с использованием движка xmake/core.

Улучшения версии 2.3.3:

  • Улучшение правила qt.widgetapp для использования приватных слотов в Qt.
  • Улучшенная поддержка Qt для версии 5.14.0 на платформе Android.

Проблемы, решённые в версии 2.3.2:

  • Добавлена цветовая тема powershell для отображения цветов фона в терминале powershell.
  • Команда xmake --dry-run -v для просмотра подробной информации о сборке без фактического выполнения.
  • Добавлена платформа sdcc и поддержка компилятора sdcc.

Улучшения версии 2.3.2:

  • Оптимизация скорости сборки с использованием параллельной компиляции и компоновки для разных целей, скорость сравнима с ninja.
  • Улучшения в генераторе файлов cmake и ninja для проектов.
  • Поиск пакетов с использованием homebrew и cmake.
  • Использование актуальных имён abi для android ndk.

Исправления ошибок версии 2.3.2:

  • Исправлена проблема с отображением ошибок компоновки в Windows.
  • Решена проблема с кэшированием загруженных зависимостей при использовании нескольких зеркал.
  • Устранена проблема с бесконечным циклом установки из-за некорректных зависимостей пакетов.
  • Исправлен сбой дочернего процесса после получения сигнала ctrlc в главном процессе в Windows.
  • Исправлено экранирование путей в генераторе команд компиляции.

Функции версии 2.3.1:

  • Возможность компилировать файлы c как код C++ с помощью команды add_files(".c", {sourcekind = "cxx"})*.
  • Поддержка компиляции xmake на платформах msys и cygwin, а также их добавление.
  • Включение модулей socket и pipe, поддержка одновременного планирования процессов, сокетов и каналов в сопрограммах.
  • Попытка сборки проектов с использованием сторонних систем сборки, включая поддержку кросс-компиляции проектов autotools.
  • Выделение цветом ошибок компиляции с использованием gcc и clang.
  • Улучшенный генератор проектов для ninja, добавлена поддержка файлов build.ninja.

Улучшения версии 2.3.1:

  • Поддержка стиля параметров nix, благодаря вкладу OpportunityLiu.
  • Улучшенное завершение табуляцией, добавлена поддержка завершения значений параметров.
  • Оптимизированный скрипт установки get.sh, добавлены локальные зеркала для ускорения загрузки.
  • Улучшен планировщик процессов.
  • Улучшено сообщение об ошибках системы os/io.

Исправления ошибок версии 2.3.1:

  • Устранение проблем с зависимостями при инкрементальной компиляции.
  • Решение проблемы с анализом ошибок компиляции плагином xmake-vscode.
  • Устранение ошибок компоновщика android ndk в Windows.

Функции версии 2.2.9:

  • Экспериментальная поддержка модулей C++.
  • Генератор проектов на основе xmakefile.
  • Глобальный файл конфигурации ~/.xmakerc.lua, который применяется ко всем локальным проектам.
  • Модуль core.base.socket для подготовки к удалённой компиляции и распределённой компиляции.

Улучшения версии 2.2.9:

  • Переработана логика сборки, чтобы отделить специфичные для языка правила сборки.
  • Разделено правило Qt application на Qt widgetapp и Qt quickapp.
  • Вместо add_tools и set_tools используется set_toolchain, что упрощает настройку и делает её более понятной.
  • Улучшена работа xmake create по созданию шаблонов проектов.
  • Оптимальное количество задач сборки для полного использования процессорных ядер и ускорения общей скорости компиляции.
  • На macOS улучшен поиск системных библиотек с расширением .tbd. Поддержка установки и использования других архитектур и версий Conan-пакетов:
  • #629: улучшение hash.uuid и реализация uuid v4;
  • #639: улучшение анализатора параметров с поддержкой стиля -jN.

Исправленные ошибки:

  • #567: устранена проблема с утечкой памяти при сериализации объектов;
  • #566: исправлена проблема с порядком ссылок при установке удалённых зависимостей;
  • #565: исправлена проблема с настройкой PATH для пакетов vcpkg;
  • #597: решена проблема с длительным временем установки пакетов xmake require;
  • #634: улучшено правило mode.coverage и улучшена проверка флагов.

Версия 2.2.8

Новые функции:

  • добавлены правила сборки protobuf для C/C++;
  • #468: добавлена поддержка UTF-8 для Windows;
  • #472: добавлен xmake project -k vsxmake для лучшей поддержки проектов VS;
  • #487: добавлена возможность компиляции указанного набора файлов с помощью команды xmake --files="src/*.c";
  • в модуль io добавлены интерфейсы для работы с файловыми блокировками;
  • #513: добавлена поддержка Android/Termux, позволяющая выполнять xmake на устройствах Android;
  • #517: добавлен интерфейс add_cleanfiles для быстрой настройки очистки файлов;
  • #537: добавлен интерфейс set_runenv для переопределения системных переменных окружения.

Улучшения:

  • #257: блокировка текущего проекта во время сборки для предотвращения одновременной работы других процессов xmake;
  • попытка использования /dev/shm в качестве os.tmpdir для улучшения производительности чтения и записи временных файлов во время процесса сборки;
  • #542: улучшение обработки Unicode в инструментах серии VS;
  • для установленных Lua-скриптов включена поддержка хранения байт-кода, что уменьшает размер установочных пакетов (<2,4 М) и повышает скорость загрузки.

Устранённые ошибки:

  • #549: решена проблема зависания при проверке среды в новой версии VS2019.

Версия 2.2.7

Новые функции:

  • #455: поддержка clang в качестве компилятора CUDA (xmake f --cu=clang);
  • #440: добавлены интерфейсы set_rundir() и add_runenvs() для настройки target/run;
  • #443: добавлена поддержка автозаполнения команд в командной строке;
  • добавлены возможности on_link, before_link и after_link для пользовательских сценариев в rule/target;
  • #190: добавлены правила add_rules("lex", "yacc") для поддержки проектов lex/yacc.

Улучшения:

  • #430: добавлен API add_cugencodes() для улучшения настройки codegen для CUDA;
  • #432: добавлена поддержка анализа зависимостей для проектов CUDA, поддерживающих CUDA 10.1+;
  • #437: возможность указывать источник обновления (например, xmake update github:xmake-io/xmake#dev);
  • #438: возможность обновлять только скрипты (например, xmake update --scriptonly dev);
  • #433: улучшена поддержка device-link для устройств CUDA;
  • #442: улучшены тесты в тестовой среде.

Для более точного перевода необходимо предоставить полный текст запроса. Перевод текста на русский язык:

#320: добавить связанные с конфигурационными файлами шаблоны интерфейсов add_configfiles и set_configvar.

  • #179: расширить плагин xmake project, добавив поддержку генерации CMakelist.txt.
  • #361: улучшить поддержку vs2019 preview.
  • #368: поддерживать настройку свойств private, public, interface для наследования конфигурации target.
  • #284: передавать пользовательские настройки в package() через add_configs(), добавляя их.
  • #319: добавить интерфейс add_headerfiles для улучшения настройки заголовочных файлов.
  • #342: добавить некоторые встроенные вспомогательные функции в includes(), такие как check_cfuncs.

Улучшения

  • Улучшить управление удалёнными зависимостями пакетов.
  • #264: поддержка обновления dev/master версии на Windows, используя команду xmake update dev.
  • #293: добавить конфигурацию выбора линии xmake f/g --mingw=xxx и улучшить обнаружение find_mingw.
  • #301: улучшить компиляцию препроцессора и генерацию зависимых заголовочных файлов, что повышает скорость компиляции на 30%.
  • #322: добавить option.add_features, option.add_cxxsnippets и option.add_csnippets.
  • Удалить некоторые устаревшие интерфейсы xmake 1.x, такие как add_option_xxx.
  • #327: улучшить lib.detect.find_package, добавив поддержку менеджера пакетов Conan.
  • Улучшить lib.detect.find_package и добавить встроенный интерфейс find_packages("zlib 1.x", "openssl", {xxx = ...}).
  • Отметить set_modes() как устаревший интерфейс, заменив его на add_rules("mode.debug", "mode.release").
  • #353: улучшить target:set, target:add и добавить target:del для динамического изменения конфигурации target.
  • #356: добавить интерфейс qt_add_static_plugins() для поддержки статического Qt sdk.
  • #351: улучшить генерацию плагина vs201x, добавив поддержку yasm.
  • Переработать управление удалёнными пакетами зависимостей, сделав его более быстрым, стабильным и надёжным, а также предоставить больше часто используемых пакетов.

Исправление ошибок

  • Исправить проблему, когда set_optimize() не мог установить параметры оптимизации при наличии add_rules("mode.release")
  • #289: исправить проблему с распаковкой gzip-файлов на Windows.
  • #296: исправить ситуацию, когда option.add_includedirs не работал для компиляции CUDA.
  • #321: исправить проблемы с поиском инструментов после изменения PATH.

v2.2.3

Новые функции

  • #233: поддержка windres для платформы mingw.
  • #239: добавление поддержки компилятора cparser.
  • Плагин-менеджер, доступный через команду xmake plugin --help.
  • Интерфейс add_syslinks для установки зависимостей системных библиотек, отделяя их от зависимостей библиотек, добавленных через add_links.
  • Команда xmake l time xmake [--rebuild] для записи времени компиляции.
  • #250: возможность указать версию windows sdk с помощью команды xmake f --vs_sdkver=10.0.15063.0.
  • Расширения модулей lib.luajit.ffi и lib.luajit.jit.
  • #263: объектный целевой тип для компиляции только объектных файлов.
  • #269: ежедневное автоматическое удаление временных файлов за последние 30 дней при первом построении.

Улучшения

  • #229: улучшение выбора набора инструментов vs для проектов vcproj.
  • Улучшение управления зависимостями компиляции для отслеживания изменений в списке исходных файлов.
  • Поддержка распаковки файлов *.xz.
  • #249: улучшение формата отображения информации о ходе компиляции.
  • #247: замена --backtrace на -D или --diagnosis для улучшения диагностики.
  • #259: улучшения интерфейсов on_build, on_build_file и on_xxx.
  • Усовершенствование управления удалёнными пакетами, делая его более удобным для переключения конфигураций зависимостей.
  • Только поддержка установки зависимостей для заголовков пакетов.
  • Возможность вручную настраивать встроенные ссылки в пакетах, используя add_packages("xxx", {links = {}}).

Исправления ошибок

  • Исправлена проблема с прерыванием установки зависимостей и сохранением состояния.

v2.2.2

Новые функции

  • Поддержка ассемблера fasm.
  • Интерфейсы has_config, get_config и is_config для быстрой проверки опций и значений конфигурации.
  • Интерфейс set_config для установки значений по умолчанию.
  • Команда $xmake --try для попытки сборки проекта.
  • Отключение целевых объектов с помощью set_enabled(false).
  • #69: удалённый менеджер пакетов зависимостей с командой add_requires("tbox ~1.6.1").
  • #216: поддержка компиляции MFC для Windows.

Улучшения

  • Улучшенное обнаружение среды Qt, включая поддержку mingw sdk.
  • Автоматическое сканирование сгенерированного xmake.lua для добавления правил debug/release по умолчанию.
  • #178: изменение имён целей на платформе mingw.
  • Поддержка нечувствительных к регистру путей для add_files() на Windows.
  • Улучшено обнаружение корня Qt с помощью detect.sdks.find_qt.
  • #184: улучшена поддержка vcpkg в lib.detect.find_package.
  • #208: улучшенная поддержка rpath для динамических библиотек.
  • #225: улучшенное обнаружение сред vs.

Исправления ошибок

  • Вот перевод текста на русский язык:

#177: Исправление проблемы с ошибкой связывания динамической библиотеки target, если установлено basename.

  • Исправление проблем Exit и высокой загрузки процессора в $ xmake f --menu.
  • #197: Исправление проблемы с искажением пути в сгенерированных vs201x файлах проекта.
  • Исправление проблемы с синим экраном при запуске драйвера, созданного с использованием правил WDK, в Win7.
  • #205: Исправление проблемы несоответствия настроек objectdir и targetdir в путях проектов vcproj.

v2.2.1

Новые функции

  • #158: Поддержка компиляции среды Cuda.
  • Добавление интерфейсов set_tools и add_tools для настройки цепочки инструментов компилятора для конкретных целевых объектов.
  • Добавление встроенных правил: mode.debug, mode.release, mode.profile и mode.check.
  • Добавление внутренних функций is_mode, is_arch и is_plat в пользовательские скрипты.
  • Добавление кода color256.
  • #160: Поддержка кроссплатформенной компиляции Qt SDK и добавление правил qt.console, qt.application и т. д.
  • Включение некоторых шаблонов проектов Qt.
  • #169: Поддержка ассемблера yasm.
  • #159: Поддержка среды компиляции WDK.

Улучшения

  • Добавление FAQ в автоматически генерируемый файл xmake.lua для удобства пользователей.
  • Поддержка версии Android NDK >= r14.
  • Улучшение поддержки warning flags в swiftc.
  • #167: Улучшение пользовательских правил: rule().
  • Ускорение сопоставления файлов и каталогов с помощью улучшенных функций os.files и os.dirs.
  • #171: Улучшение зависимостей сборки в среде Qt.
  • Реализация команды make clean в плагинах для создания makefile.

Исправления ошибок

  • Исправлено отсутствие возможности принудительной установки нескольких флагов с помощью add_ldflags("xx", "xx", {force = true}).
  • #157: Исправлена ошибка сбоя компиляции при отсутствии каталога вывода символов pdb.
  • Исправлена проблема с потерей символов при использовании формата macho.
  • #168: Исправлена генерация плагинов vs201x, которые не работали в x64.

v2.1.9

Новые функции

  • Добавлена функция del_files() для удаления файлов из списка добавленных файлов.
  • Добавлены функции rule(), add_rules() для реализации пользовательских правил сборки и улучшения add_files("src/*.md", {rule = "markdown"}).
  • Добавлена функция os.filesize().
  • Добавлен модуль core.ui.xxx и другие компоненты модуля cui для визуализации интерфейса терминала, используемого для взаимодействия с пользователем.
  • Реализована визуализация меню конфигурации с помощью xmake f — menu для упрощения конфигурации сборки.
  • Добавлена функция set_values в option.
  • Улучшена поддержка option, позволяющая автоматически генерировать визуальные меню конфигурации на основе пользовательских опций в проекте.
  • Добавлено указание местоположения исходных файлов при вызове api для настройки конфигурации проекта или в меню конфигурации.

Улучшения

  • Улучшено управление кросс-инструментальной цепочкой путём указания псевдонимов инструментов для известных инструментальных цепочек, например: xmake f — cc=gcc@ccmips.exe.
  • #151: Улучшена генерация динамических библиотек в среде mingw.
  • Улучшен плагин для генерации makefile.
  • Улучшены сообщения об ошибках.
  • Улучшена настройка флагов api, таких как add_cxflags, с добавлением параметра force для отключения автоматического обнаружения и отображения, а также для принудительного применения параметров: add_cxflags("-DTEST", {force = true})
  • Улучшена установка флагов в add_files с добавлением поля force для установки исходных флагов без автоматического обнаружения и сопоставления: add_files("src/*.c", {force = {cxflags = "-DTEST"}}).
  • Улучшен поиск корневого каталога проекта.
  • Улучшено обнаружение vs-среды, включая поддержку зашифрованных файловых систем.
  • Обновлён luajit до последней версии 2.1.0-beta3.
  • Расширена поддержка Linux/arm и arm64, что позволяет запускать xmake на arm Linux.
  • Улучшен плагин vs201x для генерации проектов, обеспечивающий лучшую поддержку includedirs.

Исправления ошибок

  • Исправлены проблемы с изменением зависимостей при компиляции и компоновке.
  • #151: Исправлена проблема, возникающая при использовании os.nuldev() в gcc на mingw.
  • #150: Исправлена проблема сбоя при передаче слишком длинного списка obj в ar.exe на Windows.
  • Исправлена невозможность настройки с помощью cross в xmake f — cross.
  • Исправлена проблема перехода в корневой каталог Windows с помощью os.cd.

v2.1.8

Новые функции

  • Добавлена переменная окружения XMAKE_LOGFILE для вывода в файл журнала.
  • Поддерживается компилятор tinyc.

Улучшения

  • Улучшена интеграция с IDE и редакторами, такими как Visual Studio Code, Sublime Text и IntelliJ IDEA.
  • При создании нового проекта автоматически создаётся файл .gitignore, игнорирующий некоторые временные файлы и каталоги xmake.
  • Улучшено создание шаблонов проектов с использованием имён шаблонов вместо идентификаторов.
  • Улучшено определение платформы macOS для компиляции, позволяющее выполнять компиляцию даже при отсутствии xcode.
  • Улучшена функция set_config_header, поддерживающая локальные версии и предпочитающая их глобальным настройкам set_version, например: set_config_header("config", {version = "2.1.8", build = "%Y%m%d%H%M"}).

Исправления ошибок

  • #145: Исправлен текущий каталог при выполнении target.

v2.1.7

Новые функции

  • Функция add_imports для добавления модулей в target, option и package для упрощения пользовательских скриптов.
  • Команда xmake -y/—yes для подтверждения ввода пользователя.
  • Модуль xmake l package.manager.install xxx для обеспечения согласованности установки программного обеспечения на разных платформах.
  • Поддержка редактора VSCode, облегчающая использование xmake (xmake-vscode).
  • Макрос xmake macro .. для быстрого запуска последней команды.

Улучшения

  • Улучшенная функция cprint() с поддержкой 24-битного истинного цвета.
  • Для add_rpathdirs() добавлена поддержка переменных @loader_path и $ORIGIN для обеспечения переносимости динамических библиотек.
  • Улучшена set_version("x.x.x", {build = "%Y%m%d%H%M"}) с поддержкой buildversion.
  • Удалён каталог docs, размещённый в отдельном репозитории xmake-docs, для уменьшения размера xmake.zip и оптимизации загрузки.
  • Улучшенные сценарии установки и удаления с поддержкой DESTDIR и PREFIX.
  • Оптимизация флагов для ускорения компиляции.
  • Переменная окружения COLORTERM=nocolor для отключения цветного вывода.
  • Удаление функций add_rbindings и add_bindings.
  • Запрет цветного вывода при перенаправлении для предотвращения искажения вывода файлами с цветовыми кодами.
  • Обновление шаблона tbox.
  • Улучшенный интерфейс lib.detect.find_program.
  • Цветной вывод для командной строки Windows cmd.
  • Параметр -w|--warning для включения вывода предупреждений в реальном времени.

Исправления ошибок

  • Исправлено отсутствие наследования флагов компиляции в set_pcxxheader.
  • #140: Исправлена конфликтная ситуация с os.tmpdir() при использовании fakeroot. Перевод текста на русский язык:

#142: Исправление проблемы с кодировкой os.getenv в Windows.

  • Исправлено: проблема с компиляцией при наличии пробелов в пути.
  • Исправлено: сбой setenv при пустом значении.

v2.1.6

Улучшения

  • Улучшено add_files: добавлена поддержка различных конфигураций для файлов, что делает процесс более гибким.
  • Наследование links и linkdirs от зависимостей target и option.
  • Улучшен интерфейс target.add_deps: добавлено наследование конфигурации, а также возможность ручного запрета наследования зависимостей, например: add_deps("test", {inherit = false}).
  • Удалена зависимость от tbox.pkg, вместо этого tbox интегрирован напрямую в исходный код.

Исправленные ошибки

  • Исправлена проблема с каскадными зависимостями целей.
  • Исправлены проблемы с target:add и option:add.
  • Исправлена ошибка компиляции и установки на archlinux.
  • Исправлена совместимость с /ZI, заменено на /Zi.

v2.1.5

Новые функции

  • #83: Добавлены add_csnippet и add_cxxsnippet в option для обнаружения некоторых особенностей компилятора.
  • #83: Расширена функциональность пользовательских модулей для обнаружения программ, библиотек и других аспектов среды хоста.
  • Добавлены модули find_program, find_file, find_library, find_tool и find_package.
  • Расширены модули net.* и devel.*.
  • Добавлен интерфейс val() для получения встроенных переменных, таких как val("host"), val("env PATH"), val("shell echo hello") и val("reg HKEY_LOCAL_MACHINE\XX;Value").
  • Увеличена поддержка ресурсов Microsoft .rc при компиляции на Windows.
  • Увеличено количество интерфейсов для обнаружения функций, таких как has_flags, features и has_features.
  • Добавлены интерфейсы option.on_check, option.after_check и option.before_check.
  • Добавлен interface target.on_load.
  • #132: Добавлен add_frameworkdirs.
  • Добавлено использование lib.detect.has_xxx и lib.detect.find_xxx для обнаружения библиотек.
  • Добавлен add_moduledirs для определения и загрузки расширенных модулей в проекте.
  • Заменены add_subdirs и add_subfiles на includes.
  • #133: Улучшена функциональность плагинов для проектов, позволяя экспортировать compile_commands.json с помощью команды xmake project -k compile_commands.
  • Добавлена поддержка precompiled header с использованием set_pcheader и set_pcxxheader для gcc, clang и msvc.
  • Добавлена платформа xmake f -p cross для кросс-компиляции с возможностью настройки имени платформы.

Улучшения

  • #87: Автоматическое добавление includes и links для зависимостей библиотек целей.
  • Улучшение интерфейса import для загрузки пользовательских расширений.
  • #93: Улучшение xmake lua с поддержкой выполнения однострочных команд и модулей.
  • Улучшены сообщения об ошибках компиляции.
  • Улучшена функция print для лучшего отображения данных таблицы.
  • #111: Добавлен --root для временного использования в качестве root.
  • #113: Улучшено управление правами доступа, теперь работа в качестве root также безопасна.
  • Улучшен xxx_script для поддержки многоплатформенного режима, например on_build("iphoneos|arm*", function (target) end).
  • Улучшены встроенные переменные для доступа к данным переменных окружения и реестра.
  • Улучшено обнаружение сред Visual Studio и кросс-инструментов.
  • #71: Улучшено обнаружение компоновщиков и компиляторов из переменных окружения.
  • Улучшено обнаружение опций с использованием многозадачности, повышая скорость обнаружения на 70%.
  • #129: Обнаружение зависимостей ссылок: если исходный файл не изменился, то нет необходимости повторно связывать целевой файл.
  • Поддержка файлов *.asm в VS201x плагинах.
  • Пометка add_bindings и add_rbindings как устаревших интерфейсов.
  • Оптимизация скорости сборки на Windows с помощью rebuild.
  • Перенос core.project.task в core.base.task.
  • Перемещение echo и app2ipa в репозиторий xmake-plugins.
  • Добавление set_config_header("config.h", {prefix = ""}) вместо set_config_h и set_config_h_prefix.

Исправления ошибок

  • Исправление try-catch-finally.
  • Исправление ошибки интерпретатора, связанной с неправильным установлением свойств корневого домена при загрузке многоуровневых подкаталогов.
  • #115: Исправление проблем с путём в установочном скрипте get.sh.
  • Исправление проблемы с кэшированием в функции import().

v2.1.4

Новые возможности

  • #68: Добавление $(programdir) и $(xmake) как встроенных переменных.
  • Введение is_host для определения текущей среды хоста.
  • #79: Расширение xmake lua для интерактивного выполнения и интерпретации.

Улучшения

  • Изменение цветовой схемы меню.
  • #71: Оптимизация опций для Windows компиляторов.
  • #73: Попытка получить путь к исполняемому файлу в качестве каталога сценария xmake.
  • Использование независимых дочерних областей в add_subdirs для предотвращения загрязнения области видимости.
  • #78: Улучшенное отображение справки xmake --help в полноэкранных терминалах.
  • Предотвращение создания ненужных каталогов .xmake, если они не используются в проекте.

Исправление ошибок

  • #67: Исправление прав доступа при использовании sudo make install.
  • #70: Исправление ошибок при обнаружении Android компилятора.
  • Исправление конфликтов путей временных файлов.
  • Исправление os.host, os.arch и других интерфейсов.
  • Исправление проблемы с вмешательством корневого домена в другие дочерние области.
  • #77: Исправление прерываний в cprint при цветной печати.

v2.1.3

Новые особенности

  • #65: Добавление set_default для изменения поведения по умолчанию для всех целей.
  • Возможность выполнения xmake в подкаталогах проекта для автоматической идентификации корневого каталога проекта.
  • Добавление add_rpathdirs в target и option для автоматического поиска динамических библиотек во время выполнения.

Улучшения

  • #61: Более безопасные задачи xmake install и xmake uninstall, улучшенное управление установкой root.
  • Предоставление пакетов rpm, deb и osxpkg.
  • #63: Улучшенный установочный скрипт для более безопасной сборки и установки xmake. Перевод текста с английского языка на русский:

#61: Запретить запуск команды xmake с правами root, повысить безопасность

  • Улучшить процесс обнаружения инструментов, повысив общую эффективность обнаружения за счёт отложенного обнаружения.
  • При автоматическом сканировании для создания xmake.lua добавить более дружественные подсказки для пользователей, чтобы избежать бездействия пользователя.

Исправленные ошибки

  • Исправлена ошибка в сообщении об ошибке проверки версии.
  • #60: Исправлены проблемы с самостоятельной компиляцией xmake на платформах macOS и Windows.
  • #64: Исправлена проблема сбоя сборки android для архитектуры armv8-a.
  • #50: Исправлена проблема с невозможностью запуска исполняемых файлов после сборки для Android.

v2.1.2

Новые функции

  • Добавлен скрипт упаковки aur, поддерживающий установку с помощью менеджера пакетов yaourt.
  • Добавлен интерфейс set_basename (#http://xmake.io/#/zh/manual?id=targetset_basename), облегчающий настройку имён целевых файлов после генерации.

Улучшения

  • Поддержка среды компиляции vs2017.
  • Поддержка компиляции программ на Rust для Android.
  • Усовершенствован плагин для генерации проектов vs201x, поддерживая одновременную многорежимную и архитектурную компиляцию.

Исправленные ошибки

  • Исправлено обнаружение системных заголовочных файлов при сборке программы для Android.
  • Исправлено некорректное поведение опций обнаружения.
  • #57: Исправлено разрешение прав доступа к файлам кода на 0644.

v2.1.1

Новые функции

  • Добавление параметров конфигурации --links, --linkdirs и --includedirs.
  • Добавление плагина app2ipa.
  • Расширение синтаксиса dictionay для описания проектов xmake.lua.
  • Предоставление интеллектуального режима сканирования для компиляции, позволяющего быстро компилировать без файла xmake.lua или аналогичного описания проекта.
  • Для описания проектов xmake.lua добавлен интерфейс set_xmakever для более удобной обработки проблем совместимости версий.
  • Включение поддержки фреймворков для программ Objeck и Swift.
  • Более быстрое и удобное расширение для нескольких языков, включая поддержку Golang, Dlang и Rust.
  • Добавление опциональных API, таких как target_end, option_end и task_end, для отображения завершающих описаний доменов, перехода в корневой домен и улучшения читаемости.
  • Создание шаблонов проектов для Golang, Dlang и Rust.

Улучшения

  • Плагин для генерации проектов поддерживает среду компиляции vs2017.
  • Улучшено отображение предупреждений и ошибок компилятора gcc/clang.
  • Реструктуризация кода для улучшения поддержки нескольких языков и более гибкого расширения языков.
  • Улучшение интерфейса печати, поддержка нативного lua print и форматированного вывода.
  • Автоматическое сканирование кода проекта при отсутствии xmake.lua и генерация xmake.lua для компиляции.
  • Изменение лицензии на более либеральную Apache License 2.0.
  • Удаление некоторых двоичных инструментов.
  • Замена сценария установки install.bat на пакет установки Windows nsis.
  • Переписывание документации с использованием docute (#https://github.com/egoist/docute) для улучшения поддержки документации.
  • Усиление интерфейсов os.run, os.exec, os.cp, os.mv и os.rm для поддержки сопоставления с шаблонами и пакетной обработки файлов.
  • Оптимизация и упрощение вывода информации о сборке с добавлением опции -q|--quiet для бесшумной сборки.
  • Улучшен плагин для создания makefile, извлекая инструменты компиляции и параметры компиляции в глобальные переменные.

Исправленные ошибки

  • #41: Исправлена проблема автоматического определения x64 на платформе Windows.
  • #43: Предотвращено создание ненужных кэшированных каталогов проектов .xmake на Windows.
  • Добавлено решение проблемы сбоя компиляции C++ для платформы Android путём добавления поиска STL в каталоги C++.
  • Исправлен сбой компиляции на RHEL 5.10.
  • Исправлено неправильное возвращение данных os.iorun.

v2.0.5

Новые функции

  • Расширены встроенные модули интерпретатора для областей действия.
  • На платформе Windows x64 поддерживается ассемблер ml64.

Улучшения

  • Улучшены интерфейсы ipairs и pairs с поддержкой фильтров, что упрощает написание сценариев.
  • Генерация проектов vs201x с фильтрацией файлов.
  • Удалены каталог core/tools и инструменты msys, установка core исходного кода xmake выполняется на Windows с использованием самокомпилируемого исходного кода, оптимизируя дисковое пространство исходного кода xmake.
  • Удалено xmake/packages, по умолчанию шаблоны установки больше не включают двоичные пакеты, требуется ручная установка, в будущем будет реализована автоматическая загрузка и компиляция зависимостей пакетов.

Исправленные ошибки

  • Исправлена проблема с параметрами компиляции ms-vc, которые не поддерживаются: -def:xxx.def.
  • Исправлены ошибки в сценарии ассемблера ml.exe.
  • Исправлена проблема порядка опций связывания.

v2.0.4

Новые функции

  • В xmake.lua добавлена поддержка встроенных команд оболочки, например: add_ldflags("$(shell pkg-config --libs sqlite3)").
  • Компиляция программ для Windows по умолчанию включает символы PDB.
  • Добавлена поддержка отладчиков на платформе Windows (vsjitdebugger, ollydbg, windbg и т. д.).
  • Интерфейс getenv добавлен в глобальную область xmake.lua.
  • Создан плагин для генерации проектов Visual Studio (поддерживает: vs2002 - vs2015).
  • Опция set_default добавлена в интерфейс.

Улучшения

  • Обработка внутренних переменных улучшена.
  • Поддерживается строковый тип параметров option.

Исправленные ошибки

  • Исправлена проблема обнаружения компоновщика ld при работе в Linux, если g++ не установлен.
  • Исправлена проблема компиляции файлов .cxx.

v2.0.3

Новые функции

  • Реализован автоматический анализ зависимостей заголовков и инкрементная компиляция, что ускоряет компиляцию.
  • Цветные подсказки в терминале.
  • Отладка с помощью команды xmake run -d program ...

Улучшения

  • Интерфейсы для выполнения команд оболочки расширены.
  • LuaJIT обновлён до версии 2.0.4.
  • Плагины для создания проектов makefile улучшены, зависимости от xmake удалены, поддерживается большинство платформ PC, включая Windows, Linux и macOS.
  • Многозадачная компиляция ускорена, особенно заметно на Windows.

Исправленные ошибки

  • Исправлена проблема с каталогом установки.
  • Исправлена проблема неправильного имени целевого объекта после использования шаблона для создания проекта: '[targetname]'.
  • Исправлена проблема, когда clang не поддерживал C++11.
  • Ошибки утечки функций обнаружения исправлены.
  • Проблемы с определением версии VS в среде Windows исправлены.

v2.0.2

Улучшения

  • Изменены действия по установке и удалению.
  • Обновлены шаблоны проектов.
  • Функции обнаружения улучшены.

Исправленные ошибки

  • #7: Исправлена проблема создания проекта с использованием шаблона, имя цели неверно: '[targetname]'
  • #9: Исправлена проблема clang с поддержкой C++11.
  • Исправлены утечки API.
  • Исправлены некоторые проблемы с путями в Windows.
  • Исправлены сбои обнаружения макросов.
  • Исправлены сбои обнаружения инструментов.
  • Сбои компиляции для Android на Windows исправлены.
1
https://api.gitlife.ru/oschina-mirror/tboox-xmake.git
git@api.gitlife.ru:oschina-mirror/tboox-xmake.git
oschina-mirror
tboox-xmake
tboox-xmake
master