Чанлог
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
Новые функции:
Изменение:
Исправленные ошибки:
V2.5.7
Новые функции:
Улучшения
- Улучшение 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
, если он не находится в проекте.
Исправлено:
Новые функции:
-
#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
Новые функции
Улучшения
- Поддержка среды компиляции 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 исправлены.