summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2026-01-25 15:20:56 +0800
committerruki <[email protected]>2026-01-25 15:28:26 +0800
commit709b454524f08e7ba01f7872194fc29d3d448dec (patch)
treede7a01a1e426c669ab1f70d3197697e2fed4d3ed
parentf4af385406eec4868b776c1fc32d7468dc303cc4 (diff)
fix pascal apis
-rw-r--r--xmake/languages/pascal/load.lua13
-rw-r--r--xmake/languages/pascal/xmake.lua81
-rw-r--r--xmake/rules/pascal/xmake.lua14
3 files changed, 48 insertions, 60 deletions
diff --git a/xmake/languages/pascal/load.lua b/xmake/languages/pascal/load.lua
index cb6c3117f..07f25e8b8 100644
--- a/xmake/languages/pascal/load.lua
+++ b/xmake/languages/pascal/load.lua
@@ -68,19 +68,6 @@ function _get_apis()
, "toolchain.add_includedirs"
, "toolchain.add_defines"
, "toolchain.add_undefines"
- , "toolchain.set_languages"
- -- target.set_xxx
- , "target.set_languages"
- , "target.set_exceptions"
- -- option.set_xxx
- , "option.set_languages"
- , "option.set_exceptions"
- -- package.set_xxx
- , "package.set_languages"
- , "package.set_exceptions"
- -- toolchain.set_xxx
- , "toolchain.set_languages"
- , "toolchain.set_exceptions"
}
apis.paths = {
-- target.add_xxx
diff --git a/xmake/languages/pascal/xmake.lua b/xmake/languages/pascal/xmake.lua
index feafb5440..de31378af 100644
--- a/xmake/languages/pascal/xmake.lua
+++ b/xmake/languages/pascal/xmake.lua
@@ -33,88 +33,75 @@ language("pascal")
set_nameflags {
object = {
"config.includedirs"
+ , "config.frameworkdirs"
+ , "config.frameworks"
, "target.symbols"
, "target.warnings"
+ , "target.fpmodels"
+ , "target.optimize:check"
+ , "target.vectorexts:check"
+ , "target.languages"
+ , "target.includedirs"
, "target.defines"
, "target.undefines"
- , "target.includedirs"
+ , "target.frameworkdirs"
+ , "target.frameworks"
, "target.exceptions"
- , "target.languages"
- , "target.optimize:check"
- , "target.vectorexts:check"
+ , "target.encodings"
+ , "target.forceincludes"
, "toolchain.includedirs"
- , "toolchain.languages"
, "toolchain.defines"
, "toolchain.undefines"
+ , "toolchain.frameworkdirs"
+ , "toolchain.frameworks"
, "toolchain.exceptions"
+ , "toolchain.languages"
}
, binary = {
- "config.includedirs"
- , "config.linkdirs"
- , "config.frameworks"
+ "config.linkdirs"
, "config.frameworkdirs"
+ , "config.frameworks"
, "config.rpathdirs"
, "config.syslinks"
, "target.linkdirs"
- , "target.rpathdirs"
- , "target.syslinks"
- , "target.frameworks"
, "target.frameworkdirs"
+ , "target.rpathdirs"
, "target.strip"
, "target.symbols"
- , "target.warnings"
- , "target.defines"
- , "target.undefines"
- , "target.includedirs"
- , "target.exceptions"
- , "target.languages"
, "target.optimize:check"
- , "target.vectorexts:check"
- , "toolchain.includedirs"
- , "toolchain.languages"
- , "toolchain.defines"
- , "toolchain.undefines"
- , "toolchain.exceptions"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
- , "toolchain.strip"
- , "toolchain.syslinks"
- , "toolchain.frameworks"
, "toolchain.frameworkdirs"
+ , "config.links"
+ , "target.links"
+ , "toolchain.links"
+ , "target.frameworks"
+ , "toolchain.frameworks"
+ , "target.syslinks"
+ , "toolchain.syslinks"
}
, shared = {
- "config.includedirs"
- , "config.linkdirs"
- , "config.frameworks"
+ "config.linkdirs"
, "config.frameworkdirs"
+ , "config.frameworks"
, "config.rpathdirs"
, "config.syslinks"
, "target.linkdirs"
- , "target.rpathdirs"
- , "target.syslinks"
- , "target.frameworks"
, "target.frameworkdirs"
+ , "target.rpathdirs"
, "target.strip"
, "target.symbols"
- , "target.warnings"
- , "target.defines"
- , "target.undefines"
- , "target.includedirs"
- , "target.exceptions"
- , "target.languages"
, "target.optimize:check"
- , "target.vectorexts:check"
- , "toolchain.includedirs"
- , "toolchain.languages"
- , "toolchain.defines"
- , "toolchain.undefines"
- , "toolchain.exceptions"
, "toolchain.linkdirs"
, "toolchain.rpathdirs"
- , "toolchain.strip"
- , "toolchain.syslinks"
- , "toolchain.frameworks"
, "toolchain.frameworkdirs"
+ , "config.links"
+ , "target.links"
+ , "toolchain.links"
+ , "target.frameworks"
+ , "toolchain.frameworks"
+ , "target.syslinks"
+ , "toolchain.syslinks"
}
}
diff --git a/xmake/rules/pascal/xmake.lua b/xmake/rules/pascal/xmake.lua
index 4b318702b..03b027e07 100644
--- a/xmake/rules/pascal/xmake.lua
+++ b/xmake/rules/pascal/xmake.lua
@@ -31,3 +31,17 @@ rule("pascal")
-- inherit links and linkdirs of all dependent targets by default
add_deps("utils.inherit.links")
+
+ -- support `add_files("src/*.o")` and `add_files("src/*.a")` to merge object and archive files to target
+ add_deps("utils.merge.object", "utils.merge.archive")
+
+ -- we attempt to extract symbols to the independent file and
+ -- strip self-target binary if `set_symbols("debug")` and `set_strip("all")` are enabled
+ add_deps("utils.symbols.extract")
+
+ -- add platform rules
+ add_deps("platform.wasm")
+ add_deps("platform.windows")
+
+ -- add linker rules
+ add_deps("linker")