LINUX.ORG.RU
ФорумTalks

В xmake добавили поддержку Паскаля

 , xmake


0

2

Собственно, сабж.

Ссылка на issue, где это сделали: https://github.com/xmake-io/xmake/issues/388 .

xmake - это кроссплатформенная сборочная утилита:

xmake is a lightweight cross-platform build utility based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more concise and intuitive. It is very friendly to novices and can quickly get started in a short time. Let users focus more on actual project development.

It can compile the project directly like Make/Ninja, or generate project files like CMake/Meson, and it also has a built-in package management system to help users solve the integrated use of C/C++ dependent libraries.

★★★★★

На premake похоже, но более развито (premake в какой-то вечной альфе). Есть опыт использования?

xaizek ★★★★★
()

Ещё одна система сборки? На ней есть какие-нибудь крупные проекты? Свои таргеты делать можно, или всё гвоздями прибито к GCC и т.п.?

X512 ★★★★★
()
Ответ на: комментарий от X512

На ней цернлиб был, до сих пор не могу собрать по-нормальному

luke ★★★★★
()
Ответ на: комментарий от xaizek

Есть опыт использования?

Нет, поскольку его почти из всех дистрибутивов почему-то выкинули. А где оставили там он старой версии. За исключением разве что Арча.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от X512

На ней есть какие-нибудь крупные проекты?

Не знаю.

Свои таргеты делать можно, или всё гвоздями прибито к GCC и т.п.?

$ xmake show -l toolchains
xcode         Xcode IDE
vs            VisualStudio IDE
yasm          The Yasm Modular Assembler
clang         A C language family frontend for LLVM
go            Go Programming Language Compiler
dlang         D Programming Language Compiler
gfortran      GNU Fortran Programming Language Compiler
zig           Zig Programming Language Compiler
sdcc          Small Device C Compiler
cuda          CUDA Toolkit
ndk           Android NDK
rust          Rust Programming Language Compiler
llvm          A collection of modular and reusable compiler and toolchain technologies
cross         Common cross compilation toolchain
nasm          NASM Assembler
gcc           GNU Compiler Collection
mingw         Minimalist GNU for Windows
gnu-rm        GNU Arm Embedded Toolchain
envs          Environment variables toolchain
fasm          Flat Assembler
tinycc        Tiny C Compiler
emcc          A toolchain for compiling to asm.js and WebAssembly
icc           Intel C/C++ Compiler
ifort         Intel Fortran Compiler
muslcc        The musl-based cross-compilation toolchains
fpc           Free Pascal Programming Language Compiler
saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

Какие нужные действия чтобы новый пункт добавить? Возможно ли это сделать без правки исходников самой системы сборки? В Jam например можно.

X512 ★★★★★
()
Ответ на: комментарий от X512

Прописать в xmake.lua. Например, так:

-- define toolchain
toolchain("myclang")

    -- mark as standalone toolchain
    set_kind("standalone")

    -- set toolset
    set_toolset("cc", "clang")
    set_toolset("cxx", "clang", "clang++")
    set_toolset("ld", "clang++", "clang")
    set_toolset("sh", "clang++", "clang")
    set_toolset("ar", "ar")
    set_toolset("ex", "ar")
    set_toolset("strip", "strip")
    set_toolset("mm", "clang")
    set_toolset("mxx", "clang", "clang++")
    set_toolset("as", "clang")

    add_defines("MYCLANG")

    -- check toolchain
    on_check(function (toolchain)
        return import("lib.detect.find_tool")("clang")
    end)

    -- on load
    on_load(function (toolchain)

        -- get march
        local march = is_arch("x86_64", "x64") and "-m64" or "-m32"

        -- init flags for c/c++
        toolchain:add("cxflags", march)
        toolchain:add("ldflags", march)
        toolchain:add("shflags", march)
        if not is_plat("windows") and os.isdir("/usr") then
            for _, includedir in ipairs({"/usr/local/include", "/usr/include"}) do
                if os.isdir(includedir) then
                    toolchain:add("includedirs", includedir)
                end
            end
            for _, linkdir in ipairs({"/usr/local/lib", "/usr/lib"}) do
                if os.isdir(linkdir) then
                    toolchain:add("linkdirs", linkdir)
                end
            end
        end

        -- init flags for objc/c++  (with ldflags and shflags)
        toolchain:add("mxflags", march)

        -- init flags for asm
        toolchain:add("asflags", march)
    end)
Потом можно юзать как
xmake f --toolchain=myclang
Подробнее тут: https://xmake.io/mirror/manual/custom_toolchain.html

saahriktu ★★★★★
() автор топика

Угадал автора по заголовку.

sudopacman ★★★★★
()

Когда васик планируют?

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.