Replies: 3 comments 8 replies
-
https://github.com/xmake-io/xmake/blob/dev/tests/projects/package/toolchain_muslcc/xmake.lua |
Beta Was this translation helpful? Give feedback.
2 replies
-
xmake/xmake/toolchains/cross/check.lua Line 40 in ca1d8f7 |
Beta Was this translation helpful? Give feedback.
6 replies
-
比较完美了,交作业,有需要的兄弟可以试试,set_kind("standalone") 的搞不来最后,有空再说,先用 set_kind("cross") 了 add_rules("mode.debug", "mode.release")
set_languages("c17")
set_plat("cross")
set_arch("arm")
toolchain("arm-toolchain")
set_kind("cross")
set_formats("binary", "%$%(name%).elf")
add_cxflags(
"-mcpu=cortex-m0plus",
"-gdwarf-3",
"-Wall",
"-ffunction-sections",
"-fdata-sections",
{force = true}
)
add_asflags(
"-mcpu=cortex-m0plus",
"-gdwarf-3",
"-Wa,--warn",
{force = true}
)
add_ldflags(
"-mcpu=cortex-m0plus",
"-specs=nano.specs",
"-specs=nosys.specs",
"-Wl,--gc-sections",
"-Wl,--print-memory-usage",
"-Wl,--no-warn-rwx-segments",
{force = true}
)
set_archs("arm", "arm64")
add_syslinks("c", "m")
on_load(function (toolchain)
toolchain:load_cross_toolchain()
end)
toolchain_end()
add_repositories("zero https://github.com/zeromake/xrepo.git")
add_requires("zlib", {system = false})
add_requires("arm-toolchain")
set_toolchains("arm-toolchain@arm-toolchain")
target("main")
set_kind("binary")
add_files("User/*.c")
add_defines("PY32F003x4")
add_files("Libraries/PY32F0xx_HAL_Driver/Src/*.c")
add_files("Libraries/PY32F0xx_HAL_BSP/Src/*.c")
add_files(
"Libraries/CMSIS/Device/PY32F0xx/Source/system_py32f0xx.c",
"Libraries/CMSIS/Device/PY32F0xx/Source/gcc/startup_py32f003.s"
)
add_includedirs(
"User",
"Libraries/CMSIS/Core/Include",
"Libraries/CMSIS/Device/PY32F0xx/Include",
"Libraries/PY32F0xx_HAL_Driver/Inc",
"Libraries/PY32F0xx_HAL_BSP/Inc"
)
add_ldflags("-T./Libraries/LDScripts/py32f003x4.ld", {force = true}) standalone 错误示例: add_rules("mode.debug", "mode.release")
set_languages("c17")
set_plat("cross")
set_arch("arm")
toolchain("arm-toolchain")
local prefix = "arm-none-eabi-"
set_kind("standalone")
set_formats("object", "%$%(name%).o")
set_formats("binary", "%$%(name%).elf")
set_formats("static", "%$%(name%).lib")
set_formats("shared", "lib%$%(name%).so")
set_formats("symbol", "%$%(name%).sym")
set_toolset("cc", prefix .. "gcc")
set_toolset("cxx", prefix .. "gcc", prefix .. "g++")
set_toolset("ld", prefix .. "g++", prefix .. "gcc")
set_toolset("sh", prefix .. "g++", prefix .. "gcc")
set_toolset("ar", prefix.."ar")
set_toolset("ex", prefix.."ar")
set_toolset("strip", prefix.."strip")
set_toolset("as", prefix .. "gcc")
add_cxflags(
"-mcpu=cortex-m0plus",
"-gdwarf-3",
"-Wall",
"-ffunction-sections",
"-fdata-sections",
{force = true}
)
add_asflags(
"-mcpu=cortex-m0plus",
"-gdwarf-3",
"-Wa,--warn",
{force = true}
)
add_ldflags(
"-mcpu=cortex-m0plus",
"-specs=nano.specs",
"-specs=nosys.specs",
"-Wl,--gc-sections",
"-Wl,--print-memory-usage",
"-Wl,--no-warn-rwx-segments",
{force = true}
)
set_archs("arm", "arm64")
add_syslinks("c", "m")
on_check(function (toolchain)
import("detect.sdks.find_cross_toolchain")
local sdkdir = toolchain:sdkdir()
local bindir = toolchain:bindir()
local cross_toolchain = find_cross_toolchain(sdkdir, {bindir = bindir})
if not cross_toolchain then
-- find it from packages
for _, package in ipairs(toolchain:packages()) do
local installdir = package:installdir()
if installdir and os.isdir(installdir) then
cross_toolchain = find_cross_toolchain(installdir, {cross = cross})
if cross_toolchain then
break
end
end
end
end
if cross_toolchain then
print("cross toolchain found: ", cross_toolchain.cross, cross_toolchain.bindir)
toolchain:config_set("cross", cross_toolchain.cross)
toolchain:config_set("bindir", cross_toolchain.bindir)
toolchain:config_set("sdkdir", cross_toolchain.sdkdir)
toolchain:configs_save()
else
raise("cross toolchain not found!")
end
return cross_toolchain
end)
toolchain_end()
add_repositories("zero https://github.com/zeromake/xrepo.git")
add_requires("zlib", {system = false})
add_requires("arm-toolchain")
set_toolchains("arm-toolchain@arm-toolchain")
target("main")
set_kind("binary")
add_files("User/*.c")
add_defines("PY32F003x4")
add_files("Libraries/PY32F0xx_HAL_Driver/Src/*.c")
add_files("Libraries/PY32F0xx_HAL_BSP/Src/*.c")
add_files(
"Libraries/CMSIS/Device/PY32F0xx/Source/system_py32f0xx.c",
"Libraries/CMSIS/Device/PY32F0xx/Source/gcc/startup_py32f003.s"
)
add_includedirs(
"User",
"Libraries/CMSIS/Core/Include",
"Libraries/CMSIS/Device/PY32F0xx/Include",
"Libraries/PY32F0xx_HAL_Driver/Inc",
"Libraries/PY32F0xx_HAL_BSP/Inc"
)
add_ldflags("-T./Libraries/LDScripts/py32f003x4.ld", {force = true}) [ 94%]: archiving.release zlib.lib
/Users/zero/.xmake/packages/a/arm-toolchain/14.2.0-rel1/fd921c95f67d4418aecf2de973b86e55/bin/arm-none-eabi-ar -cr build_ce59f911/cross/arm/release/zlib.lib build_ce59f911/.objs/zlib/cross/arm/release/adler32.c.o build_ce59f911/.objs/zlib/cross/arm/release/crc32.c.o build_ce59f911/.objs/zlib/cross/arm/release/deflate.c.o build_ce59f911/.objs/zlib/cross/arm/release/infback.c.o build_ce59f911/.objs/zlib/cross/arm/release/inffast.c.o build_ce59f911/.objs/zlib/cross/arm/release/inflate.c.o build_ce59f911/.objs/zlib/cross/arm/release/inftrees.c.o build_ce59f911/.objs/zlib/cross/arm/release/trees.c.o build_ce59f911/.objs/zlib/cross/arm/release/zutil.c.o build_ce59f911/.objs/zlib/cross/arm/release/compress.c.o build_ce59f911/.objs/zlib/cross/arm/release/uncompr.c.o build_ce59f911/.objs/zlib/cross/arm/release/gzclose.c.o build_ce59f911/.objs/zlib/cross/arm/release/gzlib.c.o build_ce59f911/.objs/zlib/cross/arm/release/gzread.c.o build_ce59f911/.objs/zlib/cross/arm/release/gzwrite.c.o
build cache stats:
cache directory: /Users/zero/.xmake/cache/packages/2506/z/zlib/1.3.1/source/build_ce59f911/.build_cache
cache hit rate: 0%
cache hit: 0
cache hit total time: 0.000s
cache miss: 15
cache miss total time: 0.015s
new cached files: 15
remote cache hit: 0
remote new cached files: 0
preprocess failed: 0
compile fallback count: 0
compile total time: 3.682s
[100%]: build ok, spent 1.314s
/usr/local/bin/xmake install -y --nopkgs -o /Users/zero/.xmake/packages/z/zlib/1.3.1/ce59f911e4fc4e12b36c2bbd150a9d33 --diagnosis --verbose --yes
installing zlib ..
installing zlib to /Users/zero/.xmake/packages/z/zlib/1.3.1/ce59f911e4fc4e12b36c2bbd150a9d33 ..
> copy build_ce59f911/cross/arm/release/zlib.lib to /Users/zero/.xmake/packages/z/zlib/1.3.1/ce59f911e4fc4e12b36c2bbd150a9d33/lib
> copy zlib.h to /Users/zero/.xmake/packages/z/zlib/1.3.1/ce59f911e4fc4e12b36c2bbd150a9d33/include/zlib/zlib.h
> copy zconf.h to /Users/zero/.xmake/packages/z/zlib/1.3.1/ce59f911e4fc4e12b36c2bbd150a9d33/include/zlib/zconf.h
install ok!
finding zlib from xmake ..
checking for xmake::zlib ... zlib 1.3.1
{
license = "zlib",
version = "1.3.1",
static = true,
sysincludedirs = {
"/Users/zero/.xmake/packages/z/zlib/1.3.1/ce59f911e4fc4e12b36c2bbd150a9d33/include",
"/Users/zero/.xmake/packages/z/zlib/1.3.1/ce59f911e4fc4e12b36c2bbd150a9d33/include/zlib"
}
}
patching /Users/zero/.xmake/packages/z/zlib/1.3.1/ce59f911e4fc4e12b36c2bbd150a9d33/lib/pkgconfig/zlib.pc ..
error: @programdir/core/package/package.lua:2518: package(zlib): links not found!
stack traceback:
[C]: in function 'error'
[@programdir/core/base/os.lua:1075]:
[@programdir/core/package/package.lua:2518]: in function '_generate_build_configs'
[@programdir/core/package/package.lua:2534]: in function 'has_cfuncs'
[...acosx/x86_64/repositories/zero/packages/z/zlib/xmake.lua:21]: in function 'script'
[...dir/modules/private/action/require/impl/utils/filter.lua:114]: in function 'call'
[...dir/modules/private/action/require/impl/actions/test.lua:41]:
[.../modules/private/action/require/impl/actions/install.lua:495]:
=> install zlib 1.3.1 .. failed
error: @programdir/core/main.lua:329: @programdir/modules/async/runjobs.lua:325: .../modules/private/action/require/impl/actions/install.lua:561: install failed!
stack traceback:
[C]: in function 'error'
[@programdir/core/base/os.lua:1075]:
[.../modules/private/action/require/impl/actions/install.lua:561]: in function 'catch'
[@programdir/core/sandbox/modules/try.lua:123]: in function 'try'
[.../modules/private/action/require/impl/actions/install.lua:419]:
[...modules/private/action/require/impl/install_packages.lua:510]: in function 'jobfunc'
[@programdir/modules/async/runjobs.lua:241]:
stack traceback:
[C]: in function 'error'
@programdir/core/base/os.lua:1075: in function 'base/os.raiselevel'
(...tail calls...)
@programdir/core/main.lua:329: in upvalue 'cotask'
@programdir/core/base/scheduler.lua:406: in function <@programdir/core/base/scheduler.lua:399> |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
xmake.lua
想要做到项目使用全局远程工具链,必须添加手动安装 toolchain
plat,arch,toolchain 现在必须都用命令行要不在命令行设置在 xmake.lua 会导致,add_requires 不会使用远程工具链
如果你没有 add_requires 依赖库可以,plat,arch,toolchain 对你的 target 正常生效,不过这样就没法用 xrepo 的库了:
Beta Was this translation helpful? Give feedback.
All reactions