From 18 Jan, 2021 0:00 UTC: All services will be temporary unavailable for maintenance
  • R/O
  • SSH

YSLib-wiki: Commit

The wiki source of YSLib documentation.


Commit MetaInfo

Revisiona6460edbb8b09bde7c71b2c1994ad726f0b1bdac (tree)
Time2020-12-14 12:34:34
AuthorFrankHB <frankhb1989@gmai...>
CommiterFrankHB

Log Message

Tools/Scripts.zh-CN.md: 移动 stage 2 配置变量;移除变量 CFLAGS_COMMON 和 CXXFLAGS_COMMON ;添加 SHBuild 附加构建选项环境变量等说明。

Change Summary

Incremental Difference

diff -r ff0ce1baf5b4 -r a6460edbb8b0 Tools/Scripts.zh-CN.md
--- a/Tools/Scripts.zh-CN.md Tue Dec 08 03:13:49 2020 +0800
+++ b/Tools/Scripts.zh-CN.md Mon Dec 14 11:34:34 2020 +0800
@@ -506,10 +506,6 @@
506506
507507   C 编译器警告命令行选项,默认值为 `$C_CXXFLAGS_WARNING $C_CXXFLAGS_IMPL_WARNING` 。
508508
509-### 变量 CFLAGS_COMMON
510-
511-  C 编译器一般命令行选项,默认值为 `$C_CXXFLAGS_COMMON $CFLAGS_STD $CFLAGS_WARNING` 。
512-
513509 ### 变量 CXXFLAGS_STD
514510
515511   指定 C++ 标准的编译器命令行选项,默认值为 `-std=c++11` 。
@@ -525,10 +521,6 @@
525521 * `-Wsign-promo`
526522 * 变量 `CXXFLAGS_IMPL_WARNING` 的内容
527523
528-### 变量 CXXFLAGS_COMMON
529-
530-  C++ 编译器一般命令行选项,默认值为 `$CXXFLAGS_STD $C_CXXFLAGS_COMMON $CXXFLAGS_WARNING $CXXFLAGS_IMPL_COMMON` 。
531-
532524 ### 变量 CXXFLAGS_OPT_DBG
533525
534526   C++ 编译器优化和调试相关的命令行选项。在未设置非空的 `SHbuild_Debug` 时,默认值包含以下列表中的内容:
@@ -540,46 +532,18 @@
540532
541533 ### 变量 CFLAGS
542534
543-  C 编译器使用的命令行选项,默认值为 `$C_CXXFLAGS_PIC $CFLAGS_COMMON $C_CXXFLAGS_COMMON_IMPL_ $CXXFLAGS_OPT_DBG` 。其中,`C_CXXFLAGS_COMMON_IMPL_` 是根据支持的编译器在内部定义的非公开变量。
535+  C 编译器使用的命令行选项,默认值为 `$CFLAGS_STD $C_CXXFLAGS_PIC $C_CXXFLAGS_COMMON $CFLAGS_WARNING $C_CXXFLAGS_COMMON_IMPL_ $CXXFLAGS_OPT_DBG` 。其中,`C_CXXFLAGS_COMMON_IMPL_` 是根据支持的编译器在内部定义的非公开变量。
544536
545537 **注意** 当前和 C++ 编译器选项共用 `CXXFLAGS_OPT_DBG` 。
546538
547539 ### 变量 CXXFLAGS
548540
549-  C++ 编译器使用的命令行选项,默认值为 `$C_CXXFLAGS_PIC $CXXFLAGS_COMMON $C_CXXFLAGS_COMMON_IMPL_ $CXXFLAGS_OPT_DBG` 。其中,`C_CXXFLAGS_COMMON_IMPL_` 是根据支持的编译器在内部定义的非公开变量。
541+  C++ 编译器使用的命令行选项,默认值为 `$CXXFLAGS_STD $C_CXXFLAGS_PIC $C_CXXFLAGS_COMMON $CXXFLAGS_WARNING $CXXFLAGS_IMPL_COMMON $C_CXXFLAGS_COMMON_IMPL_ $CXXFLAGS_OPT_DBG` 。其中,`C_CXXFLAGS_COMMON_IMPL_` 是根据支持的编译器在内部定义的非公开变量。
550542
551543 ### 变量 LDFLAGS_OPT_DBG
552544
553545   链接器优化和调试相关的命令行选项。在未设置非空的 `SHbuild_Debug` 时,默认值为 `$LDFLAGS_STRIP $LDFLAGS_IMPL_OPT $LDFLAGS_GC` 。
554546
555-### 变量 LDFLAGS_DYN_BASE
556-
557-  指定动态库基础链接选项,默认值和平台相关:若为 Win32 环境则使用 `-shared -Wl,--dll` 否则为 `-shared` 。
558-
559-### 变量 LDFLAGS_DYN_EXTRA
560-
561-  指定动态库附加链接选项,默认值等价于 `-Wl,--no-undefined,--dynamic-list-data,--dynamic-list-cpp-new,--dynamic-list-cpp-typeinfo` 。
562-
563-### 变量 LDFLAGS_DYN
564-
565-  指定动态库链接选项,默认值为 `$LDFLAGS_DYN_EXTRA $LDFLAGS_DYN` 。
566-
567-### 变量 LIBS_RPATH
568-
569-  用于指定在运行时 ELF 映像需要的动态库的路径的链接器选项。在 Win32 默认不设置,其它平台默认值为 `-Wl,-rpath,'\$ORIGIN:\$ORIGIN/../lib'` 。
570-
571-### 变量 LIBPFX
572-
573-  库前缀。在 Win32 默认不设置,其它平台默认值为 `lib` 。
574-
575-### 变量 DSOSFX
576-
577-  动态库文件名后缀。在 Win32 默认为 `.dll` ,其它平台默认值为 `.so` 。
578-
579-### 变量 EXESFX
580-
581-  可执行文件名后缀。在 Win32 默认为 `.exe` ,其它平台默认不设置。
582-
583547 ### 变量 LDFLAGS
584548
585549   链接器使用的命令行选项,默认值依次包含以下内容:
@@ -661,15 +625,17 @@
661625
662626   `Tools/Scripts/SHBuild-YSLib-common.txt` 包含一些公共的库,包括支持类似 `Tools/Scripts/SHBuild-common-options.sh` 和 `Tools/Scripts/SHBuild-common-toolchain.sh` 的选项以环境变量的方式配置,但 C 编译器相关的选项除外(不使用而被忽略)。除[关于 shell 和 NPLA1 脚本之间的一般差异](../Development.zh-CN.md)外,和 `Tools/Scripts/SHBuild-common-options.sh` 和 `Tools/Scripts/SHBuild-common-toolchain.sh` 的不同为:
663627
664-* 生成变量默认值的选项之间的空白符可能不同(通常可确保为一个空格)。
665-* 按需初始化变量。配置时为确定变量的默认值的检查的调用顺序可能不同。
666-* 使用 debug 模式时,`CXXFLAGS_OPT_DBG` 设置为 `-O0 -g -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC` ,不再被环境变量覆盖。
667-* 附加支持构建应用的配置,在导出的 `LDFLAGS` 的值中添加 `LIBS_RPATH` 的值。
668-* 提供和 shell 脚本不同的函数,详见版本库中的 `doc/NPL.txt` 。
628+* 通过调用函数进入**构建环境变量检测**并在之后进入回调函数中构建。
629+ * 按需初始化变量。构建环境变量检测可能延迟访问以避免不必要初始化的值。配置时为确定变量的默认值的检查的调用顺序可能不同。
630+ * 使用 debug 模式时,`CXXFLAGS_OPT_DBG` 设置为 `-O0 -g -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC` ,不再被环境变量覆盖。
631+ * 生成变量默认值的选项之间的空白符可能不同(通常可确保为一个空格)。
632+ * 附加支持构建应用的配置,在导出的 `LDFLAGS` 的值中添加 `LIBS_RPATH`(参见以下有关内说明)的值。
633+* 支持更多变量和默认值。除非另行指定,这些变量在构建环境变量检测中使用。参见以下各节。
634+* 提供部分和 shell 脚本不同的函数,详见版本库中的 `doc/NPL.txt` 。
669635
670636   这个脚本被 `Tools/Scripts/SHBuild-YSLib-build.txt` 加载,并被 `Tools/install-sysroot.sh` 间接调用。
671637
672-  可以在外部调用这个脚本的命令行设置变量以覆盖直接指定需要的选项,如:
638+  可以在外部调用这个脚本的命令行设置变量以覆盖直接指定构建环境变量检测确定的选项,如:
673639
674640 ```
675641 CXX=clang++ CXXFLAGS='-std=c++11 -O2' Tools/install-sysroot.sh
@@ -679,7 +645,52 @@
679645
680646   **这个脚本是公开的工具**,被 `Tools/install-sysroot.sh` 部署到安装路径下的 `var/NPLA1` 目录下。
681647
682-### Tools/Scripts/SHBuild-YSLib-build.txt
648+### 变量 LDFLAGS_DYN_BASE
649+
650+  指定动态库基础链接选项,默认值和平台相关:若为 Win32 环境则使用 `-shared -Wl,--dll` 否则为 `-shared` 。
651+
652+### 变量 LDFLAGS_DYN_EXTRA
653+
654+  指定动态库附加链接选项,默认值等价于 `-Wl,--no-undefined,--dynamic-list-data,--dynamic-list-cpp-new,--dynamic-list-cpp-typeinfo` 。
655+
656+### 变量 LDFLAGS_DYN
657+
658+  指定动态库链接选项,默认值为 `$LDFLAGS_DYN_EXTRA $LDFLAGS_DYN` 。
659+
660+### 变量 LIBS_RPATH
661+
662+  用于指定在运行时 ELF 映像需要的动态库的路径的链接器选项。在 Win32 默认不设置,其它平台默认值为 `-Wl,-rpath,'\$ORIGIN:\$ORIGIN/../lib'` 。
663+
664+### 变量 LIBPFX
665+
666+  库前缀。在 Win32 默认不设置,其它平台默认值为 `lib` 。
667+
668+### 变量 DSOSFX
669+
670+  动态库文件名后缀。在 Win32 默认为 `.dll` ,其它平台默认值为 `.so` 。
671+
672+### 变量 EXESFX
673+
674+  可执行文件名后缀。在 Win32 默认为 `.exe` ,其它平台默认不设置。
675+
676+### SHBuild 附加构建选项环境变量
677+
678+  若回调函数中调用 SHBuild 构建,可在此之前设置**扩展环境变量**并调用函数 `SHBuild_Extend_CallVariables` 以更新被 SHBuild 使用的环境变量 `LDFLAGS` 和 `LIBS` 的值。这些影响 SHBuild 工具调用构建工具的命令行的 **SHBuild 附加构建选项环境变量**,包括:
679+
680+* `SHBuild_CFLAGS`
681+* `SHBuild_CXXFLAGS`
682+* `SHBuild_LDFLAGS`
683+* `SHBuild_LIBS`
684+
685+  除非另行指定,SHBuild 附加构建选项环境变量的默认值为空,不被脚本设置。
686+
687+### 其它函数和可在外部设置的其它变量
688+
689+  详见版本库中的 `doc/NPL.txt` 。
690+
691+  其它变量不被构建环境变量检测访问,而通过函数调用生效,如 `SHBuild_Extend_CallVariables` 。
692+
693+## Tools/Scripts/SHBuild-YSLib-build.txt
683694
684695   这个脚本当前包括和安装相关的流程,实现 `Tools/install-sysroot.sh` 在 stage 1 SHBuild 构建后的主要逻辑。
685696
@@ -723,10 +734,11 @@
723734
724735   在 stage 2 构建时接受以下外部环境变量(部分被 SHBuild 直接以环境变量的方式接受):
725736
726-* `INCLUDES` 包含路径,和非 SHBuild 中的 `Makefile` 惯用法含义类似。
727-* `LDFLAGS` 链接命令行选项。
728-* `LIBS` 作为命令行选项的链接时使用的库路径。
729-* `LIBS_RPATH` 非 Windows 平台使用的 `rpath` 路径。
737+* `INCLUDES` :包含路径,和非 SHBuild 中的 `Makefile` 惯用法含义类似。
738+* `LDFLAGS` :链接命令行选项。
739+* `LIBS` :作为命令行选项的链接时使用的库路径。
740+* `LIBS_RPATH` :非 Windows 平台使用的 `rpath` 路径。
741+* SHBuild 附加构建选项环境变量:参见 Tools/Scripts/SHBuild-YSLib-common.txt 。其中变量 `SHBuild_CXXFLAGS` 同时作用在预编译头构建。
730742
731743 ## Tools/Scripts/SHBuild-BuildApp.txt
732744
@@ -805,7 +817,5 @@
805817
806818   默认情况下, release 配置会在链接器命令行加入 `-mwindows` ,[和 debug 配置编译的程序行为不保证相同](../Prerequisitions.zh-CN.md)。设置非空变量 `SHBuild_NoAdjustSubsystem` 禁用此行为。
807819
808-  脚本使用包含 YSLib 库的编译器命令行。若有必要,可设置 SHBuild 使用的变量 `SHBuild_CFLAGS` 和 `SHBuild_CXXFLAGS` 作为前缀。
820+  脚本使用包含 YSLib 库的编译器命令行。脚本已经导出了用于链接器的包含使用 YSLib 库命令行参数的变量 `LDFLAGS` 和 `LIBS` 。若有必要,可设置 SHBuild 附加构建选项环境变量(参见 Tools/Scripts/SHBuild-YSLib-common.txt )。
809821
810-  脚本已经导出了用于链接器的包含使用 YSLib 库命令行参数的变量 `LDFLAGS` 和 `LIBS` 。若有必要,可设置变量 `SHBuild_LDFLAGS` 和 `SHBuild_LIBS` 作为前缀。
811-
Show on old repository browser